問:ADI算法庫使用問題我在使用BF609第二個核進行編譯時,編譯器彈出一個警告如下: Description Resource Path Location Type li2131: Input section(s) of incompatible init qualifier detected in the output section 'L1_data_a_custom' app.ldf /Core1/system/startup_ldf line 335 C/C++ Problem li2131: Input section(s) of incompatible init qualifier detected in the output section 'sdram_bank0_custom' app.ldf /Core1/system/startup_ldf line 943 C/C++ Problem core1的ldf文件,我使用的是默認(rèn)的ldf文件,ldf文件中關(guān)于'L1_data_a_custom'和'sdram_bank0_custom'描述如下: L1_data_a_custom { INPUT_SECTION_ALIGN(4) INPUT_SECTIONS($OBJECTS_LIB(adi_fastb0_prio1_r)) INPUT_SECTIONS($OBJECTS_LIB(adi_fastb0_prio1_rw)) INPUT_SECTIONS($OBJECTS_LIB(adi_fastb0_prio0_rw)) INPUT_SECTIONS($OBJECTS_LIB(adi_fastb0_prio0_temp)) INPUT_SECTIONS($OBJECTS_LIB(adi_fastb0_prio0_r)) INPUT_SECTIONS($OBJECTSVATDLB(adi_fastb0_prio0_r)) } > MEM_L1_DATA_A sdram_bank0_custom { INPUT_SECTIONS($OBJECTS(adi_slow_noprio_code)) INPUT_SECTIONS($OBJECTS(adi_slow_prio0_code)) INPUT_SECTIONS($OBJECTS(program)) INPUT_SECTIONS($OBJECTS(adi_slow_prio0_r)) INPUT_SECTIONS($OBJECTS(constdata)) INPUT_SECTIONS($OBJECTS(data1)) INPUT_SECTIONS($OBJECTS_LIB(adi_slow_prio0_rw)) INPUT_SECTIONS($OBJECTS_LIB(adi_slow_prio0_temp)) } > MEM_SDRAM_BANK0 請問這個warning是如何引起的?如何修改可以去掉這個warning?
答:1. INPUT_SECTION中類似于adi_fastb0_prio1_r,adi_fastb0_prio0_temp這些section名稱的定義應(yīng)該都是算法庫中已經(jīng)定義好的,所以使用算法庫時也需要把這些名稱加到你們的ldf文件中。關(guān)鍵點在于這些名稱在定義時都有自己的屬性,比如NO_INIT, ZERO_INIT等等,這些section各自的屬性在算法庫的user manual里面應(yīng)該都能找到。
2. 找到這些section各自的屬性后,在ldf文件的output section定義時,應(yīng)該保持和input section的屬性一致。如warning中指出的,L1_data_a_custom后面沒有屬性定義,所以出現(xiàn)了警告信息。 |