This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 66AK2L06:66AK2L06上确切的 ARM 引导魔法地址是什么?

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/607840/66ak2l06-what-is-the-exactly-arm-boot-magic-address-on-66ak2l06

器件型号:66AK2L06

大家好、

如链接所示、  

e2e.ti.com/.../2232107

我正在努力在66AK2L06上启动辅助 ARM 内核。

我查看 git.ti.com 上的引导监视器提交日志、并发现 TI 更改了 ARM 引导魔法地址。

目前、引导监视器中的 ARM 引导神奇地址和入口设置如下所示:

#define CORE_N_BASE_ADDR_ARM00x02501040
unsigned int * addr =(unsigned int *) core_N_base_ADDR_ARM0;
对于(i = 1;i < arm_cluster_NUM_CPU;i++){
ADDR[I * 2]=(unsigned int)_skern_123_init;
} 

但次级 ARM 内核根本不会在我的电路板上执行指令。

我在 skernel.S 中添加了调试函数、以检查次级 ARM 内核是否可以通过在带有汇编代码的 UART0上添加调试信息来执行指令。

就像这样:

全局_skern_123_init
_skern_123_init:
@
@我们在 RBL 快速启动后来到这里
@我们不需要保存 SP 和其他寄存器
@我们只为我们安装监视器矢量和堆栈
@
b __debug_test 

如果我将 ARM 引导魔法地址恢复为旧地址、如下所示:

    #define CORE_N_BASE_ADDR_ARM0 0x0c1d2500
  unsigned int * addr =(unsigned int *) core_N_base_ADDR_ARM0;
  对于(i = 1;i < arm_cluster_NUM_CPU;i++){
 Addr[i]=(unsigned int)_skern_123_init;
  }
次级 ARM 内核可以执行我的调试代码并将调试信息放置在 UART0上。
但是、它在执行 MCR 指令后挂起、如下所示:
全局_skern_123_init
_skern_123_init:
@μ A
@我们在 RBL 快速启动后来到这里
@我们不需要保存 SP 和其他寄存器
@我们只为我们安装监视器矢量和堆栈
@μ A
    @b __debug_test
    R8女士、CPSR
BIC R8、R8、#0x1f
ORR R8、R8、#0x16
MSR CPSR_c、R8
     @b __debug_test
 
LDR R1、=monitor_vectors
      @b __debug_test
MCR P15、#0、R1、C12、c0、 #1 @执行此指令时、次级 ARM 挂起
      b __debug_test @此处未到达
MRC P15、#0、r0、c0、c0、 5号
 
和 r0 、r0、#3
      @b __debug_test @此处未到达
 它太模糊了。  没有任何文档说明66AK2L06上的 ARM 引导魔法地址。
我应该对此问题做些什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这是 Linux、对吧? 您能否分享您正在使用的 SDK?
    您是否试用过我们最新的 SDK 04_00_00_04 (software-dl.ti.com/.../index_FDS.html)

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此线程是 e2e.ti.com/.../2232107的副本。 我们将坚持使用该线程、而不是使用多个线程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用具有相同结果的 SDK 3.02和3.03。 我正在下载 SDK 4.00以查看此问题是否有一些更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我已经测试了最新 SDK 04_00_00_04中的预构建映像。
    遗憾的是、次级 ARM 内核无法作为预版本启动。