【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工具等软件工具。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。

相关推荐
智购科技智能售货柜1 小时前
2026自动售货机峰值交易流量应对方案:从消息削峰到弹性扩容的工程实践~YH
数据库·人工智能·单片机·嵌入式硬件·yolo
泛凡(Linyongui)2 小时前
第四篇、病毒是怎么黑进人体的?DNA病毒与RNA病毒入侵碳基单片机的逻辑完全不同
单片机·嵌入式硬件·程序人生
姓刘的哦3 小时前
STM32的启动流分析
linux·运维·arm开发
lzqrzpt4 小时前
临沂LED驱动电源工程选型与直销工厂评估标准解析
python·单片机·嵌入式硬件
小柯博客4 小时前
06 · 统一 libcamerasrc 与架构定型:3A、CPU 归因与一次黑屏回归
c语言·stm32·单片机·嵌入式硬件·架构·嵌入式·视频编解码
Romantic_love_5 小时前
理解USART真实收发过程
开发语言·stm32·单片机·学习
天空'之城6 小时前
单片机基础核心知识点汇总(十九)
单片机·嵌入式硬件
LCG元6 小时前
STM32 FreeRTOS 多任务实战:信号量同步、互斥量保护与优先级反转排查
stm32·单片机·嵌入式硬件
国科安芯6 小时前
星载CANFD总线通信网络中抗辐射微控制器MCU的失效机理与容错设计研究
网络·人工智能·分布式·单片机·嵌入式硬件·架构·抗辐射加固