IAR IDE学习之---启动文件(cstartup)与输入\输出重定向方法
扫描二维码
随时随地手机看文章
1、DLIB,我猜应该是Dynamic Library。DLIB runtime environment就是运行时环境。
2、什么是运行时环境。IAR给出的官方回答是:
The runtime environment is the environment in which your applic ation executes. The
runtime environment depends on the target ha rdware, the software environment, and the
application code.
简单说,运行时环境为用户的应用程序(main函数)提供以下基础功能:
1)首先是实现C/C++标准库,比如常见的格式化输入/输出;
2)应用程序运行前的初始化,应用程序退出后的退出处理,比如全局静态变量的初始化、C++全局对象的创建、销毁等。
3、IAR同时提供库形式和源代码形式的C/C++标准库函数的实现,分别位于安装目录armlib以及armsrclib下。
4、C/C++标准库函数的实现依赖于具体的目标系统,比如标准输入/输出需要具体硬件的输入设备操作函数和输出设备操作函数。C/C++标准库函数使用基础(低级)函数集来和目标系统交换,将这些基础(低级)函数集合成为“库基础接口”。为实现真正的C/C++标准库,应用程序的开发者必须重新实现(定义)这些基础(低级)函数。可重写的基础(低级)函数位于IAR安装目录armsrclib下。
5、应用程序开发者重新实现基础(低级)函数的方法步骤:
1)将需要修改的、IAR提供的基础函数模板复制到一个新建的源文件;
2)按实际要求修改相应函数,一般不需要改动接口定义;
3)将新建的源文件加入工程中。
按照以上方法步骤及可实现基础(低级)函数的重新实现。因为用户重写了部分基础(低级函数),在工程编译链接时优先链接到用户定义实现的基础(低级)函数。
6、对于系统程序开发者而言,常常需要按照实际要求改变启动引导文件,如cstartup。在IAR中,可以将armsrclib目录下的cstartup.s文件复制到用户工程中,并加入工程,系统开发者可以根据需要修改此文件实现启动引导程序重写。
总结:作为系统开发者,最关心的是启动代码在哪里?如何修改并链接到实际的执行镜像中。在IAR IDE中,启动代码以DLIB库函数形式提供,系统开发者可以通过在工程中加入cstartup.s 文件并重新改写启动代码即可定制自己需要的启动方式。此外,系统开发者还可以重新定义格式化输入输出的基础(低级)函数,来实现输入输出重定向到LCD或者UART中。