S32K116新建工程Debug可以运行,冷启动无法运行问题分析

S32K116使用IAR建立工程后,软件debug可以运行,断电冷启动无法运行。

这种现象基本上都是RAM未初始化导致,由于Debug时,调试器会自动初始化芯片,很多问题都不会暴露处理。

大家可以开一下Startup的汇编文件,相关代码片段如下,如果没有定义START_FROM_FLASH这个宏定义,则没有初始化SRAM,所以软件是无法运行的。

#ifdef START_FROM_FLASH
        IMPORT __RAM_START, __RAM_END
        ;; INIT ECC RAM

        LDR R1, =__RAM_START
        LDR R2, =__RAM_END

        SUBS    R2, R2, R1
        SUBS    R2, #1
        BLE .LC5

        MOVS    R0, #0
        MOVS    R3, #4
    .LC4:
        STR R0, [R1]
        ADD	R1, R1, R3
        SUBS R2, #4
        BGE .LC4
    .LC5:
#endif

在IAR环境下,C语言和汇编语言,头文件和宏定义是独立的,添加时需要注意,在下面界面中添加汇编宏定义,则可以解决这个问题。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值