问: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文件,我使用的是默认的ldf文件,ldf文件中关于'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名称的定义应该都是算法库中已经定义好的,所以使用算法库时也需要把这些名称加到你们的ldf文件中。关键点在于这些名称在定义时都有自己的属性,比如NO_INIT, ZERO_INIT等等,这些section各自的属性在算法库的user manual里面应该都能找到。
2. 找到这些section各自的属性后,在ldf文件的output section定义时,应该保持和input section的属性一致。如warning中指出的,L1_data_a_custom后面没有属性定义,所以出现了警告信息。 |