龙芯BIOS优化:快速构建C环境与汇编压缩

需积分: 9 27 下载量 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的初始化过程将更加高效和灵活,便于后续的维护和升级。