工具/软件:TI-RTOS
如何在 NDK 堆栈中注册 EMAC_CONFIG 中的回调和变量?
NDK 指南指出 CSL 层"在"EMAC_Config"数据结构中定义所需的回调函数、并要求驱动程序实现这些函数、并在"EMAC_open"调用期间向驱动程序注册这些函数。
EMAC_CALL 函数不在示例项目中。 它似乎包含在预构建的库中。 我认为这是因为注释掉 EMAC_CONFIG 会给出错误"unresolved symbol EMAC_CONFIG、first referenced in C:/ti/tirtos_tivac_2_16_00_08/products/tidrivers_tivac_2_16_00_08/packages/ti/drivers/lib/drivers_tivaware.aem4f HttpGET_EK_TM4C1294XL_TI C/C++问题"
这些库如何访问变量 EMAC_CONFIG? EMAC_CONFIG 在.c 文件中声明、但在.h 文件中没有引用。 我认为变量必须在 .h 文件中包含"extern const EMAC_Config EMAC_config"、以便其他文件访问.c 文件内容。
我只能看到 #pragma DATA_SECTION 行中使用的 EMAC_CONFIG (EMAC_CONFIG、".CONST:EMAC_CONFIG")
DATA_SECTION 告诉 EMAC_CONFIG 在哪里 ? 我希望这将出现在链接器文件 EK_TM4C1294XL.cmd 中、因为 Wiki 显示" IAR 链接器配置文件的已定义存储器段和 CCS 链接器命令文件的 MEMORY 部分 可分别与 constsig pragma 和 DATA_SECTION pragma 一起使用、以将变量放入特定存储器中 位置"。 我有误解吗?
不应使用 DATA_SECTION? 相同的 wiki 页面似乎暗示 LOCATION pragma 优于 DATA_SECTION:"不支持 LOCATION pragma 的旧 CGT 版本 v3.x、因此 可使用 DATA_SECTION pragma "- http://processors.wiki.ti.com/index.php/Placing_Variables_in_Specific_Memory_Location_-_MSP430#Using_DATA_SECTION_PRAGMA_With_Defined_Memory_Section_in_Linker_Command_File