您好!
我的客户正在评估其电路板上的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)客户代码序列出了什么问题?
谢谢、此致、
田志郎一郎