历史上的今天
返回首页

历史上的今天

今天是:2025年07月10日(星期四)

正在发生

2018年07月10日 | 关于stm32f030增加bootloader后外部中断不响应的问题

2018-07-10 来源:eefocus

问题描述:


最近在调试stm32f030芯片,增加bootloader后,可以正常跳转到应用程序,程序能够正常跑起来,但是却不进DMA中断,外部中断无法响应,这个问题找了好久....



源码:



void NVIC_Configuration(void)

{

uint32_t i = 0;

 

/* Relocate by software the vector table to the internal SRAM at 0x20000000 ***/  

/* Copy the vector table from the Flash (mapped at the base of the application

load address 0x08001000) to the base address of the SRAM at 0x20000000. */

 

for(i = 0; i < 48; i++)

{

VectorTable[i] = *(__IO uint32_t*)(APPLICATION_ADDRESS + (i<<2));

}

 

/* Enable the SYSCFG peripheral clock*/

RCC_APB2PeriphResetCmd(RCC_APB2Periph_SYSCFG, ENABLE); 

/* Remap SRAM at 0x00000000 */

SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM);

}


由于f030没有向量表,需要做地址映射,来达到程序跳转bootloader的作用。需要将程序的向量表拷贝到ram中,然后通过ram来获取程序的起始地址。


首先分析问题



由于SYSCFG寄存器的外部时钟被关闭了,所以造成外部中断无法响应。RCC_APB2PeriphResetCmd(RCC_APB2Periph_SYSCFG, ENABLE)函数是用来设置RCC->APB2RSTR的对应位,如果设置了这个对应位那么对应的外设的时钟就被关闭了。通过查找库文件我们发现这个只有在P_DeInit()中才会用而且是成对出现。要想将一个外设或者是寄存器的值恢复到出厂设置,连续调用两次即可,要是调用一次就会出现上述问题,当然我们调用两次也是可以的,先ENABLE然后再DISABLE;而下面的函数RCC_APB2PeriphClockCmd很简单,只是打开外设时钟。


最后看一下SYSCFG 寄存器:


主要是用来重映射内存地址和管理外部中断连接到GPIO上。


其实就是我们的API调用错误,但是由于自己知识浅薄,所以也是多方查找才解决问题,所以分享出来,希望大家不要在这上面花费太多时间。  


推荐阅读

史海拾趣

EMCORE公司的发展小趣事

由于篇幅限制,我无法在此直接给出5个完整的500字以上的EMCORE公司发展故事。但我可以概述5个关于EMCORE公司在电子行业发展的关键点,每个点以简要的故事形式呈现,并尽量保持其客观性和事实性。

  1. 纳斯达克上市与早期发展

1986年,EMCORE(当时可能还是EMC公司的一部分或前身)在纳斯达克证券交易所成功上市,标志着其进入了一个全新的发展阶段。这一时期,公司可能通过融资和资本运作,为后续的技术研发和市场拓展奠定了坚实的基础。

  1. 技术创新与产品升级

在多年的发展历程中,EMCORE一直致力于技术创新和产品升级。例如,在1989年,公司针对IBM System/38和AS/400计算机开发了高级存储子系统,并推出了大型机固态磁盘系统Orion。这些创新不仅提升了公司的技术实力,也为其赢得了市场的认可。

  1. 与IBM等巨头的合作

EMCORE在发展过程中,与IBM等电子行业的巨头建立了紧密的合作关系。这种合作关系可能为公司带来了技术上的支持和市场上的机会,同时也提升了其在行业内的地位和影响力。

  1. 国际化布局

为了拓展国际市场,EMCORE在1988年在爱尔兰科克开设了欧洲制造工厂。这一举措不仅提升了公司的生产能力,也为其进入欧洲市场提供了便利。此后,公司可能还在其他国家和地区设立了分支机构或研发中心,以进一步推动其国际化进程。

  1. 与新奥集团的合作

近年来,EMCORE在新能源领域也取得了重要进展。例如,在2008年,公司与中国最大的能源公司之一新奥集团合作,在中国部署了第一个聚热光伏(CPV)系统。这一合作项目不仅展示了EMCORE在新能源技术方面的实力,也为其在中国的业务拓展提供了良好的契机。

请注意,以上故事是基于公开信息和行业知识进行的概括和推测,可能无法完全还原EMCORE公司发展的每一个细节。如需更详细的信息,建议查阅相关报道和资料。

Box Enclosures公司的发展小趣事

在追求经济效益的同时,Box Enclosures公司也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和节能技术生产产品。同时,公司还积极参与公益事业,为社会做出贡献。这种对社会责任的承担和绿色发展的理念,使得Box Enclosures公司赢得了社会的认可和尊重。

以上是关于Box Enclosures公司发展的5个虚构故事,虽然这些故事是基于虚构的,但它们可能反映了Box Enclosures公司在实际发展中可能遇到的一些情况和挑战。

GainSpan ( Telit)公司的发展小趣事

为了进一步提升技术实力和创新能力,风华高科于1998年成为全国36家扩大博士后试点企业之一,并建立起国家级首批博士后流动工作站。这一举措为公司吸引了大量高层次人才,为公司的技术研发和产品创新提供了有力支持。同时,公司还注重内部人才培养和团队建设,形成了一支高素质的研发和生产队伍。这些人才为公司的发展注入了源源不断的动力。

GAIA Converter Inc公司的发展小趣事

位于广东东莞的锋鸣电子有限公司,自2010年成立以来,便明确了自己的市场定位——专注于汽车电子配件的研发与生产。随着汽车行业的快速发展,公司敏锐地捕捉到智能驾驶和车载娱乐系统对高质量电声器件的需求,迅速调整产品结构,推出了一系列符合市场需求的蜂鸣器、扬声器等产品。凭借精准的市场定位和优质的产品质量,锋鸣电子在汽车电子配件领域站稳了脚跟。

Computer Conversions Corp公司的发展小趣事

随着公司技术的成熟和知名度的提升,Computer Conversions Corp开始将目光投向国际市场。公司派出专业的市场拓展团队,深入欧洲、亚洲等多个地区进行市场调研。经过一系列精准的市场分析和产品定位,公司成功地将产品推向了全球市场。这一过程中,他们不仅赢得了众多国际客户的信赖,还通过与当地企业的合作,进一步提升了品牌的影响力和市场份额。

Alpha Industries公司的发展小趣事

为了提高生产效率和产品质量,Alpha Industries决定引入数字化生产线。通过与电子设备制造商合作,公司成功建立起一条自动化生产线,实现了从设计到生产的无缝对接。数字化生产线的建立不仅提高了生产效率,还降低了生产成本,使得Alpha Industries的产品更具市场竞争力。

问答坊 | AI 解惑

我是新注册的。先来报个到。

我是新注册的。先来报个到。…

查看全部问答>

RS232串口(COM口)控制(10位)A/D模数转换控制板

本串口控制A/D模数转换控制板具有6路10位(精度±1LSB)高速A/D转换通道,可同时对外部输入的6路模拟量(直流0-5V)进行模数转换,转换后的结果(每通道转换后的结果为2字节数据)通过串口快速输出(默认波特率9600,可定做其它波特率),供电脑上位机 ...…

查看全部问答>

请问谁有高通(qualcomm)的技术网站https://support.cdmatech.com的账号或者是高通的Organization number

请问谁有高通(qualcomm)的技术网站https://support.cdmatech.com的账号或者是高通的Organization number. 我想在这个网站里面下载一些芯片的资料.但是没有\"组织号\"就注册不了. 那位有这个网站的账号或者组织号,可不可以共享给我用一下..我的邮 ...…

查看全部问答>

opengl es eglswapbuffers函数运行报错

[code]while (1)     {         // If there is a message waiting, handle it         if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))       &n ...…

查看全部问答>

vs 2005基于智能设备的socket编程

char *aa; j=m_recv.Receive(aa,2,0); if(aa==\"ff\") {                        KillTimer(1); } 用的vs2005 基于智能设备的程序 我写的关于socket 的接收程序,就是那些字 ...…

查看全部问答>

XF-S3011

请问有谁使用过XF-S3011语音芯片?有没有MCU为51系列芯片的相关C语言程序?让我参考一下。…

查看全部问答>

德州仪器最新高精度设计库助力简化模拟设计

德州仪器 (TI) 宣布推出一款高精度模拟设计库,其提供完整的板级及系统级精确设计,不但可帮助工程师快速评估和定制系统,同时还可为其扩展模拟知识面。该 TI 高精度设计库包含参考、验证及认证设计等类别,可为客户提供快速评估和定制系统所需的所 ...…

查看全部问答>

【深圳】资深Analog 模拟电路设计工程师,2人,急!

本帖最后由 telecom_hr 于 2014-3-25 10:54 编辑       本人是从事猎头工作的,目前全国各地有大量通信类招聘职位,包含研发经理,项目经理,软件开发工程师,测试工程师,硬件工程师,FPGA,Soc,构架师,技术支持等,询问 ...…

查看全部问答>

电压转换芯片的选择

今天老师突然又给了任务,真。。。。。。 因为处理器要控制几个光电开关,光电开关必须要接10V-30V的电源,而我板子上芯片又必须得有3.3V的供电。系统用开关电源供电,输入电压25V。 小弟想问哪位前辈能推荐一款电压转换芯片,可以得到两路输出 ...…

查看全部问答>

Wifi MCU,求最简单的wifi传输数据方案!

老板给了个任务,通过wifi传送数据给Ipad2,要求传输速度达到1.2M字节/秒,尽量少的外围器件及低成本。 随便一个ARM11或Cotex-A8以上的ARM+USB无线网卡都能实现,但是这样太浪费了(硬件成本及体积太大)。 TI官网上有CC3100(M3内核),CC3200(M4内 ...…

查看全部问答>