最近忙着出差也没写什么文档,先把前段时间做的一个简单的RTEMS适配过程文档发上来供大家参考。
1、文档概述
本文档主要为描述基于正点原子的阿波罗STM32F429开发板,开展RTEMS适配的过程,以及过程中常见工具的使用方法,过程中遇到的问题及解决问题的方法。以下内容有部分(很多截图)是直接复制《STM32F429开发指南》、《ARM Cortex-M3与Cortex-M4权威指南》等文档。
2、开发板介绍
本章主要描述正点原子的阿波罗STM32F429开发板的基本硬件资源以及基本的使用调试方法。
2.1 硬件资源
关于开发板硬件资源具体可以参考《STM32F429开发指南》,这里放两张截图,分别为开发板核心资源及开发板外部接口。
2.1.1 核心板资源
图 1 STM32F429核心板资源
首先根据图 1可以看到,开发板上提供的核心资源是很多的,但想用起来这些外部资源还需要经过一系列的初始化,比如SPI RAM的使用可以参考《STM32F429开发指南 ——SDRAM 实验》。我们最关注除了CORTEX-M4核之外就是存储资源了,目前我们核心需要知道的是CPU内部存储资源及地址空间映射情况如图 2(图片来自《STM32F429xx CPU手册》p86):
图 2 CPU内存空间映射
图 3 STM32F42x和 STM32F43x FLASH资源
根据图 2、图 3可以知道CPU内部可用的存储空间主要有:
地址段 |
大小 |
类型 |
描述 |
|
1 | 0x8000000-0x81FFFFF |
2MB |
FLASH |
大小根据处理器型号不同,其中STM32F42x和STM32F43x的FLASH资源如图 3(来自《STM32F4XX中文参考手册》P60),也就是有两组1MB的空间,我们通常只配置其中的1MB。 |
2 | 0x1000 0000-0x1000FFFF |
64KB |
SRAM |
只能供CPU通过数据总线访问 |
3 | 0x2000 0000-0x2001BFFF |
112KB |
SRAM |
可供所有AHB主控总线访问,AHB主总线支持并发SRAM访问。即可以在CPU对112KB或64KB访问时,以太网MAC同时对16KB SRAM进行读写(也就是可以用于外设DMA读写?)(《STM32F4XX中文参考手册》P55) |
4 | 0x2001 C000-0x2001FFFF |
16KB |
SRAM |
|
5 | 0x2002 0000-0x2002 FFFF |
64KB |
SRAM |
下面我们可以再看一下正点原子提供的示例工程中关于存储空间的配置(keil开发环境,project options for target ‘xx’)如图 4,因此后续使用RTEMS时,链接脚本中相关地址信息可以参考该配置。
图 4 示例工程配置
2.1.2 底板资源
下图所示为STM32F429开发板的底板资源,接口众多还有很多跳帽用来短接各种线,适配初期我们需要使用的主要是“USB转串口”(接了USB_232后如果不使用LCD屏,可以不接电源输入,由USB口供电)、“JTAG/SWD接口”,当然几个按钮和蜂鸣器也可以在测试中使用。
关于跳帽,目前我们主要需要了解的是“USB串口/串口1”跳帽,该接口用于将PA9、PA10(串口1的管脚)同USB串口的RXD、TXD短接,这样在系统启动后可以通过USB串口输出串口1的信息(参考《STM32F429开发指南》 1.2.1-6)。
图 5 底板资源