STM32工程师 LINUX学习笔记3 用STM32的知识理解U-boot

本文对比了STM32和IMX6在C环境准备上的差异,着重介绍了STM32的堆栈设置、寄存器初始化、系统时钟配置和主程序跳转过程,以及IMX6由U-BOOT完成的低级初始化,涉及代码搬运步骤。两者的上电过程也做了比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32的C环境准备

stm32 startup.s文件用于准备C语言运行的环境。主要是SP指针 堆栈设置。

  • 初始化芯片的寄存器:启动文件会初始化芯片的各种寄存器,使芯片处于正确的状态,各种外设也能正常使用。
  • 设置堆和栈的初始值:堆和栈是在内存中分配给程序使用的两个区域,启动文件会设置它们的初值和大小。
  • 初始化中断向量表:中断向量表是一张存放中断处理程序地址的表,启动文件会把中断向量表复制到内存中,并把中断向量表的地址写入NVIC寄存器。
  • 配置系统时钟:启动文件会配置系统时钟,根据芯片的型号和外部晶振的频率,设置CPU时钟、总线时钟和外设时钟。
  • 跳转至主程序:在复位中断中服务程序中跳转执行C标准库main函数,以上这些完成后,跳转到主程序中的main函数执行相关函数应用。

IMX6的C环境准备

是由U-BOOT完成的。 在U-boot 启动的一系列调用中的lowlevel_init 函数内容如下:

 #include <asm-offsets.h>
15 #include <config
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值