9G-STM32 简易BOOT及XMODEM串口IAP移植过程简介
一,准备EWARM + AN2557软件包
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 theUSART 文档和软件
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 standardperipheral 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”中的“EmbeddedWorkbench for ARM v5.40”
后点击“Generate”会根据本机的HostID产生“License number”和“License key”;
2,双击“CD-EWARM-5411-1760_mcu123.zip”运行里面的autorun.exe,在“Welcome toIAR Systems”中选择“Install IAR Embedded Workbench ”
按常规默认路径安装IAR EWARM 541软件;
3,双击“installSTLink.zip”运行“installSTLink.exe”按“NEXT”在选择默认路径C:\Manley\Drivers\STLink按“Install”安装ST-LINK的驱动,
安装完成选择“Finish”。
三,建立STM32 BOOT基本工程
1,在电脑开始菜单中打开“IAR Systems”->“IAR Embedded Workbench for ARM5.41”->“IAR Embedded Workbench”打开IAR EWARM集成开发环境,
在“IAR Embedded Workbench IDE”菜单中选择“Project”->“Create NewProject”创建一个新工程;
2,在“Create NewProject”选择“ARM”工具链,创建一个空的项目模板,到D:\works\9G-BOOT\project下面,工程和空间文件名都叫9G-BOOT,保存后后有
9G-BOOT.eww,9G-BOOT.ewd和9G-BOOT.ewp文件产生;
3,在“D:\works\9G-BOOT\”下建立文件夹“include”,“driver”,“library”,“source”,在“library”下建立“CMSIS”和“STM32”子目录,在“source”
下建立“boot”“app”子目录;
4,解压“stm32f10x_stdperiph_lib.zip”到D:\works\下,复制“D:\works\STM32F10x_StdPeriph_Lib_V3.2.0\Libraries\CMSIS\CM3\CoreSupport”下面的“core_cm3.c”和“core_cm3.h”
和“D:\works\STM32F10x_StdPeriph_Lib_V3.2.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar”下的所有文件到“D:\works\9G-BOOT\library\CMSIS”目录;
5,复制“D:\works\STM32F10x_StdPeriph_Lib_V3.2.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x”下面的源文件到“D:\works\9G-BOOT\library\CMSIS”目录,
复制“D:\works\STM32F10x_StdPeriph_Lib_V3.2.0\Libraries\STM32F10x_StdPeriph_Driver”下的“inc”和“src”文件夹到“D:\works\9G-BOOT\library\STM32”目录
6,在IDE的“Workspace”下面的“Files”的“9G-BOOT”上右击选择“Add”->“AddGroup”,在“Add Group”页面上填入文件夹名字“DRV”,同样的方式建立
“SRC”“BASE”“LIB”等子目录,并在“SRC”下面建立“APP”和“BOOT”目录;
7,在IDE的“Workspace”下面的“files”的“9G-BOOT”下的“BASE”上右击选择“Add”->“AddFiles”,在“Add Files - BASE”页面里选择“D:\works\9G-BOOT\library\CMSIS”下面的
“core_cm3.c ”,“system_stm32f10x.c”和 “startup_stm32f10x_hd.s”(针对于高密度的STM32F,其它的根据不同密度的CPU更换 );
8,在IDE的“Workspace”下面的“files”的“9G-BOOT”下的“LIB”上右击选择“Add”->“AddFiles”,在“Add Files -LIB”页面里选择“D:\works\9G-BOOT\library\STM32\src”下面的
所有C文件;
9,点击IDE的“File”->“New”->“File”建立一个新的文件,然后在文件中输入如附件“main.c”所示的内容,然后用菜单“File”->“Save”保存到“D:\works\9G-BOOT\source\boot”目录下面,
再利用以上的方式添加到IDE工程的“Workspace”下面的“files”的“9G-BOOT”下的“SRC”下的“BOOT”中;
(参考D:\works\STM32F10x_StdPeriph_Lib_V3.2.0\Project\STM32F10x_StdPeriph_Template\main.c)
10,同样建立一个新的文件,然后在文件中输入如附件“uart.c”所示的内容,然后用菜单“File”->“Save”保存到“D:\works\9G-BOOT\driver”目录下面,
再利用以上的方式添加到IDE工程的“Workspace”下面的“files”的“9G-BOOT”下的“DRV”中;
(参考D:\works\STM32F10x_StdPeriph_Lib_V3.2.0\Project\STM32F10x_StdPeriph_Examples\USART\Printf\main.c)
11,复制“D:\works\STM32F10x_StdPeriph_Lib_V3.2.0\Project\STM32F10x_StdPeriph_Template”下面的“stm32f10x_conf.h”文件到“D:\works\9G-BOOT\include”;
四,配置STM32 BOOT开发工程
1,在IDE的“Workspace”下面的“files”的“9G-BOOT”上右击选择“Options”打开“ Options fornode "9G-BOOT"”配置页面,选择“Category”中的“General Options”,在“Target”下
的“Processorvariaet”的“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$\..\library\CMSIS
$PROJ_DIR$\..\library\STM32\inc
$PROJ_DIR$\..\source\boot
在“Defined symbols:”添加以下的全局宏:
USE_STDPERIPH_DRIVER
STM32F10X_HD
VECT_TAB_FLASH
3,把D:\works\STM32F10x_StdPeriph_Lib_V3.2.0\Project\STM32F10x_StdPeriph_Template\EWARMv5下面的几个ICF文件复制到
“D:\works\9G-BOOT\project\Linker”目录下,在“ Options for node"9G-BOOT"”配置页面,选择“Category”中的“Linker” 里的“Config”的“LinkerConfiguration file” ,
选择用“Overridedefault”并选择:$PROJ_DIR$\Linker\stm32f10x_flash.icf ;
4,在“ Options for node "9G-BOOT"”配置页面,选择“Category”中的“OutputConverter”的“Output”勾选上“Generate additional output”,在“Outputformat”选择“binary”,
在“Output file”选择用“Override default”;
5,在“ Options for node"9G-BOOT"”配置页面,选择“Category”中的“Debugger”的“setup”的“Driver”选择“Third-PartyDriver”,回到配置页面,选择“Category”中
的“Third-Party Driver”下面的“IAR debuggerdriver”下面填入“C:\Manley\Drivers\STLink\STM32DriverV5.dll”;
五,添加命令行和XMODEM
1,在“D:\works\9G-BOOT\source\boot”下建立“term.c”“command.c”“xmodem.c”,并添加到在IDE的“Workspace”下面的“files”的“9G-BOOT”下面的“SRC”的“BOOT”中,
在“D:\works\9G-BOOT\include”里添加上“command.h”,把“time.c”复制到“D:\works\9G-BOOT\driver”下面并添加到项目中;
(参考自VIVI)
(待续)
联系客服