gpt4 book ai didi

x86 - 为 ARM 处理器编写操作系统

转载 作者:行者123 更新时间:2023-12-02 20:58:12 25 4
gpt4 key购买 nike

我最近为 x86 架构开发了一个非常简单的操作系统。但后来我意识到要为 ARM 板(如 RPi)构建较小规模的它。

我想问一下ARM指令集和x86有什么不同?

ARM 主板上也有 BIOS 吗?如果没有,是否有其他方法可以在屏幕或视频内存上打印输出?

要在 Raspberry Pi 上对操作系统进行编程,我需要更改哪些内容?

为了一睹我所知道的 - 我创建了一个简单的操作系统,它可以在屏幕上打印文字、从磁盘读取并将内核加载到内存上并切换到 32 位模式。

最佳答案

没有相当于 PC BIOS 的层来执行硬件抽象,您需要为处理器中存在的每个特定外设/ Controller 实现一个驱动程序。

在 ARM 中,大多数外设访问都是内存映射的。没有单独的 I/O 空间的概念,也没有像传统上使用的 x86 那样单独的 INOUT 指令的概念(尽管 PC 外设也越来越多地使用内存映射访问)。

让显示器工作可能包括启用 LCD Controller 外设、写入有效的行计数、列计数和时钟分频器值以匹配显示器支持的模式,然后写入帧缓冲区。可能需要处理中断,或者如果您不介意撕裂,也可以不处理它们。在 PC 上,BIOS 会写入一些有效值,在 ARM 上,很可能显示 Controller 甚至不会启用,直到您在代码中执行此操作。

处理器芯片的编程指南中将有一整章专门介绍显示外设。此外,您可能会发现已经为 u-Boot 等引导加载程序编写了代码,在这种情况下,您可以编写操作系统以启动引导加载程序配置的任何状态。

从嵌入式工程师的角度来看,Raspberry Pi 的不幸之处在于,其编程指南的大部分内容(与 VideoCore 有关的所有内容)只能通过签署 NDA 才能获得。

使用其他套件之一(例如 BeagleBone(带有 TI OMAP 处理器))可能会获得更好的运气,其中的文档是公开的。

关于x86 - 为 ARM 处理器编写操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39542672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com