嵌入式linux内核 浮点运算,Cortex-M3内核浮点型运算的研究与实现

文章探讨了在Cortex-M3内核下进行浮点运算的方法,包括浮点数格式、浮点数的加减乘除运算,并详细阐述了运算过程和实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一些较为复杂的运算中,经常需要处理取值范围大、精度高的浮点型数据。但一般的低端嵌入式内核中没有浮点型硬件运算器,因此处理语音信号等数据比较困难。本文提出了一种基于Cortex-M3内核的浮点型运算的处理方法。

1 Thumb-2指令集与COrtex-M3内核结构

Thumb-2指令集具有以下优点:许多指令(包括乘法相关指令、突破性的32位硬件除法指令等)都是单周期的,并且位段处理指令取指都按32位处理。

Cortex-M3是一个32位处理器内核,采用哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。它具有如下特点:功耗低,有睡眠、停机和待机3种模式;实时性好;响应中断快,而且响应中断所需的周期数是确定的;采用Thumb-2指令集,使得代码

密度和执行效率更高。

2 浮点数的格式

IEEE的浮点型数据标准规定,浮点数具有单精度(4字节)、双精度(8字节)和扩展精度(10字节)三种浮点型格式。在实际的应用中,使用最多的是单精度浮点数,格式如下:

ef5be194d2ff359672422d1efb9568eb.png

浮点数表示为:X=MsEsEm-1…E1E0 M-1M-2…M-n。IEEE标准规定:阶码用移码;尾数的符号位用1表示负数,0表示正数;尾数的数据位用原码表示,并且隐藏了第24位(即M-1),M-1为1,所以尾数是大于等于0.5小于1的小数。

阶码用移码表示、尾数用原码表示浮点数的好处&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值