dh2017 2021-09-07 11:31 采纳率: 0%
浏览 69

STM32开发_编译后的hex文件对应的地址是如何分配的

最近在学习stm32 mcu开发,编译后的程序首地址是0x80000000,问题是:
1.编译器是如何确定程序的地址范围的,之前看到是通过在ld文件规定程序的地址范围。然后在编译的时候,编译器找到ld文件,将生成的目标文件放入到ld文件对于的地址范围内。
如果有知道这个具体过程的,麻烦详细的说下编译过程和ld文件的作用,如果有推荐资料的也麻烦提供下链接。

2.后续会做bootload和app之间的跳转功能,想问下这个跳转主要需要做哪些事情。
之前了解到的有:
1.设置SP和CP寄存器。
2.重定义中断向量表。
1.有知道的麻烦看下这样是不是对的?
2.这样需要怎么样实现,有相关资料的麻烦提供下链接?

  • 写回答

1条回答 默认 最新

  • qllaoda 2021-09-07 11:46
    关注

    工程设置的地方设置了ROM范围。你要做bootloader,需要给bootloader和app设置不同的ROM范围(当然需要保证这些范围在硬件地址范围内)。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月7日