关于tmos_set_event之类的函数问题,是加密的吗,我看不到源码。反汇编文件会地址会变的。我想确认一下这类函数是固化在rom里面,还是存在flash文件的?

请教函数存放问题

image.png

我不是要搞破解,我想了解软件的架构


取决于你选择ROM模式还是LIB模式加载蓝牙库。若使用LIB模式,则蓝牙库被链接进程序一起存入flash,位置不确定。若使用ROM模式,则蓝牙库需要额外在程序之外下载到芯片,位置一般固定。


看情况应该是lib模式。tmos_set_event源码是事先编译好,最后才和普通的代码一起生成flash吗?


BLE库中,有一部分代码对运行速度有要求,这部分代码会在MCU上电后由硬件拷贝到ram中运行,其余代码是直接在codeflash中运行。

如果参考了非OTA的例程,BLE库会一并编译到.hex/.bin文件中,函数地址会有变化是正常的。

如果参考OTA的使用固定库升级方案的例程(OnlyUpdate例程),APP层工程会调用BLE固定库中的接口,BLE固定库中函数地址被固定到指定的ram/flash地址中,不会改变。


地址会变这个明白了,谢谢



纠正一下。BLE库中有一部分代码对运行速度有要求,这部分代码也是会编译到codeflash中,在CH582上电后会搬运这部分代码到ram中,不是直接编译到ram中。


只有登录才能回复,可以选择微信账号登录