原创 个人编写的 基于cotex-m0 的rtos

2016-6-13 10:24 848 3 6 分类: MCU/ 嵌入式

最近花了点时间 在  cotex-m0 上写了一套 操作系统 ,使用的是nRF51822EK_TM  开发板,实现的功能主要包括:

1.线程管理

2.调度管理

3.时间管理

4.IPC管理(目前只实现 信号量,邮箱)

5.驱动管理

因个人的能力有限,有不对的地方请大家指正, 详细的目录结构如下:  

 

20160601175535308.jpg


 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户588240 2016-6-13 10:21

第三次修改 ,添加互斥信号量,没有解决优先级反转的问题 以及死锁的问题,后续会继续添加修改解决方案

用户588240 2016-6-6 08:55

bug修复: 在x_ipc.c文件中 的void __x_ipc_ready(x_ecb_t *p, void *msg)函数中bitx 和bity的值没有赋值,跑一段时间后会出现问题;经修改过后正常,修改如下: void __x_ipc_ready(x_ecb_t *p, void *msg) { x_tcb_t *ptcb; x_uint8_t x; x_uint8_t y; x_uint8_t bitx; x_uint8_t bity; x_uint8_t prio; y = x_bit_unmap_tbl[p->x_evt_grp]; bity = x_bit_map_mask[y]; x = x_bit_unmap_tbl[p->x_evt_tbl[y]]; bitx = x_bit_map_mask[x]; prio = (x_uint8_t)((y << 3) + x); if ((p->x_evt_tbl[y] &= ~bitx) == 0) p->x_evt_grp &= ~bity; ptcb = x_tcb_addr[prio]; ptcb->x_tcb_dly = 0; ptcb->x_ecb = (x_ecb_t *)0; p->x_evt_ptr = msg; ptcb->x_tcb_stat = THREAD_STAT_RDY; x_prio_rdy_set(prio); }

用户377235 2016-6-2 10:20

下载下来看看,不做评价。楼主棒棒哒!

用户1350639 2008-2-20 10:18

相关推荐阅读
用户588240 2016-06-02 14:09
nordic s110 使用分析
有一段时间没摸过BLE了 ,忘 的差不多了 ,现在又重新复习下:要使S110 协议栈跑起来,首先要做的事就是协议栈使能,因为S110协议栈是基于事件触发的,所以在初始化的时候 要注册事件分发处理函数,...
我要评论
3
3
关闭 站长推荐上一条 /3 下一条