Atomthreads移植

47 篇文章 0 订阅

主要参考书籍:《嵌入式实时操作系统ucos-ii原理及应用》(第二版)
主要编写内容:
  1. 数据结构:程序控制块tcb解析:图文36、
  2. 任务解析:
    1. 单一任务,图文43上方,完成
    2. 多任务链接:图文43下方,完成
    3. 任务状态(考虑atomthreads是否具备多种状态,只有执行或挂起状态)
  3. 解决问题:
    1. 本人测试系统特性任务:取消,可以不测试,毕竟第一篇作为入门文章,不需要这么深入
      1. 任务堆栈分配
      2. 中断处理
    2. 库的版本问题:源码使用1.1,需要修改为可以任意调整库版本的版本
      1. 完成,修改为V2.1库版本
      2. 进一步修改为寄存器版本,不依赖于任意函数库版本。为了适应电协开发板配套的代码例程。
    3. 结合源代码的文件结构讲解:port、kernel是什么,在系统占有什么地位。
      1. 完成,通过结构
    4. 尽可能地保留库和系统的源生态
      1. 但仔细看过,这样并不保证项目文件结构保持一致性,所以强制规定使用“标准”格式
    5. 有必要解析stm8(iar)使用的变量空间声明关键字
    6. 附上代码规范:
      1. 还没有准备,是电协一套,还是华为编程规范呢?
    7. 伪代码标准写法:
      1. 有一部分解析是使用伪代码编写,同时也是自己学习的一部分。
    8. 编译警告:Warning[Pa050]: non-native end of line sequence detected (this diagnostic is only issued once) G:\实时系统\atomthreads\移植代码\gdut-elc-v3.0\kernel\atommutex.h 1
      1. 编译平台的改变,导致不同的换行符表示造成错误。
  4. 系统缺陷:
    1. atomThreadCreate传入的任务函数参数只能是32位长整形,能优化吗?
      1. 可以优化,但不建议
    2. 有网友对该系统的严谨性表示怀疑,本人暂时未弄明白。
    3. 缺乏内存管理方面。

在源码当中出现的汇编程序,如上如所示。
这是虚拟寄存器,堆栈帧的映射到b8 to b15内,就是当前工作寄存器,所以,保存堆栈信息对任务切换尤为重要,正是通过保存堆栈帧信息,来实现真正的任务切换。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值