原创 ADS 的 semihosting 问题 [转]

2008-4-16 09:19 4514 12 15 分类: MCU/ 嵌入式
 




PARTNER不支持semihost(semihost的SWI)
而ADS的编译连接结果中加入了使用semihostSWI的library 函数


解决办法:去掉或重写这些函数!


Step 1 : 用#pragma import(__use_no_semihosting_swi)保证用户程序不调用semihostSWI;
   此后,link时会有
    Error :L6200E:Symbol __semihosting_swi_guard multiply defined (by use_semi.o and use_no_semi.o)
   因为,还有compiler helper functions 和 initialization code在调用semihostSWI


Step 2 : armlink -verbose 结果中,查出调用semihostSWI的外部库函数,如:
   Loading member sys_exit.o from c_a__un.l.
                 definition:   _sys_exit
                 reference :   __I_use_semihosting_swi


Step 3 : 在用户程序中重写这些函数,如:
     AREA ||.text||, CODE, READONLY
   __user_initial_stackheap
       LDR r0, =0x20000 ; HB
       LDR r1, =0x40000 ; SB
                        ; r2 not used (HL)
                        ; r3 not used (SL)
       MOV PC,LR
     
     EXPORT __user_initial_stackheap

       END


Step 4 : compile and link OK!


我已经试了一个小程序,调试通过,没有出现任何异常!

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户377235 2012-5-13 10:23

能不能再详细一些啊,谢谢

用户42640 2010-11-10 08:11

看不明白,楼主能不能详细讲一下

用户520338 2008-4-16 09:27

没看明白!!
相关推荐阅读
用户520338 2008-05-17 14:17
总觉得很别扭!站衫们啊!
总觉得很别扭阿!今天看到很多人在卖东西,和献爱心有关的!上边就有那个带5个红星的红心,弄了个 I CHINA!!然后下面好几行的英文,赫赫,不知道写些什么!觉得有点反胃!还爱中国呢,纯粹都有点做作!为...
用户520338 2008-04-14 20:21
【串口通信】串口中断服务函数集
//本函数集来自“51单片机世界”,作者斑竹丁丁(聂小猛)。//主页地址http://www.mcu51.com//串口中断服务程序,仅需做简单调用即可完成串口输入输出的处理//出入均设有缓冲区,大小...
用户520338 2008-04-07 15:59
串口乱码了!!晕!
...
用户520338 2008-04-02 08:28
匠人戏说“看门狗”(zhuang)
 论坛里有人问何谓看门狗,匠人答之:看门狗其实就是这么回事:比如说楼主你正在绕着一座小山裸奔。——程序按预定流程执行。每次经过山脚下的某个地方,你都给一条大狼狗一根肉骨头。——喂狗。奔着奔着,你奔叉了...
用户520338 2008-04-02 08:28
匠人戏说“看门狗”(zhuang)
匠人戏说“看门狗”论坛里有人问何谓看门狗,匠人答之:看门狗其实就是这么回事:比如说楼主你正在绕着一座小山裸奔。——程序按预定流程执行。每次经过山脚下的某个地方,你都给一条大狼狗一根肉骨头。——喂狗。奔...
EE直播间
更多
我要评论
3
12
关闭 站长推荐上一条 /3 下一条