最近在学习stm32 mcu开发,编译后的程序首地址是0x80000000,问题是:
1.编译器是如何确定程序的地址范围的,之前看到是通过在ld文件规定程序的地址范围。然后在编译的时候,编译器找到ld文件,将生成的目标文件放入到ld文件对于的地址范围内。
如果有知道这个具体过程的,麻烦详细的说下编译过程和ld文件的作用,如果有推荐资料的也麻烦提供下链接。
2.后续会做bootload和app之间的跳转功能,想问下这个跳转主要需要做哪些事情。
之前了解到的有:
1.设置SP和CP寄存器。
2.重定义中断向量表。
1.有知道的麻烦看下这样是不是对的?
2.这样需要怎么样实现,有相关资料的麻烦提供下链接?
工程设置的地方设置了ROM范围。你要做bootloader,需要给bootloader和app设置不同的ROM范围(当然需要保证这些范围在硬件地址范围内)。