对6713boot_loader的理解

2019-04-14 19:42发布

对6713boot_loader的理解

对于dsp6713的bootloader的主要作用: Ø       在dsp复位上电后能够自行启动,并且将用户的应用程序从FLASH中拷贝到RAM中执行; Ø       能够跳转到应用程序的入口函数处。

1 对于boot_loader文件夹的主要文件组成

文件夹dsp_refresh_v1_bootload1中有c语言程序也有汇编程序: boot_c671x_2.s62和c6713_emif.s62:这部分程序为汇编代码,主要定义和配置emif,实现将FLASH中的数据(地址为:0x90000000)拷贝到RAM中执行,并跳转到_c_int00处,启动DSP。一般是硬件自动从外部FLASH的E1块中拿出的起始1KB数据拷贝到内部程序的0地址。 main.c:c语言代码,_c_int00入口代码,判断GSE开关是否有效,有效则通过RS232串口通信完成用户程序写入到FLASH中(地址为:0x90010000),并且调用加载用户程序函数usercode_loader()。 uer_code_loader.asm:汇编代码,主要将FLASH中的用户程序搬运到DSP的RAM中执行,并跳转到执行入口地址。 vecs.asm:汇编代码,中断向量表,实现DSP中断时跳转到正确的对应地址位置去执行中断处理函数,默认的,中断服务表在0地址处。

2 boot_loader和用户程序的加载

Ø       在线加载自启动程序 Ø       自启动程序加载上层用户程序 在线加载自启动程序:在ccs3.3中打开dsp_refresh_v1_bootload1文件夹中的工程文件,编译生成.out文件,用.bat工具将其转换成.hex文件和.map文件。 连接仿真器与测试设备,上电后,在ccs3.3中打开dsp_refresh_0115_success1文件夹下的RS232_peizhi_0811.pjt工程文件,编译执行,在PC机上运行python程序,实现PC与测试设备的RS232数据传输,将bootloader生成的.hex文件固化到FLASH中。 自启动程序加载上层用户程序:在ccs3.3中打开用户程序的工程文件,编译生成.out文件,用.bat文件将其转换成.hex文件和.map文件(注意:FLASH版的用户程序与在线调试版本的用户程序中的vectors.asm和lnk.cmd文件不同,需替换)。 将设备GSE开关拨至有效,上电后,在PC机上运行python程序,实现PC与测试设备的RS232数据传输,将用户程序生成的.hex文件固化到FLASH中,并且bootloader程序在上电后会启动dsp并且加载用户程序到ram中执行。

3 图解6713的程序加载与执行


图1 6713加载bootloader图解