完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用方式如下:
链接脚本: ... . = ALIGN(4); user_section_tab_local_start = ABSOLUTE(.); KEEP (*(SORT(*user_section_tab*))) user_section_tab_local_end = ABSOLUTE(.); ... a.h: Code: Select all #define USER_SECTION_NAME __attribute__((section("user_section_name_tab"))) #define USER_SECTION __attribute__((section("user_section_tab"))) extern void *user_section_tab_local_start; extern void *user_section_tab_local_end; const static uint32_t user_section_tab_local_start_addr = (uint32_t)&user_section_tab_local_start; const static uint32_t user_section_tab_local_end_addr = (uint32_t)&user_section_tab_local_end; b.h: Code: Select all typedef int (*user_func_t)(void *); struct user_cmd_object { user_func_t func; const char *breif; uint32_t *const param; }; #define USER_CMD_EXPORT(name, f, c, p) uint32_t _USER_CMD_##name##_param = (uint32_t)p; const char _USER_CMD_##name##_name[] SECTION_A_NAME = #c; __attribute__((used)) const struct user_cmd_object _USER_CMD_##name##_obj USER_SECTION = { .func = f, .breif = _USER_CMD_##name##_name, .param = &_USER_CMD_##name##_param } b.c: Code: Select all #include "b.h" //at+version static int func_version(void *param) { printf("%srn", "V1.0.0"); return 0; } USER_CMD_EXPORT(VERSION, func_version, AT+VERSION, 0); //at+uid static int func_uid(void *param) { printf("%08xrn", u_devid_get()); return 0; } USER_CMD_EXPORT(UID, func_uid, AT+UID, 0); 编译后得到的map文件: Code: Select all 0x000000003c029614 . = ALIGN (0x4) 0x000000003c029614 user_section_tab_local_start = ABSOLUTE (.) *(SORT_BY_NAME(*user_section_tab*)) 0x000000003c029614 user_section_tab_local_end = ABSOLUTE (.) 问题是编译之后user_section_tab段里的内容是空的,请问这个问题怎么处理呢? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
968 浏览 1 评论
553浏览 6评论
462浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
447浏览 5评论
448浏览 4评论
418浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 05:43 , Processed in 0.575267 second(s), Total 43, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号