Thread 中讨论的其他器件:AMIC110、 SYSBIOS
工具/软件:TI-RTOS
您好!
是否有人能向我解释有关 MMU 和裸机访问的所有信息?
开个玩笑而已。
有人能给我点一些文档吗? 还是某条指令? 我有5、000页的 AM335x spruh73以及 ARM 参考手册、各种书籍... 但是、我在使用 Sys/BIOS 时无法获取裸机访问。 我在 CCS 7.2上使用 BBB、无论有无 TI-RTOS
当它尝试访问寄存器44e0 xxxx 时 、它似乎为我提供了一个数据总线中断。
问题如下:
使用旧版 StarterWare、可以调用初始化和启用 GPIO 端口。 具体而言、是 GPIO1。 我可以看到从复位运行直到进入"main()"的所有代码,因此我可以在尝试访问 GPIO 端口之前看到正在"封面下"执行的操作。 一切都很好。
当我尝试将同一条语句引入到 Sys/BIOS 项目中时、它会崩溃。
HWREG (SOC_CM_PER_REGS + CM_PER_GPIO1_CLKCTRL)|= CM_PER_GPIO1_CLKCTRL_MODULEMODE_ENABLE;
在这两种情况下,它都是在"main()"中执行的第一项操作。 我写它来进行调试。
因此、从逻辑上讲、Sys/BIOS 正在执行某项操作(或不执行某项操作)、这会导致生成数据总线错误中断的指令(至少、这似乎正在发生)。 它必须执行(或不执行)入口点"_c_int00"内的任何操作。 在 StarterWare 启动代码中、我可以看到没有什么显著的影响、这可能会影响到 the 直接寄存器访问。
在我们进入"main()"之前,我不知道 Sys/BIOS 在封面下面做什么,但不管怎样,我猜我必须“撤消”它。 我还猜测它与内存管理单元(CP15)有关。
所以我要问... 什么是内存系统、虚拟内存、内存访问控制的良好教程/介绍? 我已经阅读了大量的《ARM 架构参考手册》(来自 ARM 组)和大量的《AM335x 和 AMIC110 Sitara处理器技术参考手册》(SPRUH73)。 那么、要么是我错过了一个特定的章节、需要学习、要么是在某个地方有其他信息?
我已经在 TI E2E 上进行了搜索、发现的所有内容都已有3-6年历史、这意味着它对当前环境是无用的。
-CSW