STM32系列MCU不同型号的移植

合集下载

mcu移植流程范文

mcu移植流程范文

mcu移植流程范文MCU(Microcontroller Unit)是一种微型计算机系统,包含了CPU、存储器、输入输出接口和定时器等部件,广泛应用于各种嵌入式系统中。

MCU移植指的是将相同或不同架构的MCU芯片上的软件移植到另一种MCU芯片上的过程,以便在新的硬件平台上运行软件。

这篇文章将详细介绍MCU移植的流程。

1.硬件平台选型:首先需要选择目标MCU芯片,确保该芯片具备满足项目需求的功能特性。

考虑芯片的处理能力、存储容量、外设接口、功耗等因素。

同时,要注意MCU是否支持所需的移植操作系统或开发环境。

2.准备开发环境:根据目标MCU芯片的选择,安装相应的集成开发环境(IDE)和编译器。

这些开发工具通常由MCU芯片厂商提供,用于编写、编译和调试软件。

3.移植操作系统:如果移植的软件涉及到操作系统,需要进行操作系统的移植。

首先,要了解目标MCU芯片支持的操作系统类型,比如RTOS(实时操作系统)或者Linux,然后将操作系统的源代码和配置文件导入到开发环境中,并进行编译和调试。

4.移植设备驱动程序:设备驱动程序是控制外围设备的软件模块,如串口、GPIO、ADC等。

将原有设备驱动程序的源代码导入到开发环境中,并进行适配和调试,确保其与目标MCU芯片的硬件接口兼容。

5.移植应用程序:将原有应用程序的源代码导入到开发环境中,并进行编译和调试。

由于不同MCU芯片的指令集、存储器布局等可能有所差异,需根据目标MCU 的特性进行相应的修改和优化。

6.端口移植:一些软件可能依赖于特定的硬件平台或外部库,需要进行端口移植。

比如,涉及具体的硬件操作的代码或与外部库的接口等,需根据目标MCU 的硬件平台特点进行修改。

7.调试和测试:完成移植后,需要进行软件的调试和测试,确保软件在目标MCU芯片上能够正常工作。

可以使用调试工具和仿真器对程序进行单步执行和观察内部状态,以及通过外设接口验证软件功能。

8.性能优化:在软件运行过程中,可能会出现性能瓶颈或资源浪费的问题。

STM8S 和 STM32 MCU 一致的 8-32 位产品线实现轻松移植

STM8S 和 STM32 MCU 一致的 8-32 位产品线实现轻松移植

3.1 复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
● 寄存器大小:8 位与 16 或 32 位
图 1 给出了数字外设的简化表示。
图 1.
数字外设的内部结构
ഄഔ੠᭄᥂ᘏ㒓 $0%$670
ᘏ㒓᥹ষ ੠ᆘᄬ఼
,3‫ݙ‬Ḍ
,2
DL
外设可分成两个主要部分。首先,内核包含状态机、计数器以及任意种类的组合逻辑或顺序 逻辑,它们是执行不需要处理器的任务(如低级通信层、模拟后端管理或时序驱动的功能) 时所必需的。如有必要,可通过 MCU 端口将内核与外界连接。外部连接可能包含一些 I/O 或复杂总线。其次,应用程序通过与内部总线连接的寄存器来初始化和控制外设,该内部总 线与其它 MCU 资源共用。在 8 位微控制器中,处理器直接写入和读取寄存器,而在 32 位 产品中,寄存器读写操作通常通过总线桥来完成。然而,两个系列的主要区别在于外设必须 遵循的内部总线规范。这解释了 STM8S 和 STM32 器件能够共用外设的原因:它们基于相 同的内核,而且仅针对两种不同的总线接口定制。ARM 处理器和外设符合 AMBA 总线规 范,采用 32 位数据总线,而 STM8S 器件使用更为简单但有效的 8 位总线标准。从功能角 度看,它们仅在以下方面存在差异:
2

Huawei_LiteOS在STM32系列处理器上的移植-Huawei_LiteOS_workshop

Huawei_LiteOS在STM32系列处理器上的移植-Huawei_LiteOS_workshop
Security Level:
Huawei LiteOS 在STM32系列处理器上的移植

HUAWEI TECHNOLOGIES CO., LTD.
提纲
Huawei LiteOS支 持的移植 平台简介
Kernel源 码获取途 径
源代码框 架及介绍
移植环境 准备
移植过程 讲解
函数最后加上 ALIGN ;对齐伪指定 AREA KERNEL, CODE, READONLY THUMB

修改TaskSwitch函数,最后添加
NOP ALIGN
END
HUAWEI TECHNOLOGIES CO., LTD. Huawei Confidential 16
步骤三

根据芯片类型适配硬件资源
HUAWEI TECHNOLOGIES CO., LTD.
Huawei Confidential
17
步骤三

根据芯片类型适配硬件资源
二:修改los_hwi.c和对应的头文件,配置中断
根据STM32启动文件修改PendSV_Handler异常向量和SysTick_Handler向 量的名称
Huawei LiteOS源码中,他们分别叫osPendSV、osTickHandler。
36000000 15 0x00008000 SIZE(0x2D0) // default stack 16
#define LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE
添加用户任务入口函数

extern UINT32 osAppInit(VOID);

该函数需要用户去实现,用户创建的系统任务都在该函数中注册,该函数会被

STM32F10x系列移植到GD32E103系列1.0

STM32F10x系列移植到GD32E103系列1.0
GD32E103 较 STM32F10x 具有以下优点:
1 更高的主频(120MHz VS 72MHz)
2 更高版本的内核(Cortex M4 VS M3)
3 更低的功耗(Run Mode:28.6mA@120MHz VS 50mA@72MHz; Sleep Mode:20.8mA@120MHz VS 30mA@72MHz )
CAN1_RX Default: PB13 Alternate:SPI1_SCK,I2S1_CK, USART2_CTS,TIMER0_CH0_ON, CAN1_TX,I2C1_TXFRAME Default: PB14 Alternate:SPI1_MISO,USART2_RTS, TIMER0_CH1_ON,TIMER11_CH0 Default: PB15 Alternate:SPI1_MOSI,I2S1_SD, TIMER0_CH2_ON,TIMER11_CH11 Default: PD15 Alternate:EXMC_D1 Remap: TIMER3_CH3,CTC_SYNC
Alternate: TRACED2,EXMC_A21 Remap: TIMER8_CH0 Default: PE6
Alternate: TRACED3,EXMC_A22 Remap: TIMER8_CH1
2
引脚号 PA2
STM32F10x 系列引脚定义
Default: PA2 Alternate:USART2_TX,TIM5_CH3,
4.1 时钟移植 ........................................................................................................................................................ 6 4.2 Flash 操作相关软件移植 .............................................................................................................................. 7 5. 外设差异性............................................................................................................................................................. 11 5.1 模数转换器 ADC......................................................................................................................................... 11 5.2 通用同步异步收发器 USART.................................................................................................................... 12 5.3 内部集成电路总线接口 I²C ....................................................................................................................... 12 5.4 串行外设接口/片上音频接口 SPI/I²S ....................................................................................................... 12 5.5 通用串行总线全速设备接口 USBFS ........................................................................................................ 12 6. 附录:..................................................................................................................................................................... 13

stm32f103移植到GD32修改内容及注意事项

stm32f103移植到GD32修改内容及注意事项

stm32f103移植到GD32修改内容及注意事项在国内芯片紧张的情况下,目前如果项目没有成型可以安装官方提供的GD32的pack,选择相关的pack即可正常编程。

若程序已经成型,需要移植,首先就要考虑芯片类型(stm32系列)的选择。

选择过程中首先要根据已用stm32单片机的封装和引脚定义去对应相关的gd32芯片类型。

这里我选用的是GD32f305芯片替换stm32f103rc,所作设置如下:1.点击魔术棒选择stm32f103芯片2.根据晶振设置晶振,这里设置72MHz3.根据芯片flash大小设置STM32F10X_LD、STM32F10X_MD、STM32F10X_HD,不知道的可以查手册,实在不行就一个一个去试。

4.Debug中设置,如果用的是jlink仿真器就选择jlink仿真器,其他的就选用其他的,这里选择SW方式。

另外注意:如果右边框读取不到单片机信息,或者下载不了程序可以把速度降低一些,设置10k或者5k基本可以解决!Device芯片选型C++内容设置Debug内容设置1.软件移植注意事项1.1系统方面的注意事项stm32移植到GD32上芯片选择上的问题:1.1.1 HSE相关内容修改在V3.x的库,启动时间宏定义在xxx32f10x.h头文件中;在V3.0以前的库,其启动时间宏定义在xxx32f10x.h中(HSEStartUp_Ti meOut);修改前:#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*!< Time out for HSE start up */修改后:#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF) /*!< Time out for HSE start up */这里我使用的库是stm32f10x.h里面,位置如图所示。

修改原因:GD和STM32的晶振部分电路设计有一定的差异,两者对外部高速晶振的参数要求也不一样,修改HSE_STARTUP_TIMEOUT宏定义可以保证晶振正常起振。

STM32 系列MCU 不同型号的移植步骤解析

STM32 系列MCU 不同型号的移植步骤解析
STM32系列MCU不同型号的移植步骤解析
STM32系列MCU不同型号的移植!
第一步
更换启动件:
第二步
修改宏定义:
图1
或者修改stm32f10x.h
具体修改如下:
图2
第三步
修改系统主频率:
文件:system_stm32f10x.c
具体修改如下:
图3
第四步
修改外部晶振源:
文件:stm32f10x.h
其中,Project.bin和Project.axf要和Output选项卡中的Nameof
Executable的名字相同
三、如何使用IAP
1、设置超级终端波特率选择为115200
2、需要下载时将Tamper键按住再按下复位键超级终端打印出帮助信息
3、选择下发文件,协议选择Y_modem,选择下发。
延时修改
使用J-Link调试设置
图7
J-Link不能正常连接目标板
可以尝试一下方法(恢复出厂设置)
具体修改如下:
图4
第五步
定时器需要根据以上修改的系统主频率进行对应的修改。
其他:
修改Flash地址
文件:misc.h
具体修改如下:
图5
与以下配置一致:
IAP设置步骤
一、IAP工程设置
1、修改main中的按键触发键
2、修改下载串口
二、下载工程设置
1、修改程序入口地址
查找NVIC_VectTab_FLASH将其修改为:0x08002000
2、修改options
1)打开Target选项卡在IROM1中将Start和Size分别修改为
0x08002000和0x3E00
2)打开User选项卡在RunUserProgramsBeforeBuild/Rebuild中,勾选

基于STM32F103的RTthread系统移植

基于STM32F103的RTthread系统移植
创建工程时cpu选择stm32f103zecc编译设置标签页中因为在项目中使用了st的stm32固件库需要在define中添加如下两个定义
RTthread操作系统的移植
一、移植说明
移植平台:STM32F103ZE 移植工具:KEIL (第五版) 二、源码下载 从官网https:///index.html即可下载
• 在(include Paths)头文件搜索路径中添加上ST固件库 中需要的目录: • bsp\stm32f10x\libraries\STM32F10X_StdPERIIPH\inc • bsp\stm32f10x\libraries\CMSIS\CM3\CoreSupport • bsp\stm32f10x\libraries\CMSIS\CM3\DeviceSupport\ST \STM32F10x • \include • \libcpu\arm\cortex-m3 bsp\stm32f10x\driver
• • • • • • • • • • •
#define RT_USING_MAILBOX #define RT_USING_MESSAGEQUEUE #define RT_USING_MEMPOOL #define RT_USING_HEAP #define RT_USING_SMALL_MEM #define RT_USING_DEVICE #define RT_USING_UART1 #define RT_USING_CONSOLE #define RT_CONSOLE_DEVICE_NAME #define RT_CONSOL4;uart1"
128
• 将rtconfig.h的所在文件夹加入工程设置中的头文件搜索目 录里 • 在startup.c中添加如下: • int rt_application_init() • { • return 0; • } • void rt_hw_usart_init() • { • }

基于STM32单片机的uCOS-II操作系统移植

基于STM32单片机的uCOS-II操作系统移植

第6期2020年12月机电元件ELECTROMECHANICALCOMPONENTSVol 40No 6Dec 2020收稿日期:2020-10-20基于STM32单片机的uC/OS-II操作系统移植张中前(贵州航天电器股份有限公司,贵州贵阳,550009) 摘要:网络技术和信息技术的发展,嵌入式系统应用越来越普及,嵌入式设备的应用也越来越多。

uC/OS-II广泛应用于路由器、飞行器及工业控制等。

uC/OS-II操作系统执行效率高,占用存储空间少,具有实时性及可扩展性等优点,在小型嵌入式设备中具有广泛应用。

本文介绍了基于ARMCORTEXM3系列单片机上的uC/OS-II移植,对电子控制组件的设计具有参考作用。

关键词:实时操作系统;uC/OS-II;内存管理;任务管理;STM32;移植Doi:10.3969/j.issn.1000-6133.2020.06.015中图分类号:TN784 文献标识码:A 文章编号:1000-6133(2020)06-0057-051 引言操作系统是裸机的第一层软件,操作系统直接运行在硬件上,上层软件通过提供应用程序接口(API函数),实现对底层硬件的访问,同时,通过操作系统实现对多个上层应用软件(任务)管理,实现对硬件CPU管理、存储管理、I/O接口管理及文件管理,如图1所示。

图1 操作系统功能组成示意图 STM32系列单片机以其优良的价格,大容量的FLASH及RAM存储空间,极易用于较为复杂的控制系统;在STM32单片机上进行uC/OS-II实时操作系统的移植,提高了产品的设计灵活性,实现较为复杂的系统功能;通过将开源的uC/OS-II移植在STM32单片机上,以其较为低廉的硬件成本获得较高的使用性能,具有良好的应用前景。

2 uC/OS-II操作系统2.1 uC/OS-II操作系统的基本特征uC/OS-II是一个完整的、可移植、可固化、可剪裁的基于优先级调度的抢占式实时多任务操作系统;它能够在外界事件或数据产生时,能够接收图2 uC/OS-II文件结构示意图并以足够快的速度响应,其处理的结果又能够在规定的时间内输出,并控制所有实时任务协调、一致运行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中填入 D:\Keil\ARM\BIN40\fromelf.exe --bin -o ./obj/Project.bin ./obj/Project.axf 其中,Project.bin 和 Project.axf 要和 Output 选项卡中的 Name of Executable 的名字
相同
三、 如何使用 IAP 1、 设置超级终端 波特率选择为 115200 2、 需要下载时将 Tamper 键按住 再按下复位键 超级终端打印出帮助信息 3、 选择下发文件,协议选择 Y_modem,选择下发。
延时修改
void _delay_ms(u16 delayTime) {
g_delayTimeOut = 0; //TIM2->ARR = delayTime*2; TIM2->ARR = delayTime;
TIM_Cmd(TIM2, ENABLE); while(!g_delayTimeOut) { } TIM_Cmd(TIM2, DISABLE); }
文件:misc.h 具体修改如下:
图5 与以下配置一致:
图6
IAP 设置步骤
一、 IAP 工程设置 1、修改 main 中的按键触发键 2、修改下载串口 二、 下载工程设置 1、修改程序入口地址
查找 NVIC_VectTab_FLASH
将其修改为:0x08002000
2、修改 options 1) 打开 Target 选项卡 在 IROM1 中将 Start 和 Size 分别修改为 0x08002000 和 0x3E00 2) 打开 User 选项卡 在 Run User Programs Before Build/Rebuild 中,勾选 Run#1,并在
第二步
修改宏定义:
图1 或者修改 stm32f10x.h 具体修改如下:
图2
第三步
修改系统主频率: 文件:system_stm32f10x.c 具体修改如下:
图3
第四步
修改外部晶振源: 文件:stm32f10x.h 具体修改如下:
图4
第五步
定时器需要根据以上修改的系统主频率进行对应的修改。
其他: 修改 Fla 36Mhz, 101
使用 J-Link 调试设置
图7
J-Link 不能正常连接目标板
可以尝试一下方法(恢复出厂设置): 图8
STM32 系列 MCU 不同型号的移植
第一步
更换启动文件:
startup_stm32f10x_cl.s startup_stm32f10x_hd.s
startup_stm32f10x_ld.s startup_stm32f10x_md.s startup_stm32f10x_xl.s
互联型的 MCU,例如 STM32F107 大 容 量 Flash : 256K~512K , 例 如 STM32F101RC 小容量 Flash:64K 中容量 Flash:128K
相关文档
最新文档