共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 设备功耗web监控界面(ESP32C5)被打赏¥28元 | |
| OrangePiZero2W系统被打赏¥33元 | |
| Linux环境下以模拟方式快速实现出入管理功能测试被打赏¥24元 | |
| 树莓派3+Klipper,老3D打印机满血升级被打赏¥33元 | |
| OK1126B-S开发板下串口屏及其应用被打赏¥21元 | |
| 低功耗超声波液位测距仪(ESP32S3)被打赏¥27元 | |
| 在K230DBOX上实现多时段语音提示功能被打赏¥14元 | |
| 使K230DBOX实现相机持续拍照功能被打赏¥12元 | |
| 基于K230DBOX的文本管理器设计被打赏¥14元 | |
| 基于K230DBOX的彩色画板功能实现被打赏¥15元 | |
我要赚赏金
