您好!
我的客户正在评估其电路板上的66AK2H06。
使用 CCS 时、大部分初始化由 GEL 文件完成。
GEL 文件是 attached.e2e.ti.com/.../xtcievmk2x_5F00_arm.txt
客户现在正在尝试在没有 CCS 的情况下进行测试、并将 GEL 完成的大多数初始化序列放入其代码中。
GEL 文件中有一个函数 enterNonSecureMode()。 连接 CCS 后工作正常。
当他们在代码中放置类似的序列时、程序会在某个位置运行。
CSL_a15DisableMMU(); CSL_a15DisableIntstrCache (); CSL_a15DisableDataCache (); /*设置 NSACR 中的位10和11以允许 NS 访问 cp10和 cp11 */ asm ("MRC P15、0、r0、C1、C1、 2\n"); asm ("ORR r0、r0、#0x00000C00\n"); asm ("MCR P15、0、r0、C1、C1、 2\n"); /*将 SCR 中的 bit 0设置为 NS 模式*/ asm ("MRC P15、0、r0、C1、C1、 0\n"); asm ("ORR r0、r0、#0x1\n"); asm ("MCR P15、0、r0、C1、C1、 0\n"); //“启用 EnableNeon” asm ("MRC P15、#0、R1、C1、c0、 #2\n"); asm ("ORR R1、R1、#(0xF << 20)\n"); asm ("MCR P15、#0、R1、C1、c0、 #2\n"); asm ("MOV R1、#0\n"); //"启用 ACTLR 中的 SMP 位" asm ("MRC P15、#0、R1、C1、c0、 #1\n"); asm ("ORR R1、R1、#(0x1 << 6)\n"); asm ("MCR P15、#0、R1、C1、c0、 #1\n"); //确保在更改安全模式后禁用 MMU 和高速缓存 CSL_a15DisableMMU(); CSL_a15DisableIntstrCache (); CSL_a15DisableDataCache ();
Q1) enterNonSecureMode()的用途是什么?
Q2)客户代码中是否需要相同的序列?
Q3)客户代码序列出了什么问题?
谢谢、此致、
田志郎一郎