在本章,我们看看ARM处理器如何响应异常。异常是任何需要挂起正常执行转而运行与每个异常类型相关联软件(称为异常处理程序)的条件。
12.1 异常的类型
如我们在第四章看到,A系列和R系列架构支持七种处理器模式,六种特权模式(称为快速中断模式、外部中断模式、管理模式、中止模式、未定义模式和系统模式),一种非特权模式(用户模式)。如果虚拟化扩展和安全扩展被实现,Hyp和Monito...
分类:
其他好文 时间:
2014-05-26 05:55:48
阅读次数:
388
/*
使用keil4
可运行8个任务
任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回来。
*/
#include "STC12C5A...
分类:
编程语言 时间:
2014-05-26 05:05:42
阅读次数:
419
CRTOS 实时可剥夺型内核
1.任务不用预加载,不用预定义。任务调用时加载,可删除(退出死循环即可)
2.单位轮转查询时间由晶振和定时器初始化决定。在这里为10ms
3.定时时间为【 time*单位轮转查询时间 】 ,其中time为 rtos_wait(time)中time.
4.可运行多个任务【自定义】
5.任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回来,任务执行后,回到中断,再从中断回到主程序。...
分类:
编程语言 时间:
2014-05-26 03:59:52
阅读次数:
323
linux串口驱动分析硬件资源及描写叙述 s3c2440A
通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作。UART
使用系统时钟能够支持最高 115.2Kbps 的波特率。每一个 UART 通道对于接收.....
分类:
系统相关 时间:
2014-05-26 01:31:25
阅读次数:
490
STM8L 系列单片机是
ST公司推出的低功耗单片机,与STM8S系列相比功耗降低了很多,但内部结构也删减了很多,使用时一定要仔细阅读手册。 (本人
因为中断问题纠结了大半天),这是第一次使用STM8实现功能不是很复杂,就没想研究库函数,准备直接控制寄存器操作。在外部中断中这一点很不同, S...
分类:
其他好文 时间:
2014-05-25 03:46:27
阅读次数:
292
4个任务
/*
使用keil4
可运行8个任务
任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回来。
*/
#include "STC12C5A.H"
#define TIMER_RELOAD() {TL0=0x00;TH0=0xC4;}//使能T/C 初始10ms
#define MAX_TASKS 8 //任务槽最大个数.
unsig...
分类:
编程语言 时间:
2014-05-25 02:03:17
阅读次数:
293
使用keil4 ,代码Code Optimization:0 运行OK
可运行8个任务
Program Size: data=21.0 xdata=0 code=401 (包括2个示例变量,未优化)
任务从中断处切换,在定时时间到后从定时中断中切换回来。
待改进地方
1.手动优化汇编程序
2. 重入问题
3.参数进函数和时中断的保护问题...
分类:
编程语言 时间:
2014-05-24 22:13:10
阅读次数:
318
短短续续,经过了大约大半年的开发, 我的第一个软件作品:AlphaDict 终于 release 了1.0, 这是一段很困难的时间,需要从写文档开始,做所有的事情。为了保持代码的简洁, 可控,减少对系统平台的依赖性。我尽量使用 标准 c/c++ 库的 API, 不得不自己去封装打包一些东西。 有时候,碰到一些平时没有深入的问题,不得不中断手头的工作,来深入学习新的东西, UTF-8/16/32,...
分类:
其他好文 时间:
2014-05-24 20:32:24
阅读次数:
272
CRTOS 实时可剥夺型内核
1.任务不用预加载,不用预定义。任务调用时加载,可删除(退出死循环即可)
2.单位轮转查询时间由晶振和定时器初始化决定。在这里为10ms
3.定时时间为【 time*单位轮转查询时间 】 ,其中time为 rtos_wait(time)中time.
4.可运行多个任务【自定义】
5.任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回来,任务执行后,回到中断,再从中断回到主程序。...
分类:
编程语言 时间:
2014-05-24 19:51:06
阅读次数:
324
/*
CRTOS 实时可剥夺型内核
1.任务不用预加载,不用预定义。任务调用时加载,可删除(退出死循环即可)
2.单位轮转查询时间由晶振和定时器初始化决定。在这里为10ms
3.定时时间为【 time*单位轮转查询时间 】 ,其中time为 rtos_wait(time)中time.
4.可运行多个任务【自定义】
5.任务从rtos_wait()处切换,在定时时间到后从定时中断中切换回...
分类:
编程语言 时间:
2014-05-24 14:22:34
阅读次数:
372