UCOSiii在cortex m4上的移植已经完成,现总结如下:

  1. MCU s32k144
  2. 编译器 GNU gcc
  3. 开发环境 DS32 / NXP Freescale
其中遇到很多细节的调试,然后one by one 克服,
1.   OSCtxSw 上下文切换,和 OS_CPU_PendSVHandler 异常挂起中断服务函数,这里首先要把ARM cortex m4 technical reference manual 和 ARMv7-M Architecture Reference Manual 过一遍,两者都必须看,后者更详细一些。汇编部分其中重要的几个/多个指令必须理解,而每个编译器对相应能够支持的汇编指令集也要关注,比如IAR 和 GCC 就不同,thumb 和 arm 汇编指令的支持情况也不同, cortexm0, cortexm3, cortexm4 也有小的区别,具体情况必须谨慎排查。
2.   关于gcc arm 汇编源文件的格式,
/*-----------------------------------------------------------------------------------------------------*/
.text
.align 2
.thumb
.syntax unified
函数头
.thumb_func
OSStartHighRdy:
这两个头在汇编源文件里必须好好放着,没有!后果consequence会怎么样呢?就是.c文件可以访问它需要调用的汇编,但是汇编却没有参与到整个工程的编译,比如你的中断服务函数在汇编文件里定义编写,尽管你写了,也build了,但是真正中断发生时你会发现飞了,为什么?因为你写的这个中断服务函数根本没有参与编译,以上就是后果consequence。
/*---------------------------------------------------------------------------------------------------*/
3.   关于初始化函数时遇到的问题,千!万!注!意!特!别!提!醒! OS_ERR 类型一定要构造一个实体变量而后取地址,而不是像这样:(OS_ERR*)(0),这样的结果程序直接飞掉,通过调试,你会发现每次都是对R3和R7寄存器操作的时候直接复位。
4.   对应的内核相关的寄存器的访问和地址的确认不要搞错了

闲谈swi与ucos-终结相关推荐

  1. 闲谈swi与ucos

    最近准备玩下ucos,移植ARM上,突发奇想出一个附带问题在这里抛出来,关于任务切换,大家都知道任务切换的时候需要用汇编编写代码,这无疑是會给用惯了高级语言的工程师带来些许不爽,但是很多的单片机,当然 ...

  2. 闲谈swi与ucos-续篇

    接上篇... 其实SWI 正如我上文所述,SWI 只是主动的可预知的让自己中断,现在我们可以名正言顺的说 应用于ARM里尤其是Cortex-M 系列的SWI 应该就是所谓的自己去exception, ...

  3. UCOS在LPC上的移植

    一.一.OS_CPU_A.ASM文件的编写 1.    1. SoftwareInterrupt的编写   当发生软件中断时,程序通过异常向量表跳转到软中断的汇编与C接口程序SoftwareInter ...

  4. 用C语言写ucos中断服务程序,在ARM处理器上移植uCOS II的中断处理

    uCOS II是一个源码公开.可移植.可固化.可剪裁和抢占式的实时多任务操作系统,其大部分源码是用ANSI C编写,与处理器硬件相关的部分使用汇编语言编写.总量约200行的汇编语言部分被压缩到最低限度 ...

  5. ARM硬件平台上基于UCOS移植Lwip网络协议栈

    目录 1.硬件平台 1.1硬件平台简介 为保证网络协议栈的顺利移植,选用了LPC2220作为主控芯片,RTL8019AS作为网卡芯片,使用HR901170A进行电平转换.滤波. LPC2220是Phi ...

  6. 关于ucos在lpc上移植

    关于ucos在lpc上移植: 主要有四个文件,传统的有三个文件:os_cpu_c.c,os_cpu_a.s,os_cpu.h 还有一个是IRQ.inc Os_cpu.h:这个文件相对来说还是很简单的, ...

  7. 1.一步一步移植ucos到stm32f103开发版(修订版)

    先到官方下载ucos源码,比较接近的是http://micrium.com/download/micrium_stm32f103-sk_ucos-ii/,本文就采用该文件 开发工具版本为MDK511 ...

  8. 区块链技术是否会终结开源时代?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 2017年11月18~19日,在上海交大召开的2017中国开源年会,在第二天我们组织了一个"闭门会议" ...

  9. 天猫双十一神话恐终结

    2011年双十一大促,天猫商城创造了单日33.6亿的促销奇迹,是2010年同日交易额的近4倍.今年双十一即将来临,淘宝还能再创奇迹吗?何玺认为,淘宝双十一的神话恐终结,理由如下. 一.电商促销年消费被 ...

最新文章

  1. 这所211高校通知不放寒假!校园将实行封闭管理!
  2. 数字图像处理必备基本知识
  3. web3.js(二)根据私钥推出地址查询以太数量
  4. 用3个IO口控制6个LED灯,怎么做到的?查理复用!
  5. 201571030310/201571030329《小学四则运算训练软件》结对项目报告
  6. k8s挂载目录_云原生存储详解:容器存储与 K8s 存储卷
  7. vue.js+vscode+visual studio在windows下搭建开发环境
  8. 前端web:浏览器静态资源缓存策略
  9. Nginx的rewrite之if指令(一)
  10. Fiddler利用Xposed框架+JustTrustMe抓取手机APP数据
  11. mysql5.7.76安装,win7下mysql5.7.17安装配置方法图文教程
  12. TypeScript算法专题 - blog3 - 对TypeScript链表实现中的一些问题总结与改进
  13. 高等数学常用符号大全及符号的含义
  14. Matlab资料汇总暨MATLAB中文论坛帖子整理(一)
  15. 汇编语言集成编译器android,辰灿汇编语言集成开发环境
  16. 华为薪资等级结构表2020_[新版文件]2020年华为员工标准岗位工资明细及分析
  17. google身份验证器,java服务端实现 GoogleAuthenticator
  18. Dyna中建立预紧力螺栓的两种方法
  19. JS EXCEL表的操作
  20. unity 字体添加边框颜色

热门文章

  1. c语言讲义pdf,C语言基本讲义.pdf
  2. 互联网金融诈骗不缺受害者, 有人刚被3M坑了又投入CA
  3. win10 条件下在anaconda中安装face_recognition(超简单,亲测有效)
  4. 突出计算机学院的比赛名,学院在2019年全国大学生信息安全竞赛安徽省赛中喜获佳绩...
  5. Apollo入门课程04-感知
  6. 英语语法汇总(1.名词)
  7. vs2013+opencv3.1.0+qt5.3.5图像算法开发环境
  8. Django学习——1.创建第一个项目
  9. 深入浅出kafka原理-5-kafka同步副本ISR高低水位HW
  10. 网络:分布式和网络的区别