我想在核心 n 的两个线程(虚拟核心)上运行两个不同的操作系统。但我知道线程 0 会从 0xffff_fffc 获取入口。但我不知道如何设置线程 1 的入口。有没有为此目的的登记簿或特别地址?
非常感谢你们的快速支持。
我想在 T4240/e6500 上实现这一功能。我只是在这里找不到具体的注册表。您对此有什么建议吗?
你好
对于多核/多线程处理器,内核的线程 0 通常在启动期间从地址 0xFFF_FFFC 获取其入口点。不过,对于线程 1 而言,通常有一种不同的机制。
为线程 1 设置程序入口:
1.主线程(线程 0)负责设置和启动线程 1
2。这通常是通过特定的寄存器来完成的,这些寄存器控制辅助线程
的RESET矢量或入口点地址。确切的实现取决于您的特定恩智浦处理器,但通常涉及:
1.将线程 1 应用程序代码加载到相应的内存位置
2.将线程 1 的入口点寄存器设置为指向此位置
3。将线程 1 从RESET释放到开始执行
如果您使用的是采用 Arm Cortex 架构的处理器,这通常涉及:
-将RESET向量地址写入特定 SRC(系统重置控制器)寄存器
-设置控制位以释放次要线程的RESET
此致