历史上的今天
今天是: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调用错误,但是由于自己知识浅薄,所以也是多方查找才解决问题,所以分享出来,希望大家不要在这上面花费太多时间。
史海拾趣
|
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 ...… 查看全部问答> |
|
char *aa; j=m_recv.Receive(aa,2,0); if(aa==\"ff\") { KillTimer(1); } 用的vs2005 基于智能设备的程序 我写的关于socket 的接收程序,就是那些字 ...… 查看全部问答> |
|
德州仪器 (TI) 宣布推出一款高精度模拟设计库,其提供完整的板级及系统级精确设计,不但可帮助工程师快速评估和定制系统,同时还可为其扩展模拟知识面。该 TI 高精度设计库包含参考、验证及认证设计等类别,可为客户提供快速评估和定制系统所需的所 ...… 查看全部问答> |
|
本帖最后由 telecom_hr 于 2014-3-25 10:54 编辑 本人是从事猎头工作的,目前全国各地有大量通信类招聘职位,包含研发经理,项目经理,软件开发工程师,测试工程师,硬件工程师,FPGA,Soc,构架师,技术支持等,询问 ...… 查看全部问答> |
|
老板给了个任务,通过wifi传送数据给Ipad2,要求传输速度达到1.2M字节/秒,尽量少的外围器件及低成本。 随便一个ARM11或Cotex-A8以上的ARM+USB无线网卡都能实现,但是这样太浪费了(硬件成本及体积太大)。 TI官网上有CC3100(M3内核),CC3200(M4内 ...… 查看全部问答> |




