不可重入怎么改改成可重入函数。一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预...
分类:
其他好文 时间:
2015-06-13 09:56:09
阅读次数:
137
BIOS启动1.加电时由硬件将BIOS加载到内存末尾.这时是实模式,寻址空间为1M.
2.由硬件将CS段寄存器强制设置为0xFFFF,IP指令寄存器设置为0x0000.这样CS:IP指向了OxFFFF0的地址位置.这个位置就是BIOS程序的入口地址.
3.执行BIOS程序.在内存起始地址0x00000设置1K大小的中断向量表.每个中断向量大小为4字节.中断向量保存的是中断服务的入口地址.
4....
分类:
系统相关 时间:
2015-06-08 13:29:02
阅读次数:
167
P1、P2端口上的每个管脚都支持外部中断。P1端口的所有管脚都对应同一个中断向量(Interrupt Vector),类似的,P2端口的所有管脚都对应另一个中断向量;通过PxIFG寄存器来判断中断来源于具体哪个管脚。相关的寄存器如下表所示。 Register Short Fo...
分类:
其他好文 时间:
2015-06-07 14:30:11
阅读次数:
131
汇编实现的一个简易的文本编辑器,代码中有详细的注释。
思路和细节:
(1) 在屏幕中央初始化一片面积,并且定位光标,利用16号中断0号功能分别在ah,al中存储扫描码和ascii码,由此进行功能键的判断。
(2) 实现对光标的操作,通过对dh,dl的变化和10号中断的2号功能进行光标的设置,上下左右分别改变dh,dl的值即可。
(3)退格键的操作实现是 光标左移,然后利用21号中断输出空格...
分类:
移动开发 时间:
2015-05-27 13:57:40
阅读次数:
311
概要 Myriad2中断控制器接收64个中断,根据他们的优先级来发送中断请求给LEON处理器.中断控制器仲裁根据级别和升序的中断号,同一优先级,更大中断号的中断优先级高. 64个中断,其中52个是硬连接中断,另外的12个可以配置的资源,来自LEON(RT或者是OS)中断设计模式(举例来说,OS中有....
分类:
其他好文 时间:
2015-05-25 20:12:57
阅读次数:
172
嵌入式开发之道——菜鸟成长日志与项目经理的私房菜(读书笔记) 邱毅凌著
1、一般函数调用与中断ISR的区别
一般程序都是循序执行的,CPU一定要执行到main()的第20行,才有可能去调用sub_fun()函数,而中断可以发生在任何的时间地点。例如,使用者可以在任何时候按下键盘的某个键,此时不论CPU下个要执行的指令是什么,CPU都会先记录目前的状态,然后参考中断向量表,接着去执行键盘中断的处理...
分类:
其他好文 时间:
2015-05-17 21:53:43
阅读次数:
225
开发环境: STM32Cube + Keil5.12 + hal 库实验项目: TIM6中断问 题: 无法进入TIM6中断解决办法:修改startup_stm32f030x8.s文件中的中断向量注册 调试过程中,发现,startup_stm32f030x8.s 中没有注册TIM6中断的 中断向...
分类:
其他好文 时间:
2015-05-16 18:11:50
阅读次数:
154
添加中断向量 我们需要找到中断函数的定义,这个文件的名字叫做hal_mcu.h,
,我们可以看到很多宏定义,其中Compiler Abstraction部分代码如下:/* ------------------------------------------------------------------------------------------------ *...
分类:
其他好文 时间:
2015-05-15 13:45:15
阅读次数:
349
主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能...
分类:
其他好文 时间:
2015-05-06 15:04:03
阅读次数:
108
BIOS和bootsectCPU加电即进入16位实模式硬件逻辑设计为加电瞬间强行设置:CS=0xF000,IP=0xFFF0,CS:IP=0xFFFF0而BIOS程序的入口地址即0xFFFF0,是计算机上电后CPU执行的第一条指令的地址BIOS程序在内存中加载中断向量表和中断服务程序调用INT 0x...
分类:
其他好文 时间:
2015-05-01 11:53:35
阅读次数:
182