嵌入式开发者社区

标题: 加密TMS320C6748 二次加载求助 [打印本页]

作者: feilun998    时间: 2018-9-7 09:16
标题: 加密TMS320C6748 二次加载求助
TMS320C6748芯片被更换为-E版本,启动问题请教。 原有实现
程序1实现功能:程序1代码对flash的偏移64K之后的程序2.bin(out2rprc生成)内容进行解析,取出各section放到相应内存,记录entryPoint,跳转到entryPoint执行;
        appEntry = (void (*)(void)) entryPoint;
        (*appEntry)( );

然后用使用AisGen工具生成程序1的bin文件。
程序2:功能实现,使用out2rprc生成程序2的bin文件。 生成程序1和程序2的合并文件,程序1为前64K,程序2从64K地址开始,合并文件拷贝进FLASH,通过SPI0启动。


现TMS320C6748芯片被更换为-E版本后,使用SecureHexAIS_OMAP-L138.exe生成程序1的bin文件,烧录到FLASH后启动成功,请问怎么操作能够跳转到程序2执行。(程序2能够执行就够了)



作者: Tronlong-陈工    时间: 2018-9-7 09:33
1. “TMS320C6748芯片被更换为-E版本”这点意思是指原来使用的是6748非加密版本的核心板现替换为6748加密板吗?

2. 在之前使用的6748版本是否能够正常运行程序1和程序2?
作者: feilun998    时间: 2018-9-7 09:37

1. “TMS320C6748芯片被更换为-E版本”这点意思是指原来使用的是6748非加密版本的核心板现替换为6748加密板吗?
是的。

2、在之前使用的6748版本是否能够正常运行程序1和程序2?
能够正常使用,程序1和程序2跳转的流程在前面简单写了。程序1负责从FLASH的64K后解析rprc文件并拷贝到外部RAM中,然后跳转到程序2的entryPoint,执行程序2.
作者: Tronlong-陈工    时间: 2018-9-7 10:14
生成程序1和程序2的合并文件的过程应该是一样的,非加密和加密板的区别主要在将程序加密的过程。你有试过将JTAG口解锁后按照之前的方法进行仿真和烧写运行程序吗?是否正常?
作者: feilun998    时间: 2018-9-7 10:38
本帖最后由 feilun998 于 2018-9-7 11:22 编辑

尝试了这样的操作:
1、程序1通过SecureHexAIS_OMAP-L138.exe生成bin文件;
2、程序2通过out2rprc生成bin文件;
3、生成合并文件,程序1在前0~64K,程序2在64K之后;
4、合并文件烧写进FLASH;
5、重启DSP,程序1启动点灯正常;
6、在程序1中使用下面方法跳转到程序2,但程序2的启动点灯都没有进行
      从FLASH中解析拷贝程序2的rprc文件,拷贝section到RAM(0xC0000000 + x)的相应地址中,接着尝试进入程序2的入口。
  appEntry = (void (*)(void)) entryPoint;
        (*appEntry)( );
7、立即通过仿真器连接DSP,此时的运行地址在DSP的0x0070 0000+x( L2 ROM)中,但期望的运行地址应在0xC0000000+x中;
8、然后仿真器执行load program,加载程序1的out文件,再次执行FLASH的文件拷贝和解析等操作,进行程序跳转;
9、此时程序2能够正常运行10、但是直接上电启动后,程序2不能运行。。。

作者: feilun998    时间: 2018-9-7 16:48
能够按照上面的方法跳转到程序2,但由于程序2的原因,未能顺利执行,正在排查。感谢 Tronlong-陈工 支持。




欢迎光临 嵌入式开发者社区 (https://51ele.net/) Powered by Discuz! X3.4