打印
[应用方案]

启动新唐M0的semihost半主机调试

[复制链接]
673|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
中国龙芯CDX|  楼主 | 2023-1-21 13:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
启动新唐M0的semihost半主机调试:
利用NUC100SERIESBSP_CMSIS_V1.03.002建立的工程。
1,针对startup_NUC1xx.s文件的修改
A,第010行改为:SEMIHOSTED       SETL    {TRUE} ;SEMIHOSTED       SETL    {FALSE}
B,第256行改为:;yuanxihua@21cn.com                ENTRY
2,针对 retarget.c文件的修改
A,第021行改为:#define DEBUG_ENABLE_SEMIHOST   /* To enable semihosted. !!!The SEMIHOSTED of startup_NUC1xx.s must be {TRUE} */
3,在MDK的NU-LINK的Debug模式中,打开View->Serial Windows-> UART #1即可利用如下调试信息:
printf("*** 9G-NUC122 V1.00 Build by yuanxihua@21cn.com on ("__DATE__ " - " __TIME__ ") ");
printf("*** 9G-NUC122 V1.00 Rebooting ... ");
打印到上面的虚拟串口。  

附件例子:
游客,如果您要查看本帖隐藏内容请回复

使用特权

评论回复
沙发
tpgf| | 2024-5-7 14:34 | 只看该作者
当目标板脱离仿真器(jlink/ulink)单独运行时,不能使用半主机模式。否则进入软件中断BAEB处,无法再执行下去

使用特权

评论回复
板凳
wakayi| | 2024-5-7 15:16 | 只看该作者
在嵌入式的编程中你是避免不了使用printf、fopen、fclose等函数的但是因为嵌入式的程序中并没有对这些函数的底层实现,使得设备运行时会进入软件中断BAEB处,这时就需要__use_no_semihosting_swi这 个声明,使程序遇到这些文件操作函数时不停在此中断处。

使用特权

评论回复
地板
xiaoqizi| | 2024-5-7 20:12 | 只看该作者
是启用半主机模式好还是禁用半主机模式比较好呢

使用特权

评论回复
5
wowu| | 2024-5-7 20:44 | 只看该作者
我们如何才能禁止使用半主机模式呢

使用特权

评论回复
6
renzheshengui| | 2024-5-7 21:16 | 只看该作者
所谓的半主机模式就是就是我们嵌入式程序中,类似printf的接口是会与我们PC进行通讯,以方便我们借助我们调试板的仿真器在PC上用开发工具进行调试。

使用特权

评论回复
7
paotangsan| | 2024-5-7 21:48 | 只看该作者
请问什么叫做半主机调试啊  在什么应用上会有这个名词呢

使用特权

评论回复
8
Henryko| | 2024-5-8 21:10 | 只看该作者
仿真结果跟实际不同是什么原因啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2156

帖子

4

粉丝