|
问题是这样的,我有一段代码都是一些接口函数,而这些接口函数在APP程序与Bootload程序中都需要调用,我不想把这些接口函数编译成.a库文件调用,因为APP程序与Bootload程序都需要包含这个编译好的.a库文件,这样会浪费空间,我希望是编译成.bin文件烧录到stm32中固定的地址,然后APP与Bootload都可以调用。我知道这个是可以实现的,但是具体的方法不太懂,有哪位大神做过这方面的,可以指教一下嘛? |
微信公众号
手机版
函数执行完就回到调用它的位置的下一条指令呀,如果是bootloader调用就回到bootloader,如果是app调用就回到app,调用函数前会把返回地址保存到LR寄存器的,具体可以参考BLX指令。
评分
查看全部评分
评分
查看全部评分
我随手编的,最简单的方式,不考虑权限,不考虑异常,如果都要考虑的话,最好是使用SVC系统调用。如果还有更高的要求,大概只能用Cortex-M23或Cortex-M33了,但我还没见到这两款核心的产品问世。
评分
查看全部评分
这样可以吗,坐等楼主测试
这个共享函数地址表怎么弄的,可以详细说一下嘛,或者给点资料,不胜感谢
请教一下,执行完函数(共享的那部分)以后如何返回Bootloader或者APP....
好的,非常感谢
是跳转指令,不是函数调用指令,
跳转指令也支持调用完后回来吗?
评分
查看全部评分
调用函数的指令不会是B或BX,一定是BL或BLX。
哪里有汇编资料,方便的话给指点一下。。。。
我是参照的IAP程序里的跳转,使用C,赋值一个地址给PC指针,然后跳过去,那我的这种方式是B、BX还是BL或者是BLX ?