STM32f030 boot iap升级时keil配置注意事项

发布者:清新自然最新更新时间:2018-07-10 来源: eefocus关键字:STM32f030  boot  iap  升级  keil配置  注意事项 手机看文章 扫描二维码
随时随地手机看文章

最近使用了一款Cortex-M0内核的芯片STM32F030CC,发现它中断向量表的重映射方法与STM32F10x系列的有所区别,在这里记录与分享一下。

由于需要通过IAP进行固件升级,所以芯片的FLASH里面要烧录两份代码:一个Boot loader, 一个用户应用程序。理所当然的,在用户应用程序中,必须得重新映射中断向量表。

可是在ST提供的固件库里,我却没有发现类似于stm32f10x固件库中的voidNVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset)接口。

     浏览了一下Cortex-M0的Programmingmanual,原来M0并没有SCB->VTOR这个寄存器,难怪ST的库里没有提供NVIC_SetVectorTable这个接口。

     这下要怎么办?在网络上搜索了一下,受到网友findaway123这篇文章的启发,我在STM32F030CC的Reference manual中找到以下说明:

     Physicalremap

  Once the boot mode is selected, the application software canmodify the memory accessible in the code area.This modification isperformed by programming the MEM_MODE bits in the SYSCFGconfiguration register 1 (SYSCFG_CFGR1). Unlike Cortex? M3 and M4,the M0 CPU does not support the vector table relocation. Forapplication code which is located in a different address than0x0800 0000, some additional code must be added in order to be ableto serve the application interrupts. A solution will be to relocateby software the vector table to the internal SRAM:

  ? Copy the vector table from the Flash (mapped at the base of theapplication load address) to the base address of the SRAM at 0x20000000.

  ? Remap SRAM at address 0x0000 0000, using SYSCFG configurationregister 1.

  ? Then once an interrupt occurs, the Cortex?-M0 processor willfetch the interrupt handler start address from the relocated vectortable in SRAM, then it will jump to execute the interrupt handlerlocated in the Flash.

  This operation should be done at the initialization phase of theapplication. Please refer to AN4065 and attached IAP codefrom www.st.com for more details.

  OK,解决方法找到了!


在用户应用程序中,按照以上方法,添加以下两行代码:

memcpy((void*)0x20000000, (void*)0x08004000, VECTOR_SIZE); 

SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM);

   有些地方会多一行代码

memcpy((uint32_t*)0x20000000, (uint32_t*)0x08004000, VECTOR_SIZE); 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM); 


而之后的两个参数需要根据实际情况作出修改。0x08004000是应用程序的起址地址,从这里开始的VECTOR_SIZE字节,存放是的应用程序的中断向量表。VECTOR_SIZE是指中断向量表的大小,具体多大可以在startup.s文件里计算得到。以下以startup_stm32f030.s为例作说明:



  我们只需关注其中的一小部分。从29行开始,直到75行,每一个DCD都代表一个中断向量(所谓中断向量,说得明白点,其实就是某个中断服务程序的入口地址)。例如第74行的:

  DCD     USART1_IRQHandler              ; USART1

  这里的“USART1_IRQHandler"其实就是UART1中断服务程序USART1_IRQHandler这个函数,同时,它也代表这个函数的入口地址。

  以上代码即定义了这样一张表,这张表包括45个元素,每个元素是一个长度为4字节的地址。除了第一个地址是SP(堆栈指针)外,其它的地址都是某个中断服务程序的入口地址。

  那么,回到我们要解决的问题上来,之前memcpy函数中的第三个参数VECTOR_SIZE,针对本例,就应该是45*4=180(0xB4)个字节。


  在执行完以上两行代码后,若发生中断,CPU就会去SRAM(即0x2000 0000处)取中断向量了,所以,以0x20000000作为起始地址之后的VECTOR_SIZE个字节就不能被改动了。为了达到这VECTOR_SIZE个字节不被修改的目的,如下两种方法可以实现。

  在工程文件内修改SRAM的起始地址及长度,如下图

  

  如果使用了分散加载文件,则在分散加载文件中修改SRAM的起始地址及长度也能达到目的。


  至此,STM32F0系列Cortex-M0内核芯片中断向量表重映射的问题已解决。



关键字:STM32f030  boot  iap  升级  keil配置  注意事项 引用地址:STM32f030 boot iap升级时keil配置注意事项

上一篇:STM32 BootLoader跳转APP,中断特殊处理
下一篇:STM32F030C6外部中断的配置(按键触发)

推荐阅读最新更新时间:2024-03-16 16:08

MA技术速率升级9.3Mbps 难成3G主流
在3月27日~29日召开的2007年美国无线通信展(CTIA Wireless 2007)上,美国高通公司推出手机用MSM7850芯片组,该产品首次支持CDMA2000 1xEV-DO Rev.B标准,5MHz频宽下行速度9.3Mbps,上行5Mbps。   尽管按照3G的定义CDMA2000 1x就是3G的初级阶段,也就是中国联通现网,但业界一般认为真正CDMA系的3G是EV-DO Rev.A。此前的A版本的EV-DO技术已经为一些运营商采用,下载速度为3.1Mbps,上行1.8Mbps。    CDMA未成3G主流   高通目前是全球最主要的CDMA芯片提供商,自身并没有芯片工厂,公司掌握大量3G及B3G核心技术专利,
[焦点新闻]
戴口罩人脸识别技术火热 苹果计划收购公司升级Face ID
突如其来的疫情,对手机的生物加密方式也有了一定的改变,而苹果的Face ID在这场疫情中显得非常尴尬。 当然了,疫情下戴口罩成为了人们的日常操作,这也倒逼了戴口罩人脸识别技术升级。 据外媒报道称,以色列公司Corsight AI已开发出在佩戴口罩和护目镜等情况实现人脸识别的技术。该公司从专注情报和安全技术的加拿大基金Awz Ventures获得了500万美元投资。今年3月,中国的汉王科技也宣布开发出了戴口罩人脸识别技术。 Corsight表示,这笔融资将用于产品的市场营销和后续开发。该公司表示,已经在欧洲的机场和医院、亚洲的城市、南美洲的警察局和边境口岸,以及非洲的矿山和银行部署了永久性系统。 此外,还有外媒报道称,苹果也正在
[手机便携]
选用液晶拼接屏的几点关键注意事项
液晶拼接屏质量的技术指标,关系着整个安防系统的质量和技术指标,所以液晶拼接屏的选用非常重量。很多客户选择价格低,这样是很没有质量保证的,液晶拼接屏是一套系统,而不是一个显示器。   选用液晶拼接屏的原则如下:   (1)一定要选用已通过国家法定的质量监督检验部门及有关管理部门认证并允许生产和销售的产品,其产品质量与技术应符合国家有关规范和标准的要求。   (2)液晶拼接屏的实际技术指标应与其产品说明书给出相一致,说明书上给出的技术指标应较为详细和具体。   (3)所选液晶拼接屏的技术指标,通常应高于整个系统的技术指标。   (4)对于液晶拼接屏幕的尺寸的要求,选择是:当然是尺寸越大的就越好,现在55寸液晶拼接屏拼接缝
[模拟电子]
选用液晶拼接屏的几点关键<font color='red'>注意事项</font>
差压变送器在油库液位测量的注意事项
差压变送器在油库液位测量的注意事项如下: 1、在油罐的罐体水平截面不等的情况下(如上小下大),要考虑补偿措施。如二次表选用WP-H80系列液位-容量控制仪。 2、二次表尽量采用智能表,可方便改变量程,实现温度补偿等。 3、差压变送器 在设计和安装时应考虑油罐底部的取压开孔尽可能放低,以消除温度变化而造成的误差,必要时引入温度补偿。 4、为达到一定精度,如油罐顶部装有呼吸阀时,必须采用差压变送器而不能采用压力变送器。对敞口油罐或精度要求不高时,可直接采用压力变送器以方便安装。 5、安装时差压变送器的负压室要安装集水器,并要经常排污,以免积水影响准确度。
[测试测量]
特斯拉Model S升级了!百公里加速仅2.8秒
特斯拉宣布了对Model S的多项升级,包括将提供容量更大的电池,以及支持名为“Ludicrous”的快速加速模式等。 在“Ludicrous”模式中,Model S的时速0到60英里(96公里)加速时间仅为2.8秒。此外,Model S即将推出的SUV车型Model X也将支持这种快速加速模式。特斯拉CEO伊隆·马斯克(Elon Musk)估计,Model X的这一加速时间为3.3秒。    马斯克在一篇博文中介绍了特斯拉这一快速加速技术的实现方式。如果希望获得这一新功能,那么新车的购买者需要多花1万美元。而当前Model S P85D的用户可以在未来6个月中花5000美元进行升级。    特斯拉此次还发布了价格
[嵌入式]
助力智能制造业转型升级:PushPull V4推拉式连接器问市
近年来随着智能制造迅猛的发展,工业机器人在制造业中逐渐占据重要位置。可以预见,工业机器人或其他自动化设备将成为未来发展趋势,对工业机器人的需求量也将持续增加。 那么“指挥”工业机器人按部就班工作的“神经网络”是什么呢?这就是将工业机器人的本体、控制系统、执行器这些常见部件稳定连接起来的工业连接器。连接器用来在电柜和机器人之间传送数据、信号和电源,通过通信控制器将机器人连接到工厂内部网络中。 连接器的稳定可靠对于工业机器人乃至整个生产线的工作效率起到至关重要的作用。而市场上工业连接器产品种类繁多,如何选择一款集高效、安全与经济于一体的连接器是每个工业采购经理需要思考的问题。从业于某汽车制造公司的资深采购经理Michaela介
[工业控制]
助力智能制造业转型<font color='red'>升级</font>:PushPull V4推拉式连接器问市
苹果承认iPhone12显示存问题,拟通过系统升级修复
据报道,iPhone 12上市后被曝问题多多。先是iPhone 12 Mini的锁屏灵敏度问题被曝光,随后iPhone 12和iPhone 12 Pro出现与消息应用有关的问题。此后iPhone 12系列更是被曝出亮屏变黄、漏光、闪屏,甚至在纯黑背景下会出现屏幕周围“发绿”的情况。 11月19日,苹果资讯网站Mac rumors的一篇文章表示,苹果已经承认一些iPhone 12显示屏存在问题。 据报道,在本周苹果授权服务提供商分享的文件中,苹果表示,已知道与此问题相关的用户报告,并正在进行调查。据悉,苹果有信心通过系统升级更新即可解决问题,而不需要更换或维修硬件。 据悉,类似的绿屏现象也曾出现在部分iPhone 11、iPho
[手机便携]
惠普引领AI PC时代 加速推进产品升级
数字化时代,AI已经成为全球的焦点。尤其是近年来,以ChatGPT为代表的生成式AI引发全世界关注,各行业领域都掀起了对人工智能领域的讨论热潮,同时也促进了AI应用在多元领域的规模化扩张与交叉运用,AI正在重塑行业。 作为英特尔的紧密合作伙伴,惠普受邀出席了英特尔于12月15日举办的以“AI无处不在,创芯无所不及”为主题的新品发布会及AI技术创新派对,分享了其在AI PC大时代下的洞察和策略构想,并透露了将通过和关键芯片提供商、关键软件供应商展开紧密合作,探索和重新设计PC架构,推出AI PC新品的计划。 酷睿Ultra处理器构建了CPU、GPU和NPU于一体的创新AI加速架构,并优化了AI软件的能耗效率,实现了
[半导体设计/制造]
惠普引领AI PC时代 加速推进产品<font color='red'>升级</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved