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++标准库函数的实现,分别位于安装目录arm\lib以及arm\src\lib下。


4、C/C++标准库函数的实现依赖于具体的目标系统,比如标准输入/输出需要具体硬件的输入设备操作函数和输出设备操作函数。C/C++标准库函数使用基础(低级)函数集来和目标系统交换,将这些基础(低级)函数集合成为“库基础接口”。为实现真正的C/C++标准库,应用程序的开发者必须重新实现(定义)这些基础(低级)函数。可重写的基础(低级)函数位于IAR安装目录arm\src\lib下。


5、应用程序开发者重新实现基础(低级)函数的方法步骤:

1)将需要修改的、IAR提供的基础函数模板复制到一个新建的源文件;

2)按实际要求修改相应函数,一般不需要改动接口定义;

3)将新建的源文件加入工程中。

按照以上方法步骤及可实现基础(低级)函数的重新实现。因为用户重写了部分基础(低级函数),在工程编译链接时优先链接到用户定义实现的基础(低级)函数。


6、对于系统程序开发者而言,常常需要按照实际要求改变启动引导文件,如cstartup。在IAR中,可以将arm\src\lib目录下的cstartup.s文件复制到用户工程中,并加入工程,系统开发者可以根据需要修改此文件实现启动引导程序重写。


总结:作为系统开发者,最关心的是启动代码在哪里?如何修改并链接到实际的执行镜像中。在IAR IDE中,启动代码以DLIB库函数形式提供,系统开发者可以通过在工程中加入cstartup.s 文件并重新改写启动代码即可定制自己需要的启动方式。此外,系统开发者还可以重新定义格式化输入\输出的基础(低级)函数,来实现输入\输出重定向到LCD或者UART中。

你可能感兴趣的:(IAR IDE学习之---启动文件(cstartup)与输入\输出重定向方法)