SDRM学习:看门狗与C语言环境初始化

0 下载量 127 浏览量 更新于2024-08-29 收藏 681KB PDF 举报
"SDRM-内存学习和总结" 在嵌入式系统开发中,SDRM(System DRAM,系统动态随机存取内存)管理和初始化是至关重要的环节,它涉及到系统的稳定性和性能。本章主要总结了三个关键知识点:看门狗技术、汇编语言初始化C语言环境,以及SDRAM的引入和初始化。 首先,看门狗是一种硬件安全机制,它是一个内部定时器,类似于一个设定好时间的闹钟。当系统软件在预设时间内没有对看门狗进行“喂食”(重置计数器),看门狗会强制触发系统复位,从而避免因程序异常导致的系统挂死。关闭看门狗通常需要设置特定的寄存器,例如在本例中,设置WTCON寄存器的0xE270_0000位为0即可。 接着,我们讨论了如何从汇编语言过渡到C语言环境。在C语言运行之前,汇编语言需要设置栈,因为C语言的执行依赖于栈的存在。在ARM Cortex-A7架构中,每个处理器模式都有其独立的SP(Stack Pointer,栈指针)寄存器(r13)。这种设计可以防止程序栈溢出导致的系统崩溃。通常,在系统复位后或启动时,会处于SVC(Supervisor Call)模式,此时只需设置SVC模式下的SP,并初始化栈。三星推荐的SVC栈起始地址为0xD003_7D80,使用满减栈的方式。 接下来,我们介绍了SDRAM,即同步动态随机存取内存,它是嵌入式系统中常见的大容量内存。相对于SRAM,SDRAM成本更低,但需要初始化后才能使用。例如,K4T1G164QE是三星的一款SDRAM芯片,它的标识符K表示三星产品,4表示DRAM类型,1G表示容量,16表示单芯片16位宽,4表示4个bank。 SDRAM的初始化涉及到复杂的配置,包括地址总线、命令总线和数据总线的连接,以及相应的内存控制和配置寄存器。例如,MemControl和MemConfig寄存器用于设置内存参数,而DirectCmd寄存器则用于向DDR芯片发送配置命令。初始化过程中,需要正确配置这些寄存器以确保DDR芯片按照系统需求正常工作。 理解并掌握看门狗技术、汇编初始化C语言环境的方法以及SDRAM的引入和初始化对于嵌入式系统开发者至关重要,它们是系统可靠性和效率的基础。