【Arm】如何高效实现2兆字节对齐

1、 概述

在使用 MMU 过程中会涉及到 L2 缓存的大小,那么如何用更少的代码高效实现 2M 字节对齐。

2、软硬件环境

1)、软件版本:Arm DS 2025.0

2)、电脑环境:Window 10

3)、外设硬件:无

3、内容

1)代码内容

复制代码
ldr x5, =Image$$TOP_OF_RAM$$ZI$$Base
sub  x3, x5, #1
ubfx x3, x3, #21, #9
add  x3, x3, #1
sub  x3, x3, x2

ImageTOP_OF_RAMZI$$Base ,分散文件中的 RAM 顶地址。

x2 ,起始的 2MB 块号

2)代码解释

ldr x5, =Image$$TOP_OF_RAM$$ZI$$Base //将链接脚本给出的 RAM 顶地址装入 x5;

sub x3, x5, #1 //将 x5 减去 1 的值放入 x3;

减去 1 的目的是为了"向上取整",通过先移位再加 1 完成,避免使用除法或者循环。

ubfx x3, x3, #21, #9// 提取 x3 的29:21位,最低位是 21,宽度是 9bit,然后再放入 x3;

原始地址区间 (x5-1) 如果刚好落在 2 MB 边界,则 ubfx 结果不变,加 1 后等于"块数";

如果未对齐,则 ubfx 会把低位丢弃,加 1 后相当于"向上取整到下一个 2 MB 边界"。

add x3, x3, #1//加 1,完成向上对齐

sub x3, x3, x2//再减去 x2,得到"需要多少个 2 MB 块"

3)总结

整段代码 实现"向上对齐到 2 MB 并计算块数",没有除法和循环,纯位运算,效率很高。

ubfx 的 9 位宽度隐含了 1 GB 上限,移植时若 RAM 更大需要调整。

亿道电子技术有限公司是国内资深的研发工具软件提供商,成立于2002年,同时在上海、北京、深圳、江苏、珠海、成都、台北均设有办公室。公司面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。

20多年来,亿道电子已经与全球多家知名企业,包括ARM、Altium、Ansys、Qt、Green Hills、Perforce、Minitab、Eplan、TESSY、OpenText、Visu-IT、Ashling、FESCARO、Adobe、Incredibuild、JFrog、PLS等建立了稳固的战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家本土客户,为客户提供芯片级开发工具、EDA设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式GUI工具等软件工具。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。

相关推荐
糖糖单片机设计6 小时前
基于 STM32 与中移 OneNet 的智慧电梯监控平台系统
stm32·单片机·嵌入式硬件·51单片机·语音识别
创界工坊工作室9 小时前
55-基于STC89C52宠物智能饲喂控制系统设计
stm32·单片机·嵌入式硬件·51单片机·proteus·宠物
极客 - L U12 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
AMASENSYS艾马斯13 小时前
变频器滤波器选型与EMC合规建议
驱动开发·单片机·其他·硬件工程·精益工程
2501_9226395816 小时前
率能半导体 SS6628E直流双向马达驱动芯片:20V/7A,覆盖电子锁、玩具、无线充电、机器人四大应用场景
单片机·嵌入式硬件·硬件工程
硅基造物主17 小时前
STM32 从 0 到 1 做智能家居(五):工程结构与代码骨架
stm32·单片机·嵌入式硬件·智能家居
深圳老胡17 小时前
STM32F103 硬件 SPI 与软件 IO 模拟 SPI 最高速度差异详解
笔记·stm32·单片机·代码规范·1024程序员节
smartpi_ai17 小时前
机芯智能离线语音模块实战问答:SU-03T、CI-03T、SU-63T 与 JX-A7T 高频问题排查
人工智能·单片机·嵌入式硬件·ci/cd·语音识别
2501_9226395817 小时前
率能半导体 SS6635E直流双向马达驱动芯片:30V/4.5A,覆盖电子锁、玩具、无线充电、机器人四大应用场景
单片机·嵌入式硬件·硬件工程
wuyk55517 小时前
TinyML 初探:在 MCU 上部署异常检测模型,实现本地振动故障诊断
stm32·单片机·嵌入式硬件·重构