STM32入门 - 利用ST提供的USB例程实现USB IAP功能
更新时间:2023-09-13 13:21:01 阅读量: 教学研究 文档下载
- stm32入门用什么板子推荐度:
- 相关推荐
[STM32入门]---利用ST提供的USB例程实现USB IAP功能
我们知道ST推出的Cortex-M3平台STM32内部有两个Flash区域,一是System Flash,ST官方保留的一个区域,用于存放IAP代码。该区域不对用户开放,仅提供UART的通讯接口用于IAP升级;另一个区域是User Flash,这一部分是供用户自由使用的。STM32自带USB 2.0 Device接口,如果需要通过USB接口来实现IAP功能需要如何做呢?这里介绍如何利用ST STM32xx USB Development Kit提供的DFU代码来实现上述功能。我用STM3210EVB来演示这
个功能。
阅读前请下下载下列代码压缩包和应用软件: 1、STM3210B-EVAL demonstration software v1.1.zip
STM3210B-EVAL demonstration software v1.1..zip(文件大小:2.15M)
ST官方的下载路径:
http://www.st.com/stonline/products/support/micro/files/um0435.zip
2、STM32F10xxx USB developer kit v1.0.zip
STM32F10xxx USB developer kit v1.0.zip (文件大小:461K)
ST官方的下载路径:
http://www.st.com/stonline/products/support/micro/files/um0424.zip
3、DfuSe USB Device Firmware Upgrade v2.2.zip
DfuSe USB Device Firmware Upgrade v2.2.zip (文件大小:7.85M)
ST官方的下载路径:
http://www.st.com/stonline/products/support/micro/files/um0412.zip
上述文档对于的用户参考手册,请自行到ST MCU网站下载。 http://www.st.com/mcu/familiesdocs-110.html#Application Note
下列步骤将介绍如何通过ST官方的USB升级代码实现程序的下载更新的功
能(IAP)。
1、打开STM3210B-EVAL demonstration software压缩包,在STM3210B-EVAL demonstration software\\Demo\\source下打开main.c文件,找到void Interr
uptConfig(void) 函数
/* Set the Vector Table base address at 0x08000000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00);
这里我们需要修改代码的中断矢量起始地址,这样做的目的是为了处理IAP代码在Flash存放的区域与Application Code部分的存放空间不会发生地址冲突。这里我们假设IAP存放在User Flash的0x08000000~0x08003FFF区域,Application code存放在User Flash的0x08004000~0x0801FFFF区域。因为Application code的开始地址是由0x08004000开始,这样我们需要为应用代码
的中断向量地址做一个重映射。因此我们修改该代码为:
/* Set the Vector Table base address at 0x08004000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x4000);
请注意这里NVIC_SetVectorTable函数的型参送入的是相对偏移地址,而不
是绝对地址;
2、在STM3210B-EVAL demonstration software\\Demo\\project\\EWARM下找到lnkarm_flash.xcl文件,在XCL文件中找到下面的配置,该配置用于定制应用代
码在Flash区域的存放空间和代码运行是RAM可以提供的空间。
// Code memory in FLASH -DROMSTART=0x8000000 -DROMEND=0x803FFFF
// Data in RAM
-DRAMSTART=0x20000000
-DRAMEND=0x20004FFF
由于我们的目标应用代码将是在0x08004000区域运行,因此我们修改为:
// Code memory in FLASH -DROMSTART=0x8004000 -DROMEND=0x801FFFF
// Data in RAM
-DRAMSTART=0x20000000 -DRAMEND=0x20004FFF
在编译的时候请确保Project->Options->Linker->Config标签下的链接命
令文件选择的是上述lnkarm_flash.xcl文件;
3、应用部分改好,现在我们修改USB固件升级部分的代码,打开STM32F10x
xx USB developer kit开发包。
4、在开发包下面找到 \\STM32F10xUSBLib\\USBLib\\demos\\Device_Firmware_Upgrade例程,该例程是一个在STM32F10xx系列MCU上实现运行在User Flash区域的IAP自升级代码,通过STM32自身提供的USB接口实现。在\\STM32F10xUSBLib\\USBLib\\demos\\Device_Firmware_Upgrade\\source路径下找到
main.c文件,在56行:
if (DFU_Button_Read() != 0x00)
{ /* Test if user code is programmed starting from address 0x8003000 */
if (((*(vu32*)0x8003000) & 0x2FFF0000 ) == 0x20000000)
{ /* Jump to user application */
JumpAddress = *(vu32*) (ApplicationAddress + 4); Jump_To_Application = (pFunction) JumpAddress; /* Initialize user application's Stack Pointer */ __MSR_MSP(*(vu32*) ApplicationAddress);
Jump_To_Application();
}
} /* Otherwise enters DFU mode to allow user to program his application */
这段代码的功能是对应用部分的代码开始地址做判断,这里的地址与我们之
前的步骤1、2都是对应的。
同样这个代码做如下更改:
/* Test if user code is programmed starting from address 0x8004000 */
if (((*(vu32*)0x8004000) & 0x2FFF0000 ) == 0x20000000)
5、hw_config.h中定义:
#define ApplicationAddress 0x08003000
改为
#define ApplicationAddress 0x08004000
编译代码,下载到STM3210 Evaluation Board。
6、在ST的网站中找到USB IAP的PC端用于程序DfuSe USB Device Firmwa
re Upgrade,安装后执行DfuSe Demonstration程序。
正在阅读:
STM32入门 - 利用ST提供的USB例程实现USB IAP功能09-13
平板波导理论09-21
HPLC法测定头孢特仑酯片中主药的含量05-26
软件系统分析与设计总实验05-12
闭环电码化讲义 - 图文04-14
美丽的格桑花作文400字07-04
2011届高考复习最新6年高考4年模拟分类汇编:专题二十一+05-18
绿地世纪城22#楼施工组织设计11-03
- 公务员上岸同学告诉你,怎样走出面试中常见的十大误区
- 作表率,我们怎么办(办公室主任)
- 乘务员安全责任书
- 增员面试流程
- 河南省焦作市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 最新4社区工作者面试题
- 个人简历表
- 男教工体检必检项目
- 河南省兰考县规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 兼职译员测试稿
- 河南省开封市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 永州职业技术学院校园总体规划-永州职业学院
- 最新5、培训科长笔试题(答案)
- 2019雅商酒店境外人员登记培训稀有资料,不可错过
- 小学教师求职简历范文
- 红酒知识与礼仪
- 春节给领导拜年的短信拜年词
- 2019年上半年中小学教师资格证结构化面试真题1
- 20XX年县干部培训工作目标
- 硬笔试听课
- USB
- 入门
- 利用
- 实现
- 功能
- 提供
- STM32
- IAP
- 宏观经济学复习提纲
- (初中记叙文)我的篮球梦
- 现代教育技术试题及答案
- 中铁大桥局三公司大型机械设备操作规程
- 2016-2021年浑天仪模型行业深度调查及发展前景研究报告
- 藏密中脉修法
- 六年级下册34单元测试题 - 图文
- 责任关怀复习题
- 2013年进口奶粉热卖排行榜10强
- 大学生心理健康论文
- 大疱类性天疱疮
- 太阳能路灯安装调试工程施工方案
- 城市地下管线工程档案的形成与整理归档1-3 - 图文
- 吾行吾道(道德经读后感)
- 首届全国中教杯全国“中教杯”中小学生创新作文大赛获奖名单
- 创建优质服务窗口先进事迹材料
- 抚松县第四小学网站介绍
- 气体的等温变化玻意耳定律典型例题
- 账务处理-牧业养殖担保合作社协调
- 雷克萨斯NX 竞品应对参考话术 - 图文