Ane*_*rma 0 x86 operating-system arm raspberry-pi
我最近为 x86 架构开发了一个非常简单的操作系统。但后来我意识到要为 ARM 板(如 RPi)以较小的规模构建它。
我想问一下,ARM指令集和x86有什么不同?
即使在 ARM 板上也有 BIOS 吗?如果没有,是否还有其他方法可以在屏幕或视频内存上打印输出?
要在 Raspberry Pi 上对操作系统进行编程,我需要做哪些更改?
一瞥我所知道的 - 我创建了一个简单的操作系统,它可以在屏幕上打印文字、从磁盘读取并将内核加载到内存中并切换到 32 位模式。
没有与执行硬件抽象的 PC BIOS 等效的层,您需要为处理器中存在的每个特定外设/控制器实现一个驱动程序。
在 ARM 中,大多数外设访问都是内存映射的。有没有独立的I / O空间的概念,或分开IN和OUT类似x86指令传统上使用(虽然PC外围设备越来越多地使用内存映射访问也)。
使显示器工作可能包括启用 LCD 控制器外设,写入有效的行数、列数和时钟分频器值以匹配您的显示器支持的模式,然后写入帧缓冲区。可能会有中断需要处理,或者如果你不介意撕裂,你也可以不用它们。在 PC 上,BIOS 会写入一些有效值,而在 ARM 上,在您在代码中执行此操作之前,可能甚至没有启用显示控制器。
处理器芯片的编程指南中有一整章专用于显示外设。此外,您可能会发现已经为 u-Boot 等引导加载程序编写了代码,在这种情况下,您可以编写操作系统以从引导加载程序配置的任何状态开始。
从嵌入式工程师的角度来看,Raspberry Pi 的不幸之处在于,其编程指南的大部分内容(与 VideoCore 相关的所有内容)只能通过签署 NDA 才能获得。
使用其他工具包之一,例如 BeagleBone(带有 TI OMAP 处理器),您可能会获得更好的运气,其中文档是公开可用的。
| 归档时间: | 
 | 
| 查看次数: | 2989 次 | 
| 最近记录: |