-
μC/OS
μC/OS-II实验程序说明
软件版本:V1.0 日期:2005-05-25
多任务是指多个任务在操作系统的控制下同时运行,它的实现实际上是靠操作系统在
多个任务之间进行切换和调度。在多任务系统中,内核负责管理各个任务,即为每个任务
分配CPU时间,并且负责各任务之间的通讯。μC/OS-II操作系统最多可以支持64个任务。
每个任务的优先级不能相同,优先级数字越小,优先级越高。在μC/OS-II操作系统中,
OSInit()创建了两个μC/OS-II的默认任务:一个是OS_TaskIdle,即CPU空闲任务,它拥有
最低的优先级,当有其他任务运行时此任务处于就绪态,没有其他任务时就是它在运行,
该任务是μC/OS-II必需的任务;另一个任务是OS_TaskStat,它每隔一段时间就做一些统-Arm adt IDE
- 2023-08-06 17:45:03下载
- 积分:1
-
针对OK2440 ARM920T(S3C2440)的USB设备接口载windows下的驱动
针对OK2440 ARM920T(S3C2440)的USB设备接口载windows下的驱动-For OK2440 ARM920T (S3C2440) contains the USB device interface of the drive under windows
- 2022-01-26 04:33:46下载
- 积分:1
-
GPIO test examples, including drivers and applications, applications prepared us...
GPIO测试例子,包括驱动程序和应用程序,应用程序采用EVC编写。-GPIO test examples, including drivers and applications, applications prepared using EVC.
- 2022-01-25 14:47:48下载
- 积分:1
-
arm实现的CAN局域网程序,以模拟发生和接收为住。
arm实现的CAN局域网程序,以模拟发生和接收为住。-arm to achieve CAN LAN procedures in order to simulate the occurrence and receiving of living.
- 2022-07-02 13:29:07下载
- 积分:1
-
LPC11U6X_example_code
Version v01, 2013_09_13, initial version
Version V02, 2013_11_05, Added LPCOpen demo code, BETA Version; update LPC11U6x UM;
Version V03, 2013_12_06, update ILI9341 LCD driver;
Version V04, 2013_12_11, update LPC11U6x Schematic;
update UM_LPC11U6x v0.02;
update DS_LPC11U6x v0.6_04;
Added ES_LPC11U6X v1.1;
- 2022-03-28 11:26:42下载
- 积分:1
-
microcontroller for ARM的JTAG。
Jtag for arm microcontroller.
- 2023-08-27 20:30:05下载
- 积分:1
-
dsPIC routines for reference, people with foreign
dspic例程可以参考一下,国人风格与国外的风格-dsPIC routines for reference, people with foreign-style style
- 2023-03-29 15:50:03下载
- 积分:1
-
8051系列教程范例
8051系列教程范例 -8051 Series 8051 Series Tutorial Tutorial Example Example
- 2022-01-26 15:08:43下载
- 积分:1
-
用LPC2106做的ARM开发板
用LPC2106做的ARM开发板-do with the LPC2106 ARM development board
- 2022-05-12 13:31:21下载
- 积分:1
-
绝对原创,开源一STM32项目,CAN,UART,Input检测 原创相对高效性能与代码重用平衡思路(缓冲队列加软中断),可直接做工程模板
1、CAN收发队列
使用内存FIFO缓冲CAN帧,适合大数据量通信;并使用内部软中断处理CAN数据,相当于事件响应,综合应该比查询方式节省不少时间,也应该比OS调度省点时间。Can.C:底层处理,Communi.C:与应用层高相关。 应用层处理流程用函数指针表的方式调用减少代码量及阅读整齐;实现CAN各种错误记录机制。已初步测试,该机制可用。
CAN处理流程:
接收:CAN1_RX0_IRQHandler_Name (void), CAN1_RX1_IRQHandler(void)
接收中断,CAN_QueueWriteQuick()将当前的有效报文压入内存FIFO,压入的数据为整个CAN邮箱数据,所以后续的处理函数可以分辨出完整的数据。
void CAN1_RX0_IRQHandler_Name (void) // CAN1_RX0_IRQHandler_Name
{
/*
FIFO从空状态开始,在接收到第一个有效的报文后,FIFO状态变为挂号_1(pending_1),
硬件相应地把CAN_RFR寄存器的FMP[1:0]设置为’01’(二进制01b)。
软件可以读取FIFO输出邮箱来读出邮箱中的报文,然后通过对CAN_RFR寄存器的RFOM位
设置’1’来释放邮箱,这样FIFO又变为空状态了。如果在释放邮箱的同时,
又收到了一个有效的报文,那么FIFO仍然保留在挂号_1状态,软件可以读取FIFO
输出邮箱来读出新收到的报文。
如果应用程序不释放邮箱,在接收到下一个有效的报文后,FIFO状态变为
挂号_2(pending_2),硬件相应地把FMP[1:0]设置为’10’(二进制10b)。
重复上面的过程,第三个有效的报文把FIFO变为挂号_3状态(FMP[1:0]=11b)。
此时,软件必须对RFOM位设置1来释放邮箱,以便FIFO
- 2022-03-21 07:31:29下载
- 积分:1