The AURIX™ TC3xx RAM does not initialize methods after reset

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ZhaiL
Employee
Employee
50 sign-ins First reply posted 50 questions asked

我们曾经发布的一条内容中,有用户咨询如下问题,请帮忙解答:

单片机干货|AURIX™ TC3xx 复位后RAM不初始化方法

https://zhuanlan.zhihu.com/p/442135193

  1. 想请教一下我这里想改proconram里ramin位的值是不是只需要按上面步骤到在lsl文件里加入那一段group相关的代码就可以了。我这样操作了下发现好像没有生效下,想咨询下后面的group放的位置有要求吗,我看有好多lsl文件我随便放了个地方
  2. 麻烦问一下tc2系列也可以做ram复位后不初始化嘛?另外有没有以hightec做的方法呢?
0 点赞
1 解答
Di_W
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 250 solutions authored

关于如何写入UCB,请参考ADS1.5.0中的EXAMPLE CODE。比如我们import一个工程DMA_ADC_Transfer_1_KIT_TC397_TFT,然后打开.lsl文件,查找.rodata.bmhd_0_orig,即可看到其地址mem:ucb[0x0000],之后我们可以在Ifx_Cfg_SswBmhd.c中看到const Ifx_Ssw_Bmhd bmhd_0_orig 的内容,这就是写入BMHD_0的方法。关于UCB_DFLASH也是类似的。详情请参考手册中的3.1.1.7.3 RAM Initialization章节。
关于HIGHTEC的做法,区别是对于pragma的定义,在Ifx_Cfg_SswBmhd.c中有 #if defined(__HIGHTEC__)的描述可以参考。


关于TC2, RAMIN存在于PROCOND寄存器中,而对于TC3,RAMIN存在于HF_PROCONRAM寄存器中,其他是类似的。

For example, if we import a project DMA_ADC_Transfer_1_KIT_TC397_TFT, then open the .lsl file and look for .rodata.bmhd_0_orig, you can see its address mem:ucb[ 0x0000], after that we can see the contents of const Ifx_Ssw_Bmhd bmhd_0_orig in Ifx_Cfg_SswBmhd.c, which is the way to write BMHD_0. It is similar regarding UCB_DFLASH. Please refer to section 3.1.1.7.3 RAM Initialization in the manual for details.
The difference regarding the HIGHTEC approach is for the definition of the pragma, which can be found in Ifx_Cfg_SswBmhd.c with the description #if defined(__HIGHTEC__).

Regarding TC2xx, RAMIN is present in the PROCOND register, while for TC3xx, RAMIN is present in the HF_PROCONRAM register, the rest is similar.

在原帖中查看解决方案

0 点赞
1 回复
Di_W
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 250 solutions authored

关于如何写入UCB,请参考ADS1.5.0中的EXAMPLE CODE。比如我们import一个工程DMA_ADC_Transfer_1_KIT_TC397_TFT,然后打开.lsl文件,查找.rodata.bmhd_0_orig,即可看到其地址mem:ucb[0x0000],之后我们可以在Ifx_Cfg_SswBmhd.c中看到const Ifx_Ssw_Bmhd bmhd_0_orig 的内容,这就是写入BMHD_0的方法。关于UCB_DFLASH也是类似的。详情请参考手册中的3.1.1.7.3 RAM Initialization章节。
关于HIGHTEC的做法,区别是对于pragma的定义,在Ifx_Cfg_SswBmhd.c中有 #if defined(__HIGHTEC__)的描述可以参考。


关于TC2, RAMIN存在于PROCOND寄存器中,而对于TC3,RAMIN存在于HF_PROCONRAM寄存器中,其他是类似的。

For example, if we import a project DMA_ADC_Transfer_1_KIT_TC397_TFT, then open the .lsl file and look for .rodata.bmhd_0_orig, you can see its address mem:ucb[ 0x0000], after that we can see the contents of const Ifx_Ssw_Bmhd bmhd_0_orig in Ifx_Cfg_SswBmhd.c, which is the way to write BMHD_0. It is similar regarding UCB_DFLASH. Please refer to section 3.1.1.7.3 RAM Initialization in the manual for details.
The difference regarding the HIGHTEC approach is for the definition of the pragma, which can be found in Ifx_Cfg_SswBmhd.c with the description #if defined(__HIGHTEC__).

Regarding TC2xx, RAMIN is present in the PROCOND register, while for TC3xx, RAMIN is present in the HF_PROCONRAM register, the rest is similar.

0 点赞