arm_cm4.c关于kinetis的修改
ARM 修改 关于
2023-09-27 14:22:40 时间
/***********************************************************************/ /* * Initialize the NVIC to enable the specified IRQ. * * NOTE: The function only initializes the NVIC to enable a single IRQ. * Interrupts will also need to be enabled in the ARM core. This can be * done using the EnableInterrupts macro. * * Parameters: * irq irq number to be enabled (the irq number NOT the vector number) */ void enable_irq (int irq) { int div; /* Make sure that the IRQ is an allowable number. Right now up to 91 is * used. */ if (irq > 91) printf("\nERR! Invalid IRQ value passed to enable irq function!\n"); /* Determine which of the NVICISERs corresponds to the irq */ div = irq/32; switch (div) { case 0x0: NVICICPR0 = 1 << (irq%32); NVICISER0 = 1 << (irq%32); break; case 0x1: NVICICPR1 = 1 << (irq%32); NVICISER1 = 1 << (irq%32); break; case 0x2: NVICICPR2 = 1 << (irq%32); NVICISER2 = 1 << (irq%32); break; } } /***********************************************************************/ /* * Initialize the NVIC to disable the specified IRQ. * * NOTE: The function only initializes the NVIC to disable a single IRQ. * If you want to disable all interrupts, then use the DisableInterrupts * macro instead. * * Parameters: * irq irq number to be disabled (the irq number NOT the vector number) */ void disable_irq (int irq) { int div; /* Make sure that the IRQ is an allowable number. Right now up to 91 is * used. */ if (irq > 91) printf("\nERR! Invalid IRQ value passed to disable irq function!\n"); /* Determine which of the NVICICERs corresponds to the irq */ div = irq/32; switch (div) { case 0x0: NVICICER0 = 1 << (irq%32); break; case 0x1: NVICICER1 = 1 << (irq%32); break; case 0x2: NVICICER2 = 1 << (irq%32); break; } }
由于kinetis的寄存器的特殊性 ,arm_cm4.c文件中作相应修改如下:
NVIC????|= 1<<(irq%32) 改为 NVIC????= 1<<(irq%32)
不然第二次操作中断,会清除第一次的设置
相关文章
- ARM的无线ble IP Cordio-B50 stack and profiles简析
- arm-linux-readelf 的使用
- CMake: (一) arm浮点编译参数
- ubuntu 16.04 ARM glog移植
- STM32引用“CmBacktrace”: ARM Cortex-M 系列 MCU 错误追踪库
- ARM高性能处理器应用于自动化核酸检测PCR设备解决方案
- 《 Keil MDK-Arm》__编译代码报错:Target uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available
- 华为/ARM力挺 中芯国际加速自主7nm工艺
- 开源 RISC-V CPU挑战闭源 x86 和 ARM CPU
- ARM Linux IIC tools - i2c-tools-4.3
- Windows 10笔记本 将有很多是基于ARM