在ARM芯片中使用打印函数总结
**
在ARM芯片中使用打印函数总结:
**
在使用的stdio.h库可以找到对应的函数原型
1、printf函数
原型:#pragma __printf_args
extern _ARMABI int printf(const char * __restrict /format/, …) attribute((nonnull(1)));
*即:printf(const char format,…);
发送format输出到标准输出
例子:printf(“Copying Marker %04X and Data (Length = %d)\n”, marker, length);
打印出marker, length的值
2、sprintf函数
原型:#pragma __printf_args
extern _ARMABI int sprintf(char * __restrict /s/, const char * __restrict /format/, …) attribute((nonnull(1,2)));
*即 :sprintf(char*str,const char format,…);
把format输出到str指向的字符串里
例子:sprintf(cbuff, “%d”, lossyflag); sprintf(cbuff, “%d”, w);
将lossyflag的值写入cbuff数组
将w的值写入cbuff数组
注意:这样就相当于给数组赋值。这个在x86和ARM中都是支持的
3、fprintf函数
原型:#pragma __printf_args
extern _ARMABI int fprintf(FILE * __restrict /stream/,
const char * __restrict /format/, …) attribute((nonnull(1,2)));
即:fprintf(FILE*stream,const char format);
把format格式发送到stream指向的文件
#define stdin (&__CLIBNS __stdin)
/ pointer to a FILE object associated with standard input stream /
#define stdout (&__CLIBNS __stdout)
/ pointer to a FILE object associated with standard output stream /
#define stderr (&__CLIBNS __stderr)
/ pointer to a FILE object associated with standard error stream */
例子:fprintf(stdout,“sort_bits= %d\n”, sort_bits);
stdout是指向输出文件的指针,将sort_bits的值打印到文件里
printf(stderr, “ERROR : getc_bytes : premature End Of Buffer\n”);
stderr是指向输出文件的指针,将ERROR : getc_bytes : premature End Of Buffer的值打印到文件里
注意:fprintf函数将数据打印到文件里,则要指定对应的文件指针,在ARM芯片,不能使用,在ARM芯片程序会定义一个与串口映射的打印函数。
3、sysprintf函数
这个函数就是ARM芯片串口映射的打印函数,函数名是自定义的。
原型:VOID sysprintf(PINT8 pcStr,…)
{
INT8 *argP;
_sys_bIsUseUARTInt = FALSE;
vaStart(argP, pcStr); /* point at the end of the format string */
while (*pcStr)
{ /* this works because args are all ints */if (*pcStr == '%')pcStr = FormatItem(pcStr + 1, vaArg(argP, INT));else_PutChar_f(*pcStr++);
}
}
这个对应_PutChar_f,对应芯片的串口打印输出字符
在ARM芯片中使用打印函数总结相关推荐
- arm芯片中的浮点运算(一)
arm芯片中的浮点运算(一) https://blog.csdn.net/yuanlu837/article/details/7742324 2012年07月12日 23:40:00 yuanlu83 ...
- 关于ARM芯片中内存架构的疑惑记录
前言 最开始我疑惑的点是很混乱的,有的ARM芯片在跑裸机程序时候是不需要外置内存的,但是在跑LINUX系统时候,所用的开发板是需要外置RAM与ROM的.这是为什么呢,下面记录下对这个问题的梳理,同时也 ...
- 关于ARM芯片中的大小端模式
有0x0.0x1.两个地址,有一个数据是0xFF00 大端模式:FF存在地址0x0的内存中,00存在地址0x1的内存中 小端模式:00存在地址0x0的内存中,FF存在地址0x1的内存中 总之就是: 小 ...
- python打印时间_在Python中定义Main函数(第二部分)
Main函数的最佳实践 既然您已经了解两种执行方式上的差异,那么掌握一些最佳实践方案还是很有用的.它们将适用于编写作为脚本运行的代码或者在另一个模块导入的代码. 如下是四种实践方式: 将大部分代码放入 ...
- js中写一个函数,第一秒打印1,第二秒打印2
js中写一个函数,第一秒打印1,第二秒打印2 1.用let块级作用域 for(let i = 0;i<5;i++){setTimeout(()=>{console.log(i);},100 ...
- ZYNQ开发中SDK输出串口选择以及打印函数print、printf、xil_printf的差别
ZYNQ开发系列--SDK输出串口选择以及打印函数print.printf.xil_printf的差别 前言 两个串口到底是谁在打印? print 和 printf 和 xil_printf 前言 在 ...
- Linux-C基础知识学习:C语言作业-将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印。
Linux基础知识学习 C语言作业:将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印. #include <stdi ...
- matlab中输出不换行,matlab打印函数disp如何不换行
matlab常用的打印函数一个是: (1)fprintf('num=%d', num); 这个和C语言的基本一样,区别在于格式化字符串用的是单引号. 而且,这个函数也直接支持矩阵打印,也即,上例的nu ...
- 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 : -- 三星 ARM Archit ...
最新文章
- CCNA(Stand-ALONE)Lab 12-Static Routes
- 编译原理--NFA/DFA
- python-双层嵌套循环-打印小星星
- 国庆档首日票房破2亿 长津湖票房占比过半
- Android图片爬虫,看妹纸神器项目源码,ListView单张图片查看
- JAVA发送邮件(163邮箱发送)
- IE浏览器打开网页之后,右键,选择“查看源文件”后打开桌面窗口的问题
- 南大软院21天学霸养成计划—第6天
- 切片器可以设置日期格式?_在Power BI中设置切片器的默认值,你会吗?
- KETTLE各个版本下载地址
- Android课题研究的主要观点,二、本课题的研究目标、研究内容、主要观点和创新之处.doc...
- 考研复习--高等数学
- java Lambda与stream
- FreeMarker 模板生成 PDF电子凭证/图片
- 项目计划表格甘特图_项目管理:什么是甘特图?
- ChemDraw绘制DNA结构的技巧
- ArduPilot — ArduPlane架构概述
- 笔记:[windows] 简单写一个cmd命令行可执行的脚本.bat
- 关于深度学习,这可能是你最容易读懂的科普贴
- geoserver SLD 面状图斑填充样式
热门文章
- 创建Direct3D9设备-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(5)
- 数据分析学习技能树 | 养成数据分析师的品质和思维模式
- java调用命令行校对系统时间
- Latex和word相互转换。word表格制作
- Hexo博客主题Next添加动态线条背景canvas_nest
- 网页设计排版中哪些元素比较重要?
- linux系统benchmark工具,Linux下一种简单易行的cpu benchmark方法
- mac苹果系统安装虚拟机方法教程 虚拟机操作之一
- 关于留言簿的补充说明
- Oracle Grid Infrastructure架构