小编Ane*_*rma的帖子

直接打印到文本视频内存时出现意外输出

我正在用C开发一个内核,并在屏幕上创建了一些在视频内存上打印的内容.我预计视频内存中的第一个字节将是要打印的字符,第二个字节将告诉颜色.但我的程序有一些不同但它的工作原理!! 这是非常意外和不寻常的.

我的内核代码 -

#define VIDEO_MEM 0xb8000

void write_string( int colour, const unsigned char *string );

void main()
{
    unsigned char *vid = (unsigned char*) VIDEO_MEM;
    int i=0;
    for (i = 0; i < 2000; i++)
    {
        *vid = ' ';
        *(vid+2) = 0x1f;
        vid += 2;
    }
    write_string(0x1f,"The Kernel has been loaded successfully!!");
}

void write_string( int colour, const unsigned char *string ) {
    unsigned char *vid = (unsigned char*) VIDEO_MEM;
    while(*string != 0)
    {
        *(vid) = *string;
        *(vid+2) …
Run Code Online (Sandbox Code Playgroud)

c x86 kernel osdev bootloader

3
推荐指数
1
解决办法
279
查看次数

为 ARM 处理器编写操作系统

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

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

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

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

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

x86 operating-system arm raspberry-pi

0
推荐指数
1
解决办法
2989
查看次数

标签 统计

x86 ×2

arm ×1

bootloader ×1

c ×1

kernel ×1

operating-system ×1

osdev ×1

raspberry-pi ×1