2019独角兽企业重金招聘Python工程师标准>>>

KLite 移植说明 V1.0

KLite是一个“简洁易用”的嵌入式操作系统微内核
目前支持Cortex-M0/M3/M4,支持Keil/IAR/gcc

一.普通移植
  普通移植是指在KLite已经支持的CPU架构(如Cortex-M0,M3,M4)上进行移植,
这种情况的移植工作非常简单,只需要修改源码cpu.c即可,对于其它文件请
不要修改。
 
  对于cpu.c主要实现以下几个函数:
1.void cpu_init(void)
作用:初始化目标CPU的系统时钟
说明:此函数必须在kernel_init()之前手动调用,建议放在startup.s执行

2.void cpu_core_init(void)
作用:初始化内核用到的中断
说明:此函数在kernel_init()函数内部调用

3.void cpu_tick_init(void)
作用:初始化系统滴答定时器,通常为1ms
说明:此函数在kernel_start()函数内部调用

4.void cpu_idle(void)
作用:完成一些省电操作
说明:此函数在kernel空闲时由系统调用

二.完全移植
  完全移植是指在KLite目前不支持的CPU架构(如ARM7,ARM9)上进行移植,
这种情况的移植难度比较大,需要修改cpu_core_xxx.s和cpu.c。

对于cpu_core_xxx.s文件需要实现以下功能:

1.中断管理
void cpu_irq_disable(void) //作用:关闭CPU中断
void cpu_irq_enable(void) //作用:开启CPU中断

2.线程堆栈管理
void cpu_tcb_init(struct tcb* tcb, uint32_t sp_min, uint32_t sp_max)
作用:初始化线程堆栈
说明:tcp为目标线程上下文指针,sp_min和sp_max为堆栈指针的最大值和最小值,
     请根据目标CPU平台的堆栈增长方向决定目标TCB中的sp成员值,
     并初始化堆栈中的:
         PC=tcb->main (线程入口函数)
         R0=tcb->arg (线程入口函数参数)
         LR=kthread_exit(线程退出)
        
void cpu_tcb_switch(void)
作用:任务上下文切换
说明:全局变量kern_tcb_now为当前运行中的任务上下文指针
     全局变量kern_tcb_new为即将切换到的任务上下文指针
     a.将当前CPU运行相关的寄存器压入kern_tcb_now->sp指向的堆栈中
     b.从kern_tcb_new->sp指向的堆栈中弹出CPU运行相关的寄存器
     c.标记kern_tcb_new->state为运行状态,并将kern_tcb_now的值修改为kern_tcb_new

3.提供内核时钟
在目标CPU平台实现1个1ms中断的定时器,并在中断函数中调用kernel_tick()函数

对于cpu.c的修改,请参照前面的“普通移植”即可。

三.广告
  如果你完成了一项完全移植,非常希望你能提交到http://git.oschina.net/kerndev/klite.git
  如果你对KLite感兴趣,请加入QQ群:317930646

转载于:https://my.oschina.net/kerndev/blog/729409

KLite 移植说明 V1.0相关推荐

  1. 【今日爆点】华为HDC开发者大会上正式发布深度欧拉V1.0

    3月27日上午,华为开发者大会2020(Cloud)通过华为云网线上开幕,首先华为宣布"沃土计划2.0"的进一步举措,将在2020年投入2亿美元推动鲲鹏计算产业发展,同时华为云与计 ...

  2. 【正点原子Linux连载】第四十一章 嵌入式Linux LED驱动开发实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  3. 转载:SRT传输库评估报告(V1.0.0)

    原文地址:https://blog.csdn.net/mediapro/article/details/105790057,感谢大神: SRT传输库评估报告(V1.0.0) www.mediapro. ...

  4. MKS PI V1.0使用说明书

    广州谦辉信息科技有限公司 MKS PI V1.0使用教程 创客基地QQ群:489095605 232237692 邮箱:Huangkaida@makerbase.com.cn 文章目录 一.产品简述 ...

  5. Spacecube V1.0:适应多任务应用的可重构SpaceCube处理系统

    摘要 本文着重介绍了采用可重构SpaceCube系统来解决各种空间飞行任务的复杂应用需求的方法和有效性.SpaceCube是一个可重构的.模块化的.紧凑的.多处理平台,用于需要极高处理能力的空间飞行应 ...

  6. PC休闲游戏~植物大战僵尸-植物连连看v1.0正式发布啦(更新iPhone版本)!

    11.29: 又稍微花了一些时间制作了HD的iPad版本,不过提交app store审核失败了,侥幸看来真的只有一次啊 -增加计分(done) -增加关卡选择(done) 6.14: 看到卖的很悲惨, ...

  7. MKS SKIPR V1.0 使用说明书

    广州谦辉信息科技有限公司 创客基地QQ群:489095605 232237692 邮箱:Huangkaida@makerbase.com.cn MKS SKIPR V1.0使用说明书 文章目录 一.产 ...

  8. CDMA 1X WAP2.0业务网 设备实施规范 (V1.0)

    CDMA 1X WAP2.0业务网 设备实施规范 (V1.0) 前 言: 近10年以来,移动通信(包括数据和语音)和Internet几乎成为了在全世界范围内发展最快,最具活力的两项技术.而Intern ...

  9. CDMA 1X通信网 WAP2.0业务技术体制 (V1.0)

    CDMA 1X通信网 WAP2.0业务技术体制 (V1.0) 前 言 近10年以来,移动通信(包括数据和语音)和Internet几乎成为了在全世界范围内发展最快,最具活力的两项技术.而Internet ...

最新文章

  1. ajax dojo deferred,dojo(四):ajax请求
  2. 新冠疫苗生产靠AI?看强生、普华永道玩转AI的秘密
  3. 3 float py 位小数 裁剪_对一个 float 精度问题的分析
  4. linux安装报错之:ifconfig command not found解决
  5. Deep-Learning-with-Python] 文本序列中的深度学习
  6. 如何把备份的bak还原到新的数据库
  7. 修改项目图标_北京2022冬奥会和冬残奥会体育图标发布
  8. 2021安新中学高考成绩查询,石家庄二中雄安校区•河北安新中学2019届冲刺高考百日誓师大会...
  9. 前端CSS - 相对定位,绝对定位,固定定位
  10. Python让繁琐工作自动化——chapter15 保持时间、计划任务和启动程序
  11. JS中某事件需要同时调用几个function另类解决办法。
  12. jQuery常用插件
  13. xml与map的相互转换
  14. Sigma Designs SMP8910媒体处理器的3DTV、蓝光和OTT体验
  15. Python基础算法案例:24点纸牌游戏算法
  16. 离谱的布斯法(补码一位乘)
  17. 你也能看懂的:主成分分析法
  18. warning: waiting for transaction lock on /var/lib/rpm/.rpm.lock
  19. React Hook的用法: State + Effect(一)
  20. 描述自己性格的英语单词(优点)

热门文章

  1. 「极点日历」小程序插件
  2. appium 环境配置
  3. [Linux/Ubuntu] vi/vim 使用方法讲解
  4. CreateThread与_beginthreadex本质区别
  5. 用LoadRunner实现接口测试
  6. cad二次开发程序的绿色安装
  7. 要获取NAT之后的外网IP地址
  8. Entity Framework 实践系列 —— 搞好关系 - 单相思(单向一对一,one-to-one)
  9. C++中的XML配置文件编程经验
  10. 大数据开发笔记(四):Hive数据仓库