头像-138158

aple0807

  • 上海市嘉定区
  • 单片机
  • 医疗电子、工控电子、设计

个人成就

获得 301 次赞

帮助过677人

BSP.zip

本帖最后由 apleilx 于 2016-12-10 17:10 编辑 相比rtx,移植ucosiii可真是不顺利,刚开始移植的3.04运行了一段时间,但是添加浮点数运算的任务后,一运行竟然fault了,编译选项中是使用了fpu的,并且启动文件也开启了fpu。刚开始以为是代码有问题,仔细想想有不对,这些代码在m3上运行都是好好的,m4应该是兼容m3的,猜测可能是fpu配置不对。后来把断点设置在包含浮点数处理的程序中,打断后单步执行看汇编代码,确实使用了fup指令集,单步执行直到代码结束,没有fault,这下更郁闷了,可以确定不是fpu配置问题了。继续跟踪一直到调用系统调度器后,死了。之前没添加浮点数代码的时候运行正常,添加后调度器就死翘翘,没办法了,只好去找度娘,基本上都是说ucosiii官方的代码还不支持m4的fpu,可以通过修改cpu相关的代码来支持,总共有三处要修改,按照网上说的改了两个代码文件,但事实上并没有什么卵用,可能是我的版本不对,也可能是配置不匹配。不管了,去ucos官网找了找,发现有新版本的3.06,下来看看,代码里已经包含了fpu堆栈管理的代码,复制替换掉3.04的文件后再编译下载,一下子就好,那个感觉真是柳暗花明啊。倒腾大半天没搞定,结果换个系统几分钟九好,真应了那句“踏破铁鞋无觅处,得来全不费工夫”..... 下面把ucosiii移植到s6e2cc需要修改的地方罗列一下: 1、启动文件,ucosiii用到两个中断,复制官方的启动文件修改systick 和 pendsv的中断入口代码,用下面的代码替换原有的就可以了。 dcd os_cpu_pendsvhandler ; pendsv dcd os_cpu_systickhandler ; systick pubweak os_cpu_pendsvhandler section .text:code:reorder:noroot(1) os_cpu_pendsvhandler b

  • 浏览量:1056
  • 下载量:141
  • 下载:0IC币
  • 上传者:apleilx
  • 上传时间:2016-12-10