21、片外内存与计算 100,001 位圆周率

片外内存计算100001位圆周率

片外内存与计算 100,001 位圆周率

1. C++ 异常处理与内存扩展

在嵌入式软件开发中,C++ 异常处理能提高实时软件的可靠性,但可能会使项目代码大小增加几十 KB,这取决于编译器对异常处理的实现特性。因此,只有在资源充足时才应启用和使用 C++ 异常。

嵌入式软件项目常通过添加各种片外或总线外内存来增加可用内存,如非易失性 NVM、EEPROM、基于卡的内存、易失性 SRAM、视频 RAM 等。计算密集型应用往往需要比微控制器片内更多的 RAM,而如今微控制器的 RAM 因对硅使用和芯片面积要求高而十分有限。

为增加可用 RAM,可使用外部内存 IC。例如,通过使用外部内存 IC,可将 8 位微控制器目标系统的静态 RAM 扩展至约 2MB。

2. 圆周率计算与相关技术

扩展内存用于计算数学常数 π 的数千位小数,最多可达 100,001 位以上。在相关示例中,会运用多种先进技术:
- 复杂算法
- 将算法复杂度分布到状态机的调用中
- 创建专门的迭代器和容器模板,抽象片外 RAM 访问,使外部 SRAM 能像常规片内内存一样以 C++ 方式使用
- 构建硬件原型,需要注重细节和具备实验室技能

计算 π 采用了所谓的“抽头算法”。该算法能按顺序从左到右计算数学常数的数字序列,类似于水龙头滴水。其简化形式为:
[
\pi = 2 + \frac{1}{3}\left(2 + \frac{2}{5}\left(2 + \frac{3}{7}\left(2 + \cdots\right)\right)\right)
]

3. 硬件设置与
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值