新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 【32位MCU】9G-STM32 简易BOOT及XMODEM串口IAP移植过程简介

【32位MCU】9G-STM32 简易BOOT及XMODEM串口IAP移植过程简介

作者: 时间:2016-11-29 来源:网络 收藏
9G-STM32 简易BOOTXMODEM串口IAP移植过程简介

一,准备EWARM + AN2557软件包

本文引用地址://m.amcfsurvey.com/article/201611/323204.htm

1,在http://www.mcu123.com/news/Soft/embsof/arm/201001/514.html上
下载 IAR Embedded Workbench for ARM version 5.41 (2010.1.5更新) 软件
CD-EWARM-5411-1760_mcu123.zip
http://esoft.mcu123.com/MCU123_temp_20100103@/ARM/CD-EWARM-5411-1760_mcu123.zip
相关文件“IAR_EWARM5.4和谐文件.rar ”可以在GOOGLE上搜索到

2,在http://www.manley.com.cn/web/Service_down.asp?down_lei=驱动程序和技术资料&lei2=资料下载&lei3=驱动程序和技术资料
上下载 “ST-Link仿真器驱动程序(IAR EWARM V5升级版)”
installSTLink.zip
http://www.manley.com.cn/web/admin_ml32/pic/down/installSTLink.zip

3,在http://www.st.com/mcu/familiesdocs-110.html上
下载STM32F10x in-application programming using the USART 文档和软件
13588.pdf 和 an2557.zip
http://www.st.com/stonline/products/literature/an/13588.pdf
http://www.st.com/stonline/products/support/micro/files/an2557.zip

4,在http://www.st.com/mcu/familiesdocs-110.html上
下载ARM-based 32-bit MCU STM32F10xxx standard peripheral library 软件
stm32f10x_stdperiph_lib.zip
http://www.st.com/stonline/products/support/micro/files/stm32f10x_stdperiph_lib.zip

5,在GOOGLE上搜索“EK-STM3210E仿真学习开发套件用户手册”然后点击下载
下载 EK-STM3210E仿真学习开发套件用户手册
EKSTM3210E_UM.pdf 和 200892211563259629.pdf
http://www.manley.com.cn/web/down.asp?id=181
http://www.manley.com.cn/web/admin_ml32/pic/down/200892211563259629.pdf

二,建立STM32的EWARM+ST-LINK开发环境

1,双击“IAR_EWARM5.4和谐文件.rar”运行里面的“EWARM_FULL_ARM540.exe”后选择产品“Product”中的“Embedded Workbench for ARM v5.40”
后点击“Generate”会根据本机的HostID产生“License number”和“License key”;

2,双击“CD-EWARM-5411-1760_mcu123.zip”运行里面的autorun.exe,在“Welcome to IAR Systems”中选择“Install IAR Embedded Workbench ”
按常规默认路径安装IAR EWARM 541软件;

3,双击“installSTLink.zip”运行“installSTLink.exe”按“NEXT”在选择默认路径C:ManleyDriversSTLink按“Install”安装ST-LINK的驱动,
安装完成选择“Finish”。

三,建立STM32 BOOT基本工程

1,在电脑开始菜单中打开“IAR Systems”->“IAR Embedded Workbench for ARM 5.41”->“IAR Embedded Workbench”打开IAR EWARM集成开发环境,
在“IAR Embedded Workbench IDE”菜单中选择“Project”->“Create New Project”创建一个新工程;

2,在“Create New Project”选择“ARM”工具链,创建一个空的项目模板,到D:works9G-BOOTproject下面,工程和空间文件名都叫9G-BOOT,保存后后有
9G-BOOT.eww,9G-BOOT.ewd和9G-BOOT.ewp文件产生;

3,在“D:works9G-BOOT”下建立文件夹“include”,“driver”,“library”,“source”,在“library”下建立“CMSIS”和“STM32”子目录,在“source”
下建立“boot”“app”子目录;

4,解压“stm32f10x_stdperiph_lib.zip”到D:works下,复制“D:worksSTM32F10x_StdPeriph_Lib_V3.2.0LibrariesCMSISCM3CoreSupport”下面的“core_cm3.c”和“core_cm3.h”
和“D:worksSTM32F10x_StdPeriph_Lib_V3.2.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartupiar”下的所有文件到“D:works9G-BOOTlibraryCMSIS”目录;

5,复制“D:worksSTM32F10x_StdPeriph_Lib_V3.2.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x”下面的源文件到“D:works9G-BOOTlibraryCMSIS”目录,
复制“D:worksSTM32F10x_StdPeriph_Lib_V3.2.0LibrariesSTM32F10x_StdPeriph_Driver”下的“inc”和“src”文件夹到“D:works9G-BOOTlibrarySTM32”目录

6,在IDE的“Workspace”下面的“Files”的“9G-BOOT”上右击选择“Add”->“Add Group”,在“Add Group”页面上填入文件夹名字“DRV”,同样的方式建立
“SRC”“BASE”“LIB”等子目录,并在“SRC”下面建立“APP”和“BOOT”目录;

7,在IDE的“Workspace”下面的“files”的“9G-BOOT”下的“BASE”上右击选择“Add”->“Add Files”,在“Add Files - BASE”页面里选择“D:works9G-BOOTlibraryCMSIS”下面的
“core_cm3.c ”,“system_stm32f10x.c”和 “startup_stm32f10x_hd.s ”(针对于高密度的STM32F,其它的根据不同密度的CPU更换 );

8,在IDE的“Workspace”下面的“files”的“9G-BOOT”下的“LIB”上右击选择“Add”->“Add Files”,在“Add Files - LIB”页面里选择“D:works9G-BOOTlibrarySTM32src”下面的
所有C文件;

9,点击IDE的“File”->“New”->“File”建立一个新的文件,然后在文件中输入如附件“main.c”所示的内容,然后用菜单“File”->“Save”保存到“D:works9G-BOOTsourceoot”目录下面,
再利用以上的方式添加到IDE工程的“Workspace”下面的“files”的“9G-BOOT”下的“SRC”下的“BOOT”中;
(参考D:worksSTM32F10x_StdPeriph_Lib_V3.2.0ProjectSTM32F10x_StdPeriph_Templatemain.c)

10,同样建立一个新的文件,然后在文件中输入如附件“uart.c”所示的内容,然后用菜单“File”->“Save”保存到“D:works9G-BOOTdriver”目录下面,
再利用以上的方式添加到IDE工程的“Workspace”下面的“files”的“9G-BOOT”下的“DRV”中;
(参考D:worksSTM32F10x_StdPeriph_Lib_V3.2.0ProjectSTM32F10x_StdPeriph_ExamplesUSARTPrintfmain.c)

11,复制“D:worksSTM32F10x_StdPeriph_Lib_V3.2.0ProjectSTM32F10x_StdPeriph_Template”下面的“stm32f10x_conf.h”文件到“D:works9G-BOOTinclude”;

四,配置STM32 BOOT开发工程

1,在IDE的“Workspace”下面的“files”的“9G-BOOT”上右击选择“Options”打开“ Options for node "9G-BOOT"”配置页面,选择“Category”中的“General Options”,在“Target”下
的“Processor variaet”的“Device”中选择“ST”公司的“STM32F10xxE”,在“Library Configuration” 中选择库的等级用“FULL”;

2,在“ Options for node "9G-BOOT"”配置页面,选择“Category”中的“C/C++ Compiler” 里的“Preprocessor”的“Additional include directories:” 里面添加上以下头文件路径:
$PROJ_DIR$..include
$PROJ_DIR$..libraryCMSIS
$PROJ_DIR$..librarySTM32inc
$PROJ_DIR$..sourceoot
在“Defined symbols:”添加以下的全局宏:
USE_STDPERIPH_DRIVER
STM32F10X_HD
VECT_TAB_FLASH
3,把D:worksSTM32F10x_StdPeriph_Lib_V3.2.0ProjectSTM32F10x_StdPeriph_TemplateEWARMv5下面的几个ICF文件复制到
“D:works9G-BOOTprojectLinker”目录下,在“ Options for node "9G-BOOT"”配置页面,选择“Category”中的“Linker” 里的“Config”的“Linker Configuration file” ,
选择用“Override default”并选择:$PROJ_DIR$Linkerstm32f10x_flash.icf ;

4,在“ Options for node "9G-BOOT"”配置页面,选择“Category”中的“Output Converter”的“Output”勾选上“Generate additional output”,在“Output format”选择“binary”,
在“Output file”选择用“Override default”;

5,在“ Options for node "9G-BOOT"”配置页面,选择“Category”中的“Debugger”的“setup”的“Driver”选择“Third-Party Driver”,回到配置页面,选择“Category”中
的“Third-Party Driver”下面的“IAR debugger driver”下面填入“C:ManleyDriversSTLinkSTM32DriverV5.dll”;

五,添加命令行和XMODEM

1,在“D:works9G-BOOTsourceoot”下建立“term.c”“command.c”“xmodem.c”,并添加到在IDE的“Workspace”下面的“files”的“9G-BOOT”下面的“SRC”的“BOOT”中,
在“D:works9G-BOOTinclude”里添加上“command.h”,把“time.c”复制到“D:works9G-BOOTdriver”下面并添加到项目中;
(参考自VIVI)

(待续)



评论


技术专区

关闭