原创 STM32开发板的Bootloader在哪里?

2008-7-16 15:39 11117 15 19 分类: MCU/ 嵌入式

这几天看了万利开发板自带的源程序,发现STM32和传统的8位机很相似(可能是我刚刚接触没有深入理解),简单易懂。不过就是不知道boottloader在哪里,这与其他的ARM79有什么不同。不过ST的库文件却很齐全,只要加入库文件自己编写相应的小程序就可以下载运行了。我现在想知道STM32是否可以运行uClinux或其他系统。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


通常,Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。


我们知道不同MCU的体系结构的boot loader也不会相同,如果想让运行在一块板子上的 Boot Loader 程序也能运行在另一块板子上,通常也都需要修改 Boot Loader 的源程序。当我们自己开发时,肯定不能直接把开发板上的boot loader直接应用在自己开发的产品上的。不过ST已经给我们库文件了,大家在使用时只要自己定义相应的接口,对控制器、寄存器编程等。假如我们要用到ADC那么我们就要对GPIOADC等初始化即可。ST提供的库文件是不是就可以看成boot loader呢,请大家给予祥解。多谢了!


下面顺便介绍一下boot loader,可能对我们初学者有点用途。


大多数 Boot Loader 都分为 stage1 stage2 两大部分。依赖于 CPU 体系结构的代码,比如设备初始化代码等,通常都放在 stage1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而 stage2 则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。
1.
Boot Loader stage1 通常包括以下步骤(以执行的先后顺序)
  1. 硬件设备初始化。


此阶段完成: 屏蔽所有的中断、设置 CPU 的速度和时钟频率、RAM 初始化、 关闭 CPU 内部指令/数据 cache


2.为加载 Boot Loader stage2 准备 RAM 空间。
  3.拷贝 Boot Loader stage2 RAM 空间中。


拷贝时要确定两点:(1) stage2 的可执行映象在固态存储设备的存放起始地址和终止地址;(2) RAM 空间的起始地址。
  4
.设置好堆栈。
  5
.跳转到 stage2 C 入口点。
2.
Boot Loader stage2 通常包括以下步骤(以执行的先后顺序)
  1.初始化本阶段要使用到的硬件设备。此阶段用户可以初始化一个串口,以便和终端用户进行 I/O 输出信息;(2)初始化一个GPIO口,利用LED来检测我们的程序是否可以运行


2.检测系统内存映射(memory map)
  3.
kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。


4.为内核设置启动参数。
  5.
调用内核。



一般情况下有了这2阶段的代码,只需要你做出相应的修改就可以做开发了。

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户377235 2013-1-15 10:30

我有自己写的bootloader能引导uclinux,QQ交流461207084

用户1127088 2008-7-29 16:55

多谢anny提供群,以后多向大家学习!

用户391779 2008-7-26 09:29

问万利好了,或者可以加入我们的群里,STM32使用交流群:64047499,来问问,请在加入的时候写清你是哪位,

用户1127088 2008-7-18 15:48

没dx帮助,自己顶一个。
相关推荐阅读
用户1127088 2008-08-07 20:50
如果你的电脑没有串口你将怎么使用EK-STM32F的USART
现在好多笔记本都把一些比较庞大的接口(串口、并口等)都省掉了,那么在没有这些接口时,但是你又想使用怎么办呢。下面介绍一种USB转串口的工具供大家在调试EK-STM32F时用。<?xml:name...
用户1127088 2008-07-25 14:03
STM32学习笔记---之EK-STM32F的LCD详解
         STM32学习笔记---之EK-STM32F的LCD详解 在LCDdemo的实例中有对开发板EK-STM32F的简单介绍和使用方法,刚开始始终弄不明白这个LCD是怎么工作的,今天终于...
用户1127088 2008-07-24 16:49
STM32学习笔记-------之 ADC应用篇
STM32学习笔记—之 ADC应用篇<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />...
用户1127088 2008-07-22 15:34
STM32学习笔记----之 IAR 结合H-JTAG调试STM32
IAR 结合H-JTAG调试STM32<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />...
用户1127088 2008-07-18 15:04
STM32学习笔记 — 之GPIO端口篇
STM32学习笔记 — 之GPIO端口篇 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&...
EE直播间
更多
我要评论
4
15
关闭 站长推荐上一条 /3 下一条