微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于KeyStone 器件建立鲁棒性系统

基于KeyStone 器件建立鲁棒性系统

时间:10-29 来源:互联网 点击:

位向量指向的程序会被执行。这时NTSR和NRP 不会发生改变。TSR 复制到ITSR,此时的PC 复制到IRP。此时为了避免其他外部异常,硬件将TSR 设置为默认的异常处理值,NMIE 中的IER 比特被清零。

通常中断服务表中的复位向量是跳转到程序起始位置如_c_int00,这样,嵌套异常会重启程序。然而这并非大部分用户所期望的,我们通常期望的是异常发生时在异常服务程序执行完后结束程序。为了避免嵌套异常导致程序重启,可以给嵌套异常添加一个额外的异常服务程序,用户可以修改复位向量跳转到嵌套异常服务程序。在KeyStone 器件中,加载程序不依赖于复位向量启动程序,所以修改复位向量不会影响程序的加载。

6 例程

本文相关的例程可以在TCI6614 EVM, C6670 EVM 及C6678 EVM 上跑通。例程可以从以下链接下载:

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx

如下为工程目录结构:

“common“文件夹中包含通用代码如DDR 初始化及DMA、定时器、多核导航器、SRIO 驱动等。内存保护初始化代码、EDC 及异常处理的代码包含在KeyStone_common.c.

“src”文件夹中的每个c 文件包含一个测试用例代码。主函数在 “Robust_System.c”. 在 “Robust_System.c“的开头有一些宏开关,每个开关用于使能或关闭一个测试用例。

如果出现这种情况,可以关闭这个测试用例然后重新测试其他的用例。

在EVM 上运行例程的步骤如下:

1. 解压例程, 将CCS workspace 切换到解压后的文件夹;

2. 在workspace 中导入工程;

3. 如果发生代码修改对工程重新编译,也许需要在编译选项中修改CSL 保护路径;

4. 设置EVM 板上的器件加载模式为No boot 模式;

5. 将代码加载到DSP core0,运行;

6. 查看CCS stdout 窗口浏览测试结果。

如下为TCI6614 上的测试结果。

7 参考文献

1. Memory Protection On KeyStone Devices (SPRWIKI9012)

2. TMS320C66x DSP CPU and Instruction Set Reference Guide (SPRUGH7)

3. TMS320C66x DSP CorePac User Guide (SPRUGW0)

4. KeyStone Architecture Multicore Shared Memory Controller User Guide (SPRUGW7)

5. KeyStone Architecture Memory Protection Unit (MPU) User Guide (SPRUGW5)

6. KeyStone Architecture Enhanced Direct Memory Access (EDMA3) Controller User Guide (SPRUGS5)

7. KeyStone Architecture Timer64 User Guide (SPRUGV5)

8. KeyStone Architecture Chip Interrupt Controller (CIC) User Guide (SPRUGW4)

9. KeyStone Architecture DDR3 Memory Controller’s user guider (SPRUGV8)

10. TMS320C6000 Optimizing Compiler User's Guide (SPRU187)

11. “Interrupts”, “MPU” and “Memory Map Summary” sections in Device specific Data Manuals

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top