BSP.zip

  • 浏览量:1060
  • 下载量:141
  • 资料大小:3.87 KB
  • 日期:2016-12-10
  • 上传者:apleilx
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    本帖最后由 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
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换