龙芯BIOS优化:快速构建C环境与汇编压缩
需积分: 9 26 浏览量
更新于2024-07-17
1
收藏 387KB PDF 举报
"龙芯PMON代码流程优化方案.pdf"
这篇文档详细阐述了针对龙芯处理器PMON(Power-on Monitor)初始化代码的优化策略,旨在提高代码的可读性和效率。龙芯PMON的原始代码主要由汇编语言编写,虽然C语言部分也占据相当比例,但整体汇编代码量较大,这给代码理解和维护带来了挑战。据估计,汇编代码的行数高达1.5至2万行。
优化方案的核心思想是减少汇编代码的使用,尽早建立C语言执行环境。通过将代码结构模块化,并以树形结构组织BIOS启动流程,可以提高代码的清晰度和可维护性。同时,引入配置表的概念,使得系统在开机时能够自检,如果检测到主板配置与默认配置不符,可以读取配置文件进行初始化,增强了系统的灵活性和适应性。
为了在初始化阶段使用C语言环境,文档提到了CAR(Cache As RAM)技术。由于在初始化初期内存可能不可用,可以利用CPU的高速缓存(cache)作为临时栈。通过锁定cache,防止其内容被交换出去,使cache充当RAM的角色。在cache初始化完成后,将压缩的代码解压到已锁定的cache区域,然后切换到C环境执行。
设计的总体架构如图2所示,包括设置异常处理、初始化cache等步骤,之后锁定部分cache作为C环境的栈。在进入C环境后,首先解压代码到cache,待内存初始化完成,解锁cache,将cache内容刷新到内存,从而避免二次数据迁移。
这种优化方法不仅提升了代码的可读性,还减少了对汇编语言的依赖,同时利用硬件特性实现了C环境的快速启动,提高了系统的整体性能。通过这样的改进,龙芯PMON的初始化过程将更加高效和灵活,便于后续的维护和升级。
2021-09-06 上传
2024-03-02 上传
2019-09-16 上传
2019-10-24 上传
weixin_39840924
- 粉丝: 495
- 资源: 1万+
最新资源
- 工人佩戴安全帽护目镜检测图像数据集
- 行业资料-电子功用-光电探测器—放大器电路和光学拾取器件的说明分析.rar
- 餐厅的食品菜单传单模板
- Excel模板成本分析.zip
- Calculator-java:javaFX中的计算器
- 7色32led.zip
- 基于SSM框架设计的学校志愿者管理网站.rar
- HTML5和CSS3入门指南-精通HTML5和CSS3(系列5之12)
- STM32F103 EMWIN GUI实战:分段存储设备【支持STM32F10X系列单片机】
- 海龟数据集VOC格式+yolo格式29张1类别.zip
- 行业资料-电子功用-光电防碰撞装置的说明分析.rar
- VLOCInterpreter
- 2017年江西理工大学873数据结构考研导师圈点必考题汇编及答案详解
- 基于STM32单片机的电机状态检测系统源码+报告+详细文档+配套全部资料(课程设计).zip
- Excel模板成本核算.zip
- ldp-js-client