拿CH583EVT舉例,CH583EVT\EVT\EXAM\BLE\LIB文件夾中有CH58xBLE_LIB.h,CH58xBLE_ROM.h兩個(gè)頭文件。
我理解CH58xBLE_LIB.h是需要鏈接.a文件,可以生成程序完整hex。
而CH58xBLE_ROM.h是不需要鏈接.a文件,只生成用戶代碼,協(xié)議棧hex是可以燒寫到flash中的某個(gè)地址的(OTA更新是不需要更新這部分的),這樣的好處是用戶代碼非常小,便于OTA備份更新。之所以不需要鏈接.a文件是因?yàn)?span>CH58xBLE_ROM.h中將需要的函數(shù)都聲明成了指向某個(gè)地址的指針,由于不是函數(shù)聲明,所以link階段也不用去其他文件找對(duì)應(yīng)的函數(shù)實(shí)現(xiàn)了。
但是,CH583EVT\EVT\EXAM\MESH\MESH_LIB文件夾下,只有MESH_LIB.h這一個(gè)文件,沒有MESH_ROM.h文件,這樣的話,如果用戶使用MESH協(xié)議棧,就必須鏈接.a文件,生成包含MESH協(xié)議棧的完整hex,同時(shí)MESH_LIB文件夾下的CH58xBLE_ROM_MESH.hex文件,也就沒有意義了。
不知道我理解的對(duì)不對(duì),或者請(qǐng)幫忙指導(dǎo)下,我如何將mesh協(xié)議棧寫進(jìn)flash的某個(gè)地址,使我可以只生成用戶代碼的hex,這樣我每次OTA就能只傳輸用戶代碼程序了