DSP中的 - c - int00的问题
更新时间:2024-03-19 01:09:01 阅读量: 综合文库 文档下载
- dsp中的左移右移推荐度:
- 相关推荐
_c_int00是c语言程序的入口。 我们知道,在DSP启动后,系统会进入复位中断,此时复位中断服务函数为c_init00,此函数用于建立C环境,为进入main()函数进行系统初始化,主要工作是建立堆栈,初始化全局变量等。 全局变量的初始化:如果程序在链接时采用-c选项,则编译链接后的可执行程序会将全局变量的初始化放在c_init00()函数中进行,在此函数中会调用_auto_init(CINIT)函数,将.cinit段的内容拷入.bss中相应的变量中,此过程是在系统上电后进入main()函数之前执行的。 如果程序在链接时采用-cr选项,则编译后的可执行程序中全局变量需要使用loader进行初始化,这种方法一般用于在JTAG调试时,CCS即为loader。 系统上电复位后,首先执行reset矢量代码,如果这个代码是我们写的话,我们就令CPU转到c_int00,这段程序为c语言运行做准备。准备工作完成后,就转到c语言的main()。 如果reset矢量代码不是我们写的,是TI公司写的那么就执行bootloader程序,该程序将从某个外部得到的真正程序放在规定的地方,改后转过去执行该代码。 那么如何决定reset矢量代码是ti写的还是我们写的,那就看复位后mp/mc脚的电平。要是调试的时候我们的mp/mc脚选择了我们不希望的方式,怎么办?(在调试的时候一般不管bootloader的,只有项目最后成功了才管),用jtag来控制。 C程序开始运行时,必须首先初始化C运行环境,这是通过_c_int00函数来完成的,这个函数在运行支持库(rts.lib)中。连接器会将这个函数的入口地址放在复位中断向量中,使其可以在初始化时被调用。 _c_int00函数为建立C运行环境,需完成以下工作: l 为系统堆栈产生.stack块,并初始化堆栈指针; l 从.cinit块将初始化数据拷贝到.bss块中相应的变量; l 调用main函数,开始运行C程序; l 用户可以对c_int00函数进行修改,但修改后的函数必须完成以上任务。 关于C6000的引导过程: CPU复位后首先把系统程序加载到内部RAM或者外部高速RAM中,然后在RAM中运行, bootloader就是完成加载的过程。 C6000有3钟引导方式(1)无引导(2)ROM引导 (3)主机引导 我只用过ROM引导。 ROM引导加载过程: (1)当CPU的Reset引脚处于低电平状态时,BOOTMODE的引脚状态根据预设设定(我的目标版 上面有这几个开关可设置),RESET信号处于上升沿的时候,相应加载方式启动。 (2)ROM加载方式是通过DMA控制器,将外部ROM的一段固定大小的代码复制到内部RAM中(加 载时CPU处于stall状态),对于不同型号芯片,复制的代码大小不同。67X的应该是1KB (3)加载完毕后,CPU开始从0地址执行。 想象一下,有的程序都很大,1K是不能解决问题的,所以,一般在0地址处建立一个叫做 “bootloader”的段(代码小于1KB),这一小段程序也叫“引导程序”,上电或者重启后首 先执行它,完成将其余程序(真正完成用户要求算法的程序)加载,然后跳转到主程序入口 地址运行。 举例: 我的目标版FLASH地址为0x9000 0000, 在完成源代码编写,编译,连接后生成*.out文件,通 过hex6x.exe工具转换成*.hex文件(16进制数据文件),然后使用Flashburn工具烧写到外部 Flash Rom中。 程序boot.asm ,功能:完成数据大小为FLASH_SIZE 的数据搬移,源地址FLASH_START,目的 地址RAM_START,搬移结束后跳转的主程序入口点_c_int00运行 FLASH_START .set 0x90000400 ;DMA已经加载可1KB(400H),所以地址从0x90000400开 始 RAM_START .set 0x400 FLASH_SIZE .set 0x40000 .ref _c_int00 .def start .sect \start: mvkl FLASH_START,A4 mvkh FLASH_START,A4 mvkl RAM_START,B4 mvkh RAM_START,B4 mvkl FLASH_SIZE,B5 mvkh FLASH_SIZE,B5 zero A1 loop ldw *A4++,B0 nop 5 stw B0,*B4++ add 1,A1,A1 cmplt A1,B5,B0 nop [B0] b loop nop 5 b _c_int00 nop 5
正在阅读:
DSP中的 - c - int00的问题03-19
儿科重点专科规划04-19
LOAN AND SECURITY AGREEMENT 贷款担保协议目录06-09
专用发票使用大全12-15
临泗小学“节俭养德从我做起”活动总结10-16
小学生一年级公园游记作文06-14
霸气硬气有骨气的语录02-22
最新-2018年高考政治试题分类汇编:(经济生活) 精品03-17
施工组织(铝塑板幕墙)03-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 问题
- int00
- DSP