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. python爬取页面链接
  2. linux需要的GLIBCXX版本,linux-如果我已经安装了GLIBCXX_4.1.2,则需要GLIBCXX_3.4.9吗?
  3. OpenCV3学习(5.1)——图像变换之缩放、金字塔、仿射、透射
  4. windows 2008 快速安装RODC
  5. Atitit webdav 的问题 -------------大文件传输问题 在某些版本的 Windows 操作系统中,WebDAV 驱动器的最大文件大小被限制为 50MB。如果你试图复制超过 5
  6. zookeeper安装和应用场合(名字,配置,锁,队列,集群管理)
  7. 麻省理工 城市规划 计算机,麻省理工学院建筑设计与城市规划科研
  8. SAS学习7(gpolt过程、gchart过程、图形输出、ods功能、假设检验,ttest过程,rank过程,秩和检验(非参数检验))
  9. SD卡和SDHC卡操作
  10. 将UTC、EST时区的时间转化成北京时间(python)
  11. oracle 截取时间年或月
  12. 20款常用的在线配色工具
  13. flink入门3-Flink连接Kafka、Redis,实现Kafka Source/Redis Sink
  14. bulk es 删除_ES bulk 批量操作
  15. 玩魔兽争霸无故退出 提示框显示0x21101663指令引用的0x02704acc内存该存不能为read 确定就会终止程序...
  16. dmx512 java,stm32 DMX512核心代码
  17. 机器学习(1): 线性回归——最小二乘法 小结
  18. 怎样用java实现文件比较,判断是否是同一个文件
  19. 丹佛斯冷媒尺汉化下载_下载适用于Android的冷媒尺 Refrigerant Slider - Appszoom
  20. Markdown 换行,空格

热门文章

  1. 怎样让手机打电话显示不在服务器,不想接电话,不想开飞行模式,教你一招打电话手机变空号...
  2. wildfly常用配置说明
  3. CSS进阶(6)- 居中总结
  4. 轻松上手CSS Grid网格布局
  5. Etyma01 ced ceed cess
  6. layui实现导出全部数据Excel
  7. 高中必备学习软件_高中党必备高效学习软件
  8. 我的2021年度书单(主要教你面试怎么装B)
  9. 你们昨天留言要的图在这里
  10. set和setenv的区别