当我们在PC运行一些C/C++编写程序的时候,如果缺少必要的库文件或者说一些dll文件之类的,程序会崩溃并在各种崩溃声音的提示下弹出一堆对话框,提示我们“run-time error”,缺少xxxx运行库文件等等。那运行库文件是做什么的呢?它里面主要包含了C/C++的库函数,编译器内建的一些功能函数、浮点数的算数运算函数,以及编译器所支持的C语言中一些与I/O操作有关的函数等。在DSP中运行里面运行我们的程序时,同样需要相关的实时运行库文件的支持;所以我们要配置一些相关的运行库选项,使得编译器知道我们希望使用什么样的方法来使用实时运行库,这就是运行时模型(run-time error),它主要定义了代码在特定选项之下的运行方式,这些选项如表1所示。
钩子函数(hook function)是在进入程序中的函数或者退出函数时调用的程序。它们的用途包括:调试(debug)、跟踪(trace)、评估(profile)以及堆栈溢出的检测等。我们可以通过表1中的选项对钩子函数的使用进行控制。
关于钩子函数,在CCS的编译器里还有以下的几个规则可以补充说明一下:
1. 使能钩子函数选项的话,会默认使用表1中的定义方法创建钩子函数的隐式声明。此时如果我们要声明或者定义钩子函数的功能的话,必须与这个隐式声明使用相同的定义方式。
2. 在C++编程的时候,钩子函数被声明为外部的C函数,这时候我们可以使用C语言或者汇编语言来编写钩子函数的程序,因为使用的是extern C的调用方法,所以我们不用担心会违反C++的函数名字改编(name mangling)规则而产生编译错误。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !