共2条
1/1 1 跳转至页
zlg,LPC2210,uc,os 请教zlg:LPC2210的uc/os操作系统中断问题
问
我用LPC2210板在非操作系统下做了一个简单的A/D采样电压的任务,其中采样结果用中断读取的,很正常.但是当用UC/OSII时,在中断程序中老是跳到“取数据中止
DataAbort
B DataAbort”
我所做的操作有:
在irq.s中添加:ADC_Handler HANDLER ADC_Exception
在target.c添加:
void VICInit(void)
{
extern void IRQ_Handler(void);
extern void Timer0_Handler(void);
extern void ADC_Handler(void);
VICIntEnClr = 0xffffffff;
VICDefVectAddr = (uint32)IRQ_Handler;
VICVectAddr0 = (uint32)Timer0_Handler;
VICVectCntl0 = (0x20 | 0x04);
VICVectAddr8 = (uint32)ADC_Handler;
VICVectCntl8 = (0x20 | 0x12);
VICIntEnable = ((1 << 4)|(1<<18));
}
这是我的中断服务程序:发一个信号量给一个任务.
void ADC_Exception(void)
{
OS_ENTER_CRITICAL();
OSSemPost(Sem_Addr);
VICVectAddr = 0; // 通知中断控制器中断结束
OS_EXIT_CRITICAL();
}
请问我是不是漏了什么地方啊?
在操作系统下使用中断需要注意什么?
恳请不吝赐教.
答 1: 先看看你的uc\os能不能正常阿 答 2: uc/os完全正常uc/os完全正常 :我用别的工程实验都正常啊 答 3: 有可能是中断嵌套的问题!!!
DataAbort
B DataAbort”
我所做的操作有:
在irq.s中添加:ADC_Handler HANDLER ADC_Exception
在target.c添加:
void VICInit(void)
{
extern void IRQ_Handler(void);
extern void Timer0_Handler(void);
extern void ADC_Handler(void);
VICIntEnClr = 0xffffffff;
VICDefVectAddr = (uint32)IRQ_Handler;
VICVectAddr0 = (uint32)Timer0_Handler;
VICVectCntl0 = (0x20 | 0x04);
VICVectAddr8 = (uint32)ADC_Handler;
VICVectCntl8 = (0x20 | 0x12);
VICIntEnable = ((1 << 4)|(1<<18));
}
这是我的中断服务程序:发一个信号量给一个任务.
void ADC_Exception(void)
{
OS_ENTER_CRITICAL();
OSSemPost(Sem_Addr);
VICVectAddr = 0; // 通知中断控制器中断结束
OS_EXIT_CRITICAL();
}
请问我是不是漏了什么地方啊?
在操作系统下使用中断需要注意什么?
恳请不吝赐教.
答 1: 先看看你的uc\os能不能正常阿 答 2: uc/os完全正常uc/os完全正常 :我用别的工程实验都正常啊 答 3: 有可能是中断嵌套的问题!!!
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 在K230DBOX上实现多时段语音提示功能被打赏¥14元 | |
| 使K230DBOX实现相机持续拍照功能被打赏¥12元 | |
| 基于K230DBOX的文本管理器设计被打赏¥14元 | |
| 基于K230DBOX的彩色画板功能实现被打赏¥15元 | |
| 在K230DBOX上实现音乐播放器功能被打赏¥15元 | |
| NXP MCU系列开发板MCULink固件升级方法【VSCode】被打赏¥28元 | |
| 三分钟快速搭建NXP MCU开发环境(VSCode)被打赏¥22元 | |
| 为遥控小车巧添功能被打赏¥26元 | |
| 【S32K3XX】FlexCAN 模块配置使用被打赏¥30元 | |
| 【S32K3XX】FlexCAN RAM 资源分配整理被打赏¥25元 | |
我要赚赏金
