移植 RT-Thread 到 STM32F4XX (支持FPU)
拿到 小苦 送的 STM32F4-Discovery 很久了,谢谢 小苦 .今天终于把RT-Thread移植好了.
1.外设基本和STM32F20X一致,内核增加了FPU部分,所以需要处理FPU的寄存器(如果使用的话).
2.STM32F4-Discovery上面UART1接到ST-LINK了,所以默认启用了UART2(PA2,PA3).
点击此处下载 ourdev_689145LU15RC.zip(文件大小:1.31M) (原文件名:RT-Thread_STM32F4XX.zip) 好消息,刚拿到板子这边就移植好了呀。 回复【楼主位】aozima
1.外设基本和STM32F20X一致,内核增加了FPU部分
-----------------------------------------------------------------------
还增加了DSP部分 用的是什么编译器, MDK4.21好像没有F4系列的 LZ强悍
记号 回复【3楼】gideon518j
用的是什么编译器, mdk4.21好像没有f4系列的
-----------------------------------------------------------------------
4.22 换GNU GCC,上应用模块吧 ewarm 6214有 F4 要是4.22就痛苦了,编辑代码上面,每页标题五颜六色的 mark 回复【7楼】jeffwei
ewarm 6214有 f4
-----------------------------------------------------------------------
6214能找到和谐文件吗?我用之前的版本的不行哦/。 MARK. 回复【10楼】li3p
回复【7楼】jeffwei
ewarm 6214有 f4
-----------------------------------------------------------------------
6214能找到和谐文件吗?我用之前的版本的不行哦/。
-----------------------------------------------------------------------
有和谐,老版本的和谐可用,今天看到6.3发布了..... 标签的颜色有开关可以控制的
http://cache.amobbs.com/bbs_upload782111/files_47/ourdev_689829BUZ3F7.JPG
(原文件名:未命名.JPG) 五颜六色挺好 回复【13楼】amwox
-----------------------------------------------------------------------
额 这样不是得将UART2(PA2,PA3)外接个232片子么。。。
不过貌似没有别的办法 增加了FPU和DSP部分在源码里增加和修改了那些东西? Mark!!!! 呵呵,我的小板子也可以跑一下试试看!!!!!!! 回复【楼主位】aozima
-----------------------------------------------------------------------
请问为什么不断往单片机发送 ( 号,RTT会死机的? mark! mark 昨天晚上终于把FPU的上下文切换完成了。
1. 自动检查FPU是否打开,如果已经打开,则为FPU预留空间。
2. 线程切换时,把FPU的所有寄存器保存并切换。
笔记如下:
1. 为加快中断响应,当发生中断时,虽然会自动对FPU的S0~S15进行压栈,但没有真正压入,
只是预留了空间,并把地址写入FPCAR寄存器。如果在中断中使用硬件浮点指令,此时才真正
进行压栈。一般中断服务函数中都不会使用浮点运算,所以这样对中断延迟基本没有影响(相对cortex-M3)。
2. 对FPU寄存器的操作指令与普通指令基本一致,指令名称加了V前缀。
如切换上下文:
VSTMFDr1!, {d8 - d15} ; push FPU register s16~s31
STMFD r1!, {r4 - r11} ; push r4 - r11 register
LDMFD r1!, {r4 - r11} ; pop r4 - r11 register
VLDMFDr1!, {d8 - d15} ; pop FPU register s16~s31 另外发现, STM32F4-Discovery 使用ST-LINK仿真时,无法显示 FPU 寄存器。而使用软件仿真时是可以显示的。
不知道其它仿真器是否有此现象? mark! IAR 6.3 不能识别 VSTMFD 指令,还是IAR设置错误? 谢谢LZ分享 本帖最后由 rellay 于 2012-9-7 23:00 编辑
aozima 发表于 2012-1-1 11:55 static/image/common/back.gif
昨天晚上终于把FPU的上下文切换完成了。
1. 自动检查FPU是否打开,如果已经打开,则为FPU预留空间。
老大好,刚接触RT-Thread 加 STM32F4。
关于支持FPU,具体要做哪些步骤呢?上面的操作看到是看懂了,就是不会代码实现。
单独的STM32F4 FPU的设置在网上找到了,加中断时线程(没说错吧)FPU的上下文切换,保存浮点寄存器值,其他的又不知道了
新接触这个,啥都不会,汗颜诶,希望老大分享个实现支持FPU的相关工程。 其实应该学习RTEMS,给进程增加是否使用浮点的属性,需要浮点的进程才保存FPU状态 本帖最后由 aozima 于 2012-9-8 17:35 编辑
上面的操作看到是看懂了,就是不会代码实现。
前后矛盾。
希望老大分享个实现支持FPU的相关工程
楼主位的文件就是。 monkeynav 发表于 2012-9-7 23:09 static/image/common/back.gif
其实应该学习RTEMS,给进程增加是否使用浮点的属性,需要浮点的进程才保存FPU状态 ...
这样好,不过没做过,不太懂,欢迎指导。 aozima 发表于 2012-9-8 17:32 static/image/common/back.gif
前后矛盾。
先谢谢老大咯,慢慢学习 谢谢 老大。。 顶起来~~~ 有没有什么学习教程啥的~就好了。 最近看上这个了,学习,谢谢高手 本帖最后由 aozima 于 2013-3-11 15:59 编辑
monkeynav 发表于 2012-9-7 23:09 static/image/common/back.gif
其实应该学习RTEMS,给进程增加是否使用浮点的属性,需要浮点的进程才保存FPU状态 ...
最近看阅读《see MIPS run》里面有讲类似的操作:
默认关闭FPU,但编译生成FPU的指令,
所以当执行FPU指令时,会产生异常,
在这个异常中打开FPU,以后这个线程就是带FPU的了。
貌似所有CPU都可以用这个方式,先留着以后继续研究,欢迎拍砖。 monkeynav 发表于 2012-9-7 23:09 static/image/common/back.gif
其实应该学习RTEMS,给进程增加是否使用浮点的属性,需要浮点的进程才保存FPU状态 ...
多谢您的建议,已添加此功能:update libcpu/arm/cortex-m4: support lazy stack optimized. 支持rtt,非常喜欢感谢
页:
[1]