关于在arm裸板编程时使用printf问题的解决方法
来源:互联网 发布:js获取今天的毫秒数 编辑:程序博客网 时间:2024/06/05 07:34
在ARM裸板驱动编程中,是不允许程序直接调用C库程序的。为什么呢?因为此时kernel还没有被加载,所以在封装在kernel层的C库的API是用不了的,那怎么办?
在开发过程中,printf的功能我不用再详细多说,就是用来debug调试程序的,有了printf,写代码出错的时候能够快速定位错误。
那么如何在裸板中调用呢?
1、首先,我们在u-boot源代码中找到System.map这个文件,打开后我们能看到以下信息:(太多了,我只列举一部分)
40c29e94 T memscan40c29ebc T strstr40c29f1c T memchr40c29f50 T strmhz40c29fbc T udelay40c29fec T mdelay40c2a010 t put_dec40c2a238 t number.clone.140c2a450 t vsnprintf_internal.clone.340c2a8ec T simple_strtoul40c2a998 T strict_strtoul40c2aa10 T simple_strtol40c2aa38 T ustrtoul40c2aaac T simple_strtoull40c2ab88 T vsprintf40c2ab8c T sprintf前面40开头的就是在uboot中的映射地址,右边的就是可以调用的api了。
接下来我们在.c中就可以这样定义声明:
//在uboot中找到printf的映射地址
40c135c0 T printf
#define vsprintf((int (*)(const char *, ...))0x40c135c0)
在main函数中就可以自由调用printf这个函数了
0 0
- 关于在arm裸板编程时使用printf问题的解决方法
- 关于在stm32中使用printf函数的问题
- 关于ARM使用AXD编程H-Jtag问题的总结
- 关于vs2013中printf printf_s的错误问题的解决方法
- 关于pow()在printf()中用%d输出的问题
- 关于在ARM中(MDK下)C与汇编混合编程的问题
- 关于Keil Unable to find ARM libraries...问题的解决方法
- 关于printf的参数问题
- 关于printf("%*.*f")的问题
- PL2303在ARM Linux下驱动的问题及解决方法
- printf的重入问题及解决方法
- 关于C语言中printf()后的scanf()不执行问题,解决方法
- 关于ARM上编程的
- 关于在多处理器suse11上中断处理中使用current宏的问题及解决方法
- 关于在Android中使用Google Map只显示网格问题的解决方法
- 关于Struts2使用redirectAction方式在两个Action之间传值时中文乱码问题的解决方法
- 【原创】关于在Android中使用Google Map只显示网格问题的解决方法
- 关于printf不打印的问题
- Java:String和Date、Timestamp之间的转换
- 后方交会
- 怎么打开Xcode的Archives界面
- [产品经理]技术岗转产品经理
- [场景] -- 场景使用
- 关于在arm裸板编程时使用printf问题的解决方法
- 今天我的阿里云服务器中招了
- JAVA list如何remove
- 真机调试不打印
- 支付宝登录
- 物联网与Windows10 iot core的契合
- blog got 12.15
- 一致性hash原理
- 高效能远程会话管理工具-screen