硬汉嵌入式论坛

 找回密码
 立即注册
搜索
查看: 756|回复: 25
收起左侧

stm32f429+MT48LC16M16A2P的SDRAM,冷启动hardfault

  [复制链接]

45

主题

349

回帖

484

积分

高级会员

积分
484
发表于 2026-8-24 16:37:25 | 显示全部楼层 |阅读模式
请教下stm32f429+MT48LC16M16A2P的SDRAM,冷启动进入hardfault?按下复位键热启动就没问题。怎么分析查找定位问题呢?
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-8-24 16:39:24 | 显示全部楼层
补充一下,用了分散加载; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x08000000 0x00200000  {    ; load region size_region
  ER_IROM1 0x08000000 0x00200000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }
  RW_IRAM1 0x20000000 0x00030000  {  ; RW data
   .ANY (+RW +ZI)
  }  
  
  RW_IRAM2 0x10000000 0x00010000  {      
   *(.CCM_RAM)                                                      
  }
  RW_SDRAM1 0xD0000000 0x01000000 {          ;file system + uart
        *(.RAM_SDRAM1)  
        .ANY (HEAP)        
  }
  RW_SDRAM2 0xD1000000 0x0F000000 {  
        *(.RAM_SDRAM2)      
        static_model.o (+RW +ZI)       
  }
}
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-8-28 16:48:01 | 显示全部楼层

// 保存异常现场的结构体
typedef struct {
    uint32_t R0;
    uint32_t R1;
    uint32_t R2;
    uint32_t R3;
    uint32_t R12;
    uint32_t LR;          // 链接寄存器
    uint32_t PC;          // 程序计数器(返回地址)
    uint32_t PSR;         // 程序状态寄存器
} ExceptionFrame_t;

void HardFaultHandler(unsigned int* pStack)
{
    // 获取栈指针
    uint32_t sp = __get_MSP();
    ExceptionFrame_t *frame = (ExceptionFrame_t *)sp;
   
    // 读取 Fault 寄存器(安全方式)
    uint32_t CFSR = SCB->CFSR;
    uint32_t HFSR = SCB->HFSR;
   
    // ?? 只在有效时读取 BFAR 和 MMFAR
    uint32_t BFAR = 0;
    uint32_t MMFAR = 0;
   
    if (CFSR & (1 << 15)) {  // BFARVALID
        BFAR = SCB->BFAR;
    }
    if (CFSR & (1 << 7)) {   // MMARVALID
        MMFAR = SCB->MMFAR;
    }
   
    // 输出异常信息(使用你之前的输出函数)
    hardfault_send_string("\r\n========================================\r\n");
    hardfault_send_string("        HARD FAULT DETECTED !\r\n");
    hardfault_send_string("========================================\r\n\n");
   
    // CPU 寄存器
    hardfault_send_string("=== CPU Registers ===\r\n");
    hardfault_send_string("  R0  = 0x");
    hardfault_send_hex(frame->R0);
    hardfault_send_string("\r\n");
    hardfault_send_string("  R1  = 0x");
    hardfault_send_hex(frame->R1);
    hardfault_send_string("\r\n");
    hardfault_send_string("  R2  = 0x");
    hardfault_send_hex(frame->R2);
    hardfault_send_string("\r\n");
    hardfault_send_string("  R3  = 0x");
    hardfault_send_hex(frame->R3);
    hardfault_send_string("\r\n");
    hardfault_send_string("  R12 = 0x");
    hardfault_send_hex(frame->R12);
    hardfault_send_string("\r\n");
    hardfault_send_string("  LR  = 0x");
    hardfault_send_hex(frame->LR);
    hardfault_send_string("\r\n");
    hardfault_send_string("  PC  = 0x");
    hardfault_send_hex(frame->PC);
    hardfault_send_string("\r\n");
    hardfault_send_string("  PSR = 0x");
    hardfault_send_hex(frame->PSR);
    hardfault_send_string("\r\n");
    hardfault_send_string("  SP  = 0x");
    hardfault_send_hex(sp);
    hardfault_send_string("\r\n\n");
   
    // Fault 状态
    hardfault_send_string("=== Fault Status ===\r\n");
   
    if (HFSR & (1 << 30)) {
        hardfault_send_string("  [HFSR] Forced Hard Fault\r\n");
    }
    if (CFSR & (1 << 17)) {
        hardfault_send_string("  [CFSR] UNALIGNED ACCESS !\r\n");
        hardfault_send_string("    -> Check pointer alignment\r\n");
    }
    if (CFSR & (1 << 13)) {
        hardfault_send_string("  [CFSR] Precise Data Bus Error\r\n");
        hardfault_send_string("    -> BFAR = 0x");
        hardfault_send_hex(BFAR);
        hardfault_send_string("\r\n");
    }
    if (CFSR & (1 << 4)) {
        hardfault_send_string("  [CFSR] Memory Management Fault\r\n");
        hardfault_send_string("    -> MMFAR = 0x");
        hardfault_send_hex(MMFAR);
        hardfault_send_string("\r\n");
    }
   
    hardfault_send_string("\r\n=== Raw Fault Registers ===\r\n");
    hardfault_send_string("  CFSR  = 0x");
    hardfault_send_hex(CFSR);
    hardfault_send_string("\r\n");
    hardfault_send_string("  HFSR  = 0x");
    hardfault_send_hex(HFSR);
    hardfault_send_string("\r\n");
    hardfault_send_string("  BFAR  = 0x");
    hardfault_send_hex(BFAR);
    hardfault_send_string("\r\n");
    hardfault_send_string("  MMFAR = 0x");
    hardfault_send_hex(MMFAR);
    hardfault_send_string("\r\n");
   
    hardfault_send_string("\r\n========================================\r\n");
    hardfault_send_string("         SYSTEM HALTED !\r\n");
    hardfault_send_string("========================================\r\n");
   
    while (1);
}
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-8-28 16:49:30 | 显示全部楼层
zhengwending 发表于 2026-8-28 16:48
// 保存异常现场的结构体
typedef struct {
    uint32_t R0;

========================================
        HARD FAULT DETECTED !
========================================

=== CPU Registers ===
  R0  = 0x00000000
  R1  = 0x20007D58
  R2  = 0x080C111C
  R3  = 0x00000000
  R12 = 0x080AFD09
  LR  = 0x0805A615
  PC  = 0x0805A624
  PSR = 0x41000000
  SP  = 0x200240B8

=== Fault Status ===
  [HFSR] Forced Hard Fault

=== Raw Fault Registers ===
  CFSR  = 0x00008200
  HFSR  = 0x40000000
  BFAR  = 0xA06DA16F
  MMFAR = 0x00000000

========================================
         SYSTEM HALTED !
========================================
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124238
QQ
发表于 2026-8-28 16:59:48 | 显示全部楼层
问题解决没,如果没有解决,大胆猜测,FMC SDRAM初始化有个延迟参数,你那边的延迟时间是不是没起作用
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-8-29 06:09:14 来自手机 | 显示全部楼层
eric2013 发表于 2026-8-28 16:59
问题解决没,如果没有解决,大胆猜测,FMC SDRAM初始化有个延迟参数,你那边的延迟时间是不是没起作用

没解决。请教哪个参数呢?我也各种加延时   一进main加,在systeminit里加   都不行,flashfs也挂载成功。在运行一个任务,任务里有动态内存分配    hardfaukt。。修改sdram的刷新周期,修改时序,修改发送命令后的延时时间,都不行!
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-8-29 06:24:51 来自手机 | 显示全部楼层
eric2013 发表于 2026-8-28 16:59
问题解决没,如果没有解决,大胆猜测,FMC SDRAM初始化有个延迟参数,你那边的延迟时间是不是没起作用

也借助了ai分析,说是内存未对齐使用,查了半天也没找到!看反汇编,根据输出结果,确定位到oskernelstart,这更不应该呀,flashfs那个任务已经运行起来了,挂载成功,也打印除了1 2 3等那些选项,就是运行需要动态内存分配的任务时进入hardfault,把这个任务屏蔽掉,也没问题!摸不着头脑了!请版主指指方向!!!
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124238
QQ
发表于 2026-8-29 14:15:15 | 显示全部楼层
zhengwending 发表于 2026-8-29 06:24
也借助了ai分析,说是内存未对齐使用,查了半天也没找到!看反汇编,根据输出结果,确定位到oskernelstar ...

SDRAM初始化配置的时候,中间不是有个延迟,你看下这个延迟正常执行没
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-8-29 21:39:29 来自手机 | 显示全部楼层
eric2013 发表于 2026-8-29 14:15
SDRAM初始化配置的时候,中间不是有个延迟,你看下这个延迟正常执行没

void SDRAM_Init(void)
{
    FMC_SDRAMInitTypeDef  FMC_SDRAMInitStructure;
    FMC_SDRAMTimingInitTypeDef  FMC_SDRAMTimingInitStructure;

    /* 配置FMC接口相关的 GPIO*/
    SDRAM_GPIO_Config();

    /* 使能 FMC 时钟 */
    RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FMC, ENABLE);

    /* SDRAM时序结构体,根据SDRAM参数表配置----------------*/
    /* SDCLK: 90 Mhz (HCLK/2 :180Mhz/2) 1个时钟周期Tsdclk =1/90MHz=11.11ns*/
    /* TMRD: 2 Clock cycles */
    FMC_SDRAMTimingInitStructure.FMC_LoadToActiveDelay    = 2;
    /* TXSR: min=70ns (7x11.11ns) */
    FMC_SDRAMTimingInitStructure.FMC_ExitSelfRefreshDelay = 7;
    /* TRAS: min=42ns (4x11.11ns) max=120k (ns) */
    FMC_SDRAMTimingInitStructure.FMC_SelfRefreshTime      = 4;
    /* TRC:  min=70 (7x11.11ns) */
    FMC_SDRAMTimingInitStructure.FMC_RowCycleDelay        = 7;
    /* TWR:  min=1+ 7ns (1+1x11.11ns) */
    FMC_SDRAMTimingInitStructure.FMC_WriteRecoveryTime    = 2;
    /* TRP:  15ns => 2x11.11ns */
    FMC_SDRAMTimingInitStructure.FMC_RPDelay              = 2;
    /* TRCD: 15ns => 2x11.11ns */
    FMC_SDRAMTimingInitStructure.FMC_RCDDelay             = 2;

    /* FMC SDRAM 控制配置 */
    /*选择存储区域*/
    FMC_SDRAMInitStructure.FMC_Bank = FMC_Bank2_SDRAM;
    /* 行地址线宽度: [8:0] */
    FMC_SDRAMInitStructure.FMC_ColumnBitsNumber = FMC_ColumnBits_Number_9b;
    /* 列地址线宽度: [12:0] */
    FMC_SDRAMInitStructure.FMC_RowBitsNumber = FMC_RowBits_Number_13b;
    /* 数据线宽度 */
    FMC_SDRAMInitStructure.FMC_SDMemoryDataWidth = SDRAM_MEMORY_WIDTH;
    /* SDRAM内部bank数量*/
    FMC_SDRAMInitStructure.FMC_InternalBankNumber =FMC_InternalBank_Number_4;
    /* CAS潜伏期 */
    FMC_SDRAMInitStructure.FMC_CASLatency = FMC_CAS_Latency_2;
    /* 禁止写保护*/
    FMC_SDRAMInitStructure.FMC_WriteProtection =
                                            FMC_Write_Protection_Disable;
    /* SDCLK时钟分频因子,SDCLK = HCLK/SDCLOCK_PERIOD*/
    FMC_SDRAMInitStructure.FMC_SDClockPeriod = FMC_SDClock_Period_2;
    /* 突发读模式设置*/
    FMC_SDRAMInitStructure.FMC_ReadBurst = FMC_Read_Burst_Enable;
    /* 读延迟配置 */
    FMC_SDRAMInitStructure.FMC_ReadPipeDelay = FMC_ReadPipe_Delay_0;
    /* SDRAM时序参数 */
    FMC_SDRAMInitStructure.FMC_SDRAMTimingStruct =&FMC_SDRAMTimingInitStructure;

    /* 调用初始化函数,向寄存器写入配置 */
    FMC_SDRAMInit(&FMC_SDRAMInitStructure);

    /* 执行FMC SDRAM的初始化流程*/
    SDRAM_InitSequence();
}
static void SDRAM_InitSequence(void)
{
    FMC_SDRAMCommandTypeDef FMC_SDRAMCommandStructure;
    uint32_t tmpr = 0;

    /* Step 3 -----------------------------------------------*/
    /* 配置命令:开启提供给SDRAM的时钟 */
    FMC_SDRAMCommandStructure.FMC_CommandMode = FMC_Command_Mode_CLK_Enabled;
    FMC_SDRAMCommandStructure.FMC_CommandTarget = FMC_COMMAND_TARGET_BANK;
    FMC_SDRAMCommandStructure.FMC_AutoRefreshNumber = 1;
    FMC_SDRAMCommandStructure.FMC_ModeRegisterDefinition = 0;
    /* 检查SDRAM标志,等待至SDRAM空闲 */
    while (FMC_GetFlagStatus(FMC_BANK_SDRAM, FMC_FLAG_Busy) != RESET);
    /* 发送上述命令*/
    FMC_SDRAMCmdConfig(&FMC_SDRAMCommandStructure);

    /* Step 4 ---------------------------------------------*/
    /*延时 */
    SDRAM_delay(10);

    /* Step 5 -------------------------------------------*/
    /* 配置命令:对所有的bank预充电 */
    FMC_SDRAMCommandStructure.FMC_CommandMode = FMC_Command_Mode_PALL;
    FMC_SDRAMCommandStructure.FMC_CommandTarget = FMC_COMMAND_TARGET_BANK;
    FMC_SDRAMCommandStructure.FMC_AutoRefreshNumber = 1;
    FMC_SDRAMCommandStructure.FMC_ModeRegisterDefinition = 0;
    /* 检查SDRAM标志,等待至SDRAM空闲 */
    while (FMC_GetFlagStatus(FMC_BANK_SDRAM, FMC_FLAG_Busy) != RESET);
    /* 发送上述命令*/
    FMC_SDRAMCmdConfig(&FMC_SDRAMCommandStructure);

    /* Step 6 --------------------------------------------*/
    /* 配置命令:自动刷新 */
    FMC_SDRAMCommandStructure.FMC_CommandMode = FMC_Command_Mode_AutoRefresh;
    FMC_SDRAMCommandStructure.FMC_CommandTarget = FMC_COMMAND_TARGET_BANK;
    FMC_SDRAMCommandStructure.FMC_AutoRefreshNumber = 2;
    FMC_SDRAMCommandStructure.FMC_ModeRegisterDefinition = 0;
    /* 检查SDRAM标志,等待至SDRAM空闲 */
    while (FMC_GetFlagStatus(FMC_BANK_SDRAM, FMC_FLAG_Busy) != RESET);
    /* 发送自动刷新命令*/
    FMC_SDRAMCmdConfig(&FMC_SDRAMCommandStructure);

    /* Step 7 ----------------------------------------------*/
    /* 设置sdram寄存器配置 */
    tmpr = (uint32_t)SDRAM_MODEREG_BURST_LENGTH_8          |
        SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL   |
        SDRAM_MODEREG_CAS_LATENCY_2           |
        SDRAM_MODEREG_OPERATING_MODE_STANDARD |
        SDRAM_MODEREG_WRITEBURST_MODE_SINGLE;

    /* 配置命令:设置SDRAM寄存器 */
    FMC_SDRAMCommandStructure.FMC_CommandMode = FMC_Command_Mode_LoadMode;
    FMC_SDRAMCommandStructure.FMC_CommandTarget = FMC_COMMAND_TARGET_BANK;
    FMC_SDRAMCommandStructure.FMC_AutoRefreshNumber = 1;
    FMC_SDRAMCommandStructure.FMC_ModeRegisterDefinition = tmpr;
    /* 检查SDRAM标志,等待至SDRAM空闲 */
    while (FMC_GetFlagStatus(FMC_BANK_SDRAM, FMC_FLAG_Busy) != RESET);

    /* 发送上述命令*/
    FMC_SDRAMCmdConfig(&FMC_SDRAMCommandStructure);

    /* Step 8 --------------------------------------------*/

    /* 设置刷新计数器 */
    /*刷新速率 = (COUNT + 1) x SDRAM 频率时钟
        COUNT =( SDRAM 刷新周期/行数) - 20*/
    /* 64ms/8192=7.83us  (7.83 us x FSDCLK) - 20 =683 */
    FMC_SetRefreshCount(683);
    /* 发送上述命令*/
    while (FMC_GetFlagStatus(FMC_BANK_SDRAM, FMC_FLAG_Busy) != RESET);
}

这会儿手里没代码,这是从网上复制了一段,版主是指哪个时间呢?  再给指点指点?haldelay吗?   我在systeminit函数中开启了初始化fmc    在bsp函数中 又重新初始化了fmc   




回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-8-31 09:59:56 | 显示全部楼层
eric2013 发表于 2026-8-29 14:15
SDRAM初始化配置的时候,中间不是有个延迟,你看下这个延迟正常执行没

1.png

2.png

3.png

4.png

hal_delay程序执行了,但是感觉打印不对。仿真时打印都对。
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124238
QQ
发表于 2026-9-1 11:41:31 | 显示全部楼层
zhengwending 发表于 2026-8-31 09:59
hal_delay程序执行了,但是感觉打印不对。仿真时打印都对。

这里正常后,就是时序调节了,可以降低下时钟,配置GPIO速度等级降低些试试

如果也不行,基本就是硬件有点问题了。
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-9-1 13:36:35 | 显示全部楼层
eric2013 发表于 2026-9-1 11:41
这里正常后,就是时序调节了,可以降低下时钟,配置GPIO速度等级降低些试试

如果也不行,基本就是硬件 ...

嗯  谢谢版主回复!降低了IO时钟由GPIO_SPEED_FREQ_VERY_HIGH - GPIO_SPEED_FREQ_HIGH - GPIO_SPEED_FREQ_MEDIUM,都不行;把FMC_SDRAM_CLOCK_PERIOD_2 - FMC_SDRAM_CLOCK_PERIOD_3 也不行;时序也加大了余量,也不行;但是我不加其他东西,裸机测试函数测试SDRAM的,冷启动或者热启动都没问题。我买的是含大容量256M的SDRAM的一个开发板,不太愿意相信是开发板的硬件问题。。。还有没有方向呢?
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124238
QQ
发表于 2026-9-2 10:01:49 | 显示全部楼层
zhengwending 发表于 2026-9-1 13:36
嗯  谢谢版主回复!降低了IO时钟由GPIO_SPEED_FREQ_VERY_HIGH - GPIO_SPEED_FREQ_HIGH - GPIO_SPEED_FREQ ...

如果买的开发板,开发板配套例子测试正常不,也不行的话,联系你的开发板厂家处理就行,自己折腾太耽误时间了
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-9-3 09:25:40 | 显示全部楼层
eric2013 发表于 2026-9-2 10:01
如果买的开发板,开发板配套例子测试正常不,也不行的话,联系你的开发板厂家处理就行,自己折腾太耽误时 ...

用厂家的stemwin例程SDRAM做#define POLY_X(Z)              ((int32_t)((Points + Z)->X))
#define POLY_Y(Z)              ((int32_t)((Points + Z)->Y))
#define LCD_FRAME_BUFFER       ((uint32_t)0xD0000000)   180M 也没什么问题。  另我把主频率由180 -120 - 60 也是同样的现象,,,想不出来方向或是哪的问题了。
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-9-7 14:26:38 | 显示全部楼层
eric2013 发表于 2026-9-2 10:01
如果买的开发板,开发板配套例子测试正常不,也不行的话,联系你的开发板厂家处理就行,自己折腾太耽误时 ...

           还是请求版主给看看。


回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-9-7 14:28:24 | 显示全部楼层
eric2013 发表于 2026-9-2 10:01
如果买的开发板,开发板配套例子测试正常不,也不行的话,联系你的开发板厂家处理就行,自己折腾太耽误时 ...

还是请求版主给看看,


stm32f429-tcpnet-rtx5.rar

5.71 MB, 下载次数: 4

回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
发表于 2026-9-10 01:50:25 | 显示全部楼层
我也提供一些思路,,,

1;结合栈回溯,定位到引发异常的具体代码行,根据引发异常的代码行线索去排查
     arm-none-eabi-addr2line -e  you_project_name.axf -f  "PC_Register"  "LR_Register减去1"

2;项目输出asm汇编文件,后缀添加.txt     文件体积不大的话,交给ai  studio的Gemini  3.1 pro去分析,温度设置0.8,避免ai天马行空!
     Gemini 官网和Chat GPT官网的ai不要用,放的都是降智的版本,就是那种医好都会流口水的!
     


回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124238
QQ
发表于 2026-9-10 09:46:25 | 显示全部楼层
zhengwending 发表于 2026-9-7 14:28
还是请求版主给看看,

代码看着没发现什么问题
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-9-10 13:32:55 | 显示全部楼层
eric2013 发表于 2026-9-10 09:46
代码看着没发现什么问题

嗯,,谢谢版主!仔细核对了 ,也没什么问题。。。因为就按复位键一次就行了。。所以目前是开了iwdg重启一次就OK了。。移植先这样吧。
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-9-10 13:33:21 | 显示全部楼层
magic_key 发表于 2026-9-10 01:50
我也提供一些思路,,,

1;结合栈回溯,定位到引发异常的具体代码行,根据引发异常的代码行线索去排查

嗯,,谢谢回复!仔细核对了 ,也没什么问题。。。因为就按复位键一次就行了。。所以目前是开了iwdg重启一次就OK了。
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 2026-9-11 16:40:21 来自手机 | 显示全部楼层
问题就是很奇怪   也搞不懂 为什么复位一次就行了呢?  开始以为是malloc函数有问题   原来用的xx原子的分配函数   又改成rtx5自带的   现象都一样!想不出哪的问题,是系统的问题?把rtx5改成rtthread试试。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 3 小时前 来自手机 | 显示全部楼层
疑点在这:     static_model.o (+RW +ZI)
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 3 小时前 | 显示全部楼层
hylnew 发表于 2026-10-9 10:37
疑点在这:     static_model.o (+RW +ZI)

怎么说呢?
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 3 小时前 | 显示全部楼层
hylnew 发表于 2026-10-9 10:37
疑点在这:     static_model.o (+RW +ZI)

最近也没管他,一直这样测试着别的模块
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 3 小时前 来自手机 | 显示全部楼层
冷启动时,sdram还没初始化前。有清零操作。
回复

使用道具 举报

45

主题

349

回帖

484

积分

高级会员

积分
484
 楼主| 发表于 3 小时前 | 显示全部楼层
hylnew 发表于 2026-10-9 10:38
冷启动时,sdram还没初始化前。有清零操作。

嗯,,马上测试下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-10-9 14:19 , Processed in 0.392074 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表