微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 使用ARM标准C库进行嵌入式应用程序开发

使用ARM标准C库进行嵌入式应用程序开发

时间:09-12 来源:互联网 点击:

了提高应用程序开发效率和可移植性,希望在目标系统上使用ARM库提供的标准输人输出库函数。 高层输入输出函数是不依赖于目标系统环境的,但是高层输入输出函数必须调用依赖于目标系统的底层函数,才能实现应用系统的输入输出。依据目标系统硬件环境重新定义这些底层函数,就可以使用库提供的标准input/output库函数了。下面以裁减ARM标准库提供的printf系列输出函数例来作说明。 标准I/O库中最常用的是printf系列函数,包括_printf()、printf()、_fprintf()、fprintf()、 vprintf()和vfprintf()。所有这些函数非透明地使用_FILE,并且仅依赖于fputc()和ferror()两个函数。函数 _printf()和_fprintf()与printf()和fprintf()的区别仅在于前两个函数不能格式化浮点值。只要定义了自己的_FILE 版本和fputc()、ferror()函数,外加定义一个具有FILE类型的_stdout变量,就可以不作任何修改地使用printf系列、 fwrite()、fputs()和puts()函数了。 下面给出了具体实现的模板,可以根据实际需要修改。 #include struct__FILE { int handle; /*用户需要的任何代码(如果使用文件仅是了调试使用prinft在标准输出端输出信息,则不需要任何文件处理代码)*/ }; FlLE_stdout;/*FILE在stdio.h中定义:typedef struct_ FILE FILE;*/ int fputc(int ch,FILE*f){ /*用户实现的fpute代码。输出一个字符,可以根据需要实现*/ return ch; } int ferror(FILE*f){ /*用户实现的ferror代码*/ return EOF; } 结语 本文分析了ARM标准库的工作机理,给出了裁减C库进行程序开发的关键步骤。实际应用时需要根据具体的硬件环境和应用要求裁减C库,提高代码执行效率。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top