請教函數(shù)存放問題
我不是要搞破解,我想了解軟件的架構(gòu)
取決于你選擇ROM模式還是LIB模式加載藍(lán)牙庫。若使用LIB模式,則藍(lán)牙庫被鏈接進(jìn)程序一起存入flash,位置不確定。若使用ROM模式,則藍(lán)牙庫需要額外在程序之外下載到芯片,位置一般固定。
看情況應(yīng)該是lib模式。tmos_set_event源碼是事先編譯好,最后才和普通的代碼一起生成flash嗎?
BLE庫中,有一部分代碼對運(yùn)行速度有要求,這部分代碼會在MCU上電后由硬件拷貝到ram中運(yùn)行,其余代碼是直接在codeflash中運(yùn)行。
如果參考了非OTA的例程,BLE庫會一并編譯到.hex/.bin文件中,函數(shù)地址會有變化是正常的。
如果參考OTA的使用固定庫升級方案的例程(OnlyUpdate例程),APP層工程會調(diào)用BLE固定庫中的接口,BLE固定庫中函數(shù)地址被固定到指定的ram/flash地址中,不會改變。
地址會變這個(gè)明白了,謝謝
糾正一下。BLE庫中有一部分代碼對運(yùn)行速度有要求,這部分代碼也是會編譯到codeflash中,在CH582上電后會搬運(yùn)這部分代碼到ram中,不是直接編譯到ram中。