关于在arm裸板编程时使用printf问题的解决方法

    在ARM裸板驱动编程中,是不允许程序直接调用C库程序的。为什么呢?因为此时kernel还没有被加载,所以在封装在kernel层的C库的API是用不了的,那怎么办?

    在开发过程中,printf的功能我不用再详细多说,就是用来debug调试程序的,有了printf,写代码出错的时候能够快速定位错误。

    那么如何在裸板中调用呢?

    1、首先,我们在u-boot源代码中找到System.map这个文件,打开后我们能看到以下信息:(太多了,我只列举一部分)

40c29e94 T memscan
40c29ebc T strstr
40c29f1c T memchr
40c29f50 T strmhz
40c29fbc T udelay
40c29fec T mdelay
40c2a010 t put_dec
40c2a238 t number.clone.1
40c2a450 t vsnprintf_internal.clone.3
40c2a8ec T simple_strtoul
40c2a998 T strict_strtoul
40c2aa10 T simple_strtol
40c2aa38 T ustrtoul
40c2aaac T simple_strtoull
40c2ab88 T vsprintf
40c2ab8c T sprintf

前面40开头的就是在uboot中的映射地址,右边的就是可以调用的api了。
接下来我们在.c中就可以这样定义声明:

//在uboot中找到printf的映射地址

40c135c0 T printf

#define vsprintf ((int (*)(const char *, ...))0x40c135c0)

在main函数中就可以自由调用printf这个函数了

时间: 2024-08-31 16:18:15

关于在arm裸板编程时使用printf问题的解决方法的相关文章

nginx移植到arm开发板启动时出错

问题描述 nginx移植到arm开发板启动时出错 nginx移植到arm开发板启动时显示nginx: [emerg] getgrnam("nogroup") failed (2: No such file or directory) 不知道是什么原因? 解决方案 没找到这个目录,检查下文件是否拷贝全了. 解决方案二: 你好,我也是这个错误,请问你解决了吗?请指教下,谢谢

JSP中内建exception对象时出现500错误的解决方法_JSP编程

本文实例讲述了JSP中内建exception对象时出现500错误的解决方法.分享给大家供大家参考,具体如下: 尝试使用JSP的内建exception对象,写了下面三个文件.思路很简单,文件index若提交字串为空,则get抛出异常,交由error.jsp处理.但实际却不能正常运行,会出现IE的500错误页面.环境为Tomcat 5.5,IE6.0. 在sun的论坛上有人贴出了原因,是IE的某个设置.Tomcat5.0以后的版本error page在处理时会返回error code 500.而IE

使用Wordpress插件时出现中文乱码的解决方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 用wordpress建网站的好处就在于,可以使用N多主题和N多的插件,由于wordpress在国外的使用时期较长,很多插件都是国外的用户开发的.对于中文的支持不是很好.经常使用WP一定会遇到插件编码问题,今天影子给大家讲一下关于使用wordpress插件时出现中文乱码的解决方法. 一.起因: 今天就遇到一个插件,输入中文后,保存,查看,显示输

win8系统安装Office时提示”错误1911“的解决方法

win8系统安装Office时提示"错误1911"的解决方法 1.看到安装的过程中,一个名为INKDIV.dll的动态库文件无法正常完成注册.说明之前Office程序的参与还在,需要清理一下; 2.这个问题比较普遍,这是Office程序特有的故障,而且微软也有专用工具用以处理这样的问题.这个专用工具,是一个全英文的程序,但是操作还是比较简单的.首先下载工具.解压.百度云网盘分享路径是:全部文件 > 维护电脑 > 清理卸载 > [微软专用卸载工具]地址:http://p

Win8系统笔记本创建WiFi时提示错误1061的解决方法

Win8系统笔记本创建WiFi时提示错误1061的解决方法   解决方法如下: 1.检查笔记本电源是否连上,接上电源看是否能启用wifi共享服务. 2.设备管理-网络适配器 里面将驱动程序升级到最新(如果装的是win8驱动一般是最新的),再尝试启用共享. 3.如果前两步还没有解决,仍然提示错误1061,你就试试最麻烦的一步:准备杀毒吧. windows7教程 windows8教程 windows10教程

拨号上网时电脑假死的解决方法

用拨号上网时,有时候遇到电脑假死, 就是刚装了宽带的时候,电脑一开机出现拨号连接的时候电脑就死机, 其实电脑没有死机, 就是假死,要过上几分钟电脑自动好.没什么大问题,只是对于电脑初学者来说难免有一些惊慌.下面就给大家介绍拨号上网时电脑假死的解决方法. 造成这种拨号上网电脑假死的原因是, Windows XP在默认安装方式下,对网卡的TCP/IP设置础"自动获取"状态.当系统启动后,系统首先检测网卡配置中是否有固定的IP地址,如果没有找到固定IP地址,则会向外发送数据包请求网络中的DH

Win7系统安装时出现错误代码0x800700B7的解决方法

  Win7系统安装时出现错误代码0x800700B7的解决方法.有些用户在安装Win7纯净版64位系统的过程中出现错误代码0X800700B7,导致安装失败.安装win7系统遇到错误代码问题相信很多用户都有遇到过,已经不是什么新鲜事了,然而引起安装Win7系统出现错误代码0x800700B7的原因有很多种,遇到这错误代码问题该怎么来解决?针对此问题,小编研究整理出解决方法给大家. 解决方法: 1.更改设置,显示系统的隐藏文件和文件夹.左键单击:资源管理器 - 组织 - 文件夹和搜索选项 - 查

Win7系统UAC弹出提示时桌面屏幕变暗的解决方法

Win7系统UAC弹出提示时桌面屏幕变暗的解决方法:微软在win7系统中引入了UAC安全控制系统,它很大程度上提高了系统的安全性,当然这也体现了windows7系统的强大,但是有得必有失,比如有些用户就犯晕说UAC弹出提示很烦人,每次UAC提示弹出时,就会进入安全桌屏幕转暗,不能进行任何程序操作,下面小编就为大家介绍一下如何设置Win7系统UAC弹出时不黑屏. 操作方法: 1.首先进入win7系统"控制面板→用户账户和家庭安全→用户账户→更改用户账户控制设置"; 2.Win7系统默认是

WinXP安装软件时出现NSIS ERROR错误解决方法

  WinXP安装软件时出现NSIS ERROR错误解决方法.虽然微软已经停止对WinXP的支持,还是有不少用户依然坚持使用XP,不过在安装软件的时候也会出现一些问题,近日有小伙伴说会出现NSIS ERROR的错误,这是什么原因造成的呢?又要如何解决,下面就让小编一一道来. 一.NSIS ERROR什么意思 系统错误提示英文为"installer integrity check has failed. common causes include incomplete download and d