打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于DSP中c_int00和引导程序
1 ._c_int00符号的说明。它是运行支持库(RTS.lib)包含的一个重要函数。如果Linker选项使用-c或-cr选项,_c_int00被自动定义为程序的入口点。用c语言编程时要注意:在project-》options的linker属性页中要有-c,那是与c程序的入口。在Linker选项下面选择NoAutoinitialization
2. _c_int00是c语言程序的入口。 系统上电复位后,首先执行reset矢量代码,如果这个代码是我们写的话,我们就令CPU转到c_int00,这段程序为c语言运行做准备。准备工作完成后,就转到c语言的main()。
3. 如果reset矢量代码不是我们写的,是TI公司写的那么就执行bootloader程序,该程序将从某个外部得到的真正程序放在规定的地方,改后转过去执行该代码。 如何决定reset矢量代码是ti写的还是我们写的,那就看复位后mp/mc脚的电平。要是调试的时候我们的mp/mc脚选择了我们不希望的方式,怎么办?(在调试的时候一般不管bootloader的,只有项目最后成功了才管),用jtag来控制。
4. C程序开始运行时,必须首先初始化C运行环境,这是通过_c_int00函数来完成的,这个函数在运行支持库(rts.lib)中。连接器会将这个函数的入口地址放在复位中断向量中,使其可以在初始化时被调用。_c_int00函数为建立C运行环境,需完成以下工作: 为系统堆栈产生.stack块,并初始化堆栈指针; 从.cinit块将初始化数据拷贝到.bss块中相应的变量; 调用main函数,开始运行C程序;
5. c_int00是C初始化代码的入口地址,在你用C编程的时候,DSP需要执行一段C运行支持库代码以完成C运行环境的初始化,_c_int00就是这段初始化代码的入口地址。执行完初始化代码后,库代码会自动跳到main函数继续运行。
我以前遇到有汇编和c混合编程有c_int00() 错误和警告的问题,你的bootload程序运行到c_int00() 跳转不了!运行c_int00() 后直接死了,会不会是没有加载到合适的库(rts.lib),进入了一个死循环,跳不到主函数那去
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DSP学习
DSP编程技巧之21
怎样让一个程序中写代码让自己重启?
c语言调试技巧总结
寄存器
C 程序结构(上)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服