| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 基于ARM-Cortex M3/4的GNU汇编的嵌入式程序设计之三 —— STM32F407G-DISC1的FPU操作 -> 正文阅读 |
|
[嵌入式]基于ARM-Cortex M3/4的GNU汇编的嵌入式程序设计之三 —— STM32F407G-DISC1的FPU操作 |
基于ARM-Cortex M3/4的GNU汇编的嵌入式程序设计之三 —— STM32F407G-DISC1的FPU操作一、简介最近那块陪了我8年的STM32F407-DISC板子烧了。好在公司买了块新的给我,心情大好。打算再鼓捣一下。 为保证操作合规,我们要先查阅技术文档,了解清楚技术参数和初始化的方法。再看看指令集,用指令集做一点测试。最后看看C语言下面生成的语句是否合理。 二、文档说明 - 技术参数和初始化要求首先要说明一点,那就是CM3和CM4的区别就在cm4有浮点运算单元,也就是FPU。内核其他的都是一样的。至于外设,ST的407和103的寄存器设计还是有很大的区别的。比如,407的GPIO设置寄存器就和103的差别非常大。当然,这些外设对于我们操作内核来说是没有影响的。 先看看文档上我们CM4的FPU是怎样的。所谓的使用浮点运算,其实就是用到2个东西:
技术参数 - CM4的FPU是32位单精度的根据Arm? Cortex?-M4 Processor Technical Reference Manual第22页,写得很清楚 初始化方法 - 使能CPACR的CP10和CP11根据上面那个文档的第71页,只要保证CPACR的CP10和CP11是使能的就好。这里如果你去查这个CPACR,你会发现并没有CP8和CP9,看来这个序号用的是8进制。可能是笔者见识少,我感觉现在计算机上用8进制的其实并没有那么多。
三、建立工程笔者是在STM32CUBEIDE下建立的工程。方法如下:
四、测试工程这里,我们做个实验。看看FPU能不能工作。建立Source Folder,名字叫User。User下面建立文件夹Inc和Src。然后将Inc加入到工程的头文件列表里。将main.c的函数写成下面的样子。
编译,会有那么个警告。我们先不去管他。直接Debug。然后发生了下面的事情。 五、做FPU的初始化函数那就按照手册上说的那样,如下操作
第二步我们在User/Src下创建fpu.s。注意是汇编文件哟,不要写成.c了。
这里要按照以前的文章说的那样,建立平板汇编函数,再把技术手册里的代码抄过来,修改一下语法格式。 最后修改main.c文件
测试一下。 可以确认,数值计算正常。 六、CM4的FPU对双精度的测试正如手册上说的,CM4是不具备处理双精度浮点,即double的能力的。
直接编译,发现根本过不去,系统提示:
所以,我们强行调用64位指令运算是不能成功的。但是这里有个例外,那就是 七、总结CM4的FPU: |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:57:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |