这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请教怎么使用AXD进行printf()输出调试?

共5条 1/1 1 跳转至

请教怎么使用AXD进行printf()输出调试?

菜鸟
2006-03-06 20:08:57     打赏

请教各位怎么使用AXD进行printf()输出调试?

在AXD help中没有找到比较有效的答案,看了twentyone给别人的解答也仍然无法在console中得到数据输出,请各位大侠帮忙给出详细解答,不胜感激!!谢谢

你写一个简单的程序,只包括一个c文件,在main函数里面使用printf打印东西。例子如下:

#include <stdio.h>

int main()
{
printf("Hello\n");
return 0;
}

AXD设置:
1.OPTIONS -> CONFIGURE TARGET -> ARMULATE;
2.OPTIONS -> CONFIGRUE PROCESSOR -> SEMIHOSTING -> 选中

运行上面的例子,你就能在控制台看到输出了。




关键词: 请教     怎么     使用     进行     printf     输出     调试    

菜鸟
2006-03-06 20:44:00     打赏
2楼
你先用ARMULATOR试一试,RO_BASE设置为0x8000试一试。

菜鸟
2006-03-06 22:23:00     打赏
3楼

twentyone :

非常感谢你的热心帮助!

根据你的建议我把RO_BASE设置为0x8000在无bootloader的情况下终于可以在console中看到消息输出了,但如果把RO_BASE设置为0c008000的话将引起仿真软件AXD的SWI中断,抱错为out of heap memory。这是否和simehost vector的值有关,我把它改为0c008000(原值为0)依旧有这样的错误,请问这该怎么设置?

另外RO_BASE设置为0c008000,但我加上bootloader后依然不能在console中得到消息输出,也就是说我实验的过程中只有当入口为int main()时console才能得到消息输出,而在其它情况下console不能正常工作,不知道该怎么解决!

另外想请问一下AXD这些仿真功能在哪有资料介绍,我看了它的help没有发现这些东西。为这个软件仿真问题我找了不少资料,无奈结果很少,请多指点,谢谢!


菜鸟
2006-03-06 22:40:00     打赏
4楼

Hi

如果你想找AXD的资料的话,你可以看你的ADS的安装文件(不是安装好后的文件),在安装文件目录下有个PDF目录,里面有ADS的所以文档。

要用PRINTF从CONSOL输出的话,要用到SEMIHOSTING,SEMIHOSTING的设置你一般不需要修改。主要的是设置TOP_OF_MEMORY,这个值指定的部分内存空间在SEMIHOSTING的时候需要用到。你要保证TOP_OF_MEMORY值知道的空间是可用的。而且,要使用SEMIHOSTING的话,你需要做些初始化的工作的,如果你没有用MAIN的话,需要自己添加,如果你有MAIN函数的话,编译器自己会添加。


菜鸟
2006-03-06 23:02:00     打赏
5楼

多谢!经过你的详细解释我基本能找到答案了(一知半解也凑合,呵呵)!

至于ADS安装文件中的文档我确实没有看过,对于初学者来说看那东西速度慢,以后我慢慢看。

不知道你有没有整理好的文档给大家参考参考?

另外想请问一下在32位处理器上跑OS的话有什么好的系统吗?linux太大,驱动太难了,OS-2仅有一个内核,什么驱动程序都没有,对这两个OS我感觉都不太适合快速开发,我一直想找个适合快速开发的OS,要不只好向51那样跑裸机得了


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]