原子哥,参考开发板移植ucos出现的困惑

2019-07-21 03:42发布

移植这个整整搞了两天,都没有搞明白为什么,真为自己的智商感到着急
1,”探索者实验例程55 ucos实验1--任务调度“里面 是不是必须在MDK开启FPU功能?我移植后,当我开启FPU时  编译不会出错,
不开启时  会编译出错,出错信息如下
2,当开启了FPU,编译正常后,我按照实验例程编写程序进行测试,结果出现蛋疼的问题,不知道为什么。情况如下,
当我开启FPU,但不选择微库时  ,程序会死在OSStart,进入hardfult。
当我当我开启FPU,并选择微库时  程序运行正常。
3,我的代码中没有使用printf。我使用的是MDK5.13,是否跟这个有关?
4,奇怪的是,直接用MDK5.13打开原子哥的”探索者实验例程55 ucos实验1--任务调度“工程,这个工程FPU默认是开启的。不选择微库时,程序可以正常运行,但是选择了微库后,程序会进入hardfault,跟我移植的程序的情况刚好相反。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-21 06:49
MDK5.14版本,直接编译下载,没有任何问题.(SYSTEM/SYS里面要拷贝几个文件进去,否则报错,参见源码)
正点原子
2楼-- · 2019-07-21 08:55
你用MDK5.13直接打开我们的例程,里面的这些选项,是和你上面列举的一样么?
磨剑
3楼-- · 2019-07-21 09:47
 精彩回答 2  元偷偷看……
磨剑
4楼-- · 2019-07-21 10:41
回复【2楼】正点原子:
---------------------------------
直接打开的设置,如2楼所示
磨剑
5楼-- · 2019-07-21 12:34
回复【2楼】正点原子:
---------------------------------
刚刚试了下,我发现原子哥的“探索者实验例程55 ucos实验1--任务调度”例程,在设置里面勾选了microlib,编译没问题,运行时会进入hardfault,是因为microlib不支持操作系统的原因吗?奇怪的是,我移植的程序刚好相反,要勾选microlib,才能正常运行,为什么?
磨剑
6楼-- · 2019-07-21 18:19
回复【2楼】正点原子:
---------------------------------
原子哥,我把你的例程os_cpu_a.asm文件里的与FPU相关的指令屏蔽掉,而工程里面的FPU开关是打开的,这时我的程序运行到任务切换的时候会出错吗?求回复。。。

一周热门 更多>