问题标签 [bootloader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
460 浏览

linux - 使用 GRUB 的自定义代码?

我可以在 GRUB 加载时运行一些自定义代码吗?换句话说,GRUB 是否提供了在加载任何操作系统之前运行一些自定义代码的工具?

0 投票
2 回答
620 浏览

c++ - 引导加载程序上的线程

我在哪里可以找到有关如何在 x86 架构引导加载程序上实现线程的资源/教程……假设我想在显示进度条的同时在后台加载资源……

0 投票
4 回答
2891 浏览

c - GCC, ARMboot - 创建没有任何库和任何操作系统的独立应用程序

我有一个嵌入式硬件系统,其中包含基于ARMboot的引导加载程序(与 Uboot 和 PPCboot 非常相似)。

该引导加载程序通常用于从闪存加载 uClinux 映像。但是,现在我正在尝试使用这个引导加载程序来运行一个独立的 helloworld 应用程序,它不需要任何链接库。实际上,它只包含while(1){}main 函数中的代码。

我的问题是我找不到应该使用哪些 GCC 设置来构建独立的格式正确的二进制文件。

我确实使用以下构建命令:

这会产生警告消息:
警告:找不到条目符号_start;默认为 00000004

此后,在引导加载程序中,我上传了一个生成的应用程序并在某个地址启动它:

但它不起作用:(系统重新启动。

通常它应该只是挂起(因为while(1))。

0 投票
2 回答
794 浏览

bootloader - 从引导加载程序打印字符

我正在尝试使用代码从引导加载程序打印字符

按照编写 Hello World Bootloader中的指示。但它只是挂起而不打印任何东西。我们如何调试这个?我已经使用以下代码成功创建了悬挂引导加载程序

我正在 VMware 3.0.0 build-203739 上测试我的代码。

0 投票
2 回答
673 浏览

c - C/Assembler - 在没有堆栈的单用户、单任务操作系统中返回代码

我有一个简单的引导加载程序,它初始化和准备 SDRAM。然后它从 Flash 加载一个应用程序并在 RAM 中的某个地址启动它。应用程序完成执行后,系统会重新启动。没有系统堆栈。

现在,我希望这个引导加载程序在应用程序完成执行后接收控制权。引导加载程序(我们称之为操作系统)还必须读取应用程序的返回码。

应用程序如何将值返回给调用操作系统以及调用操作系统如何取回控制权?我想,它可以使用中断来完成——操作系统有一个特殊的常驻函数和一些中断,每个应用程序只是在自己的执行结束时调用这个中断。但是如果没有系统堆栈,操作系统如何读取返回码呢?

0 投票
4 回答
8693 浏览

bios - 0000:7c00 处的内存对引导顺序有什么意义?

为什么 bios 在 0000:7c00 处读取分区的引导记录?这个地址有什么特别之处?':' 在引用地址时做什么?

0 投票
3 回答
5366 浏览

operating-system - 如何从第一阶段加载第二阶段引导加载程序?

我编写了简单的第一阶段引导加载程序,它使用 BIOS 中断显示“Hello world”。现在作为编写第二阶段的下一个明显步骤,但是应该存在哪里的代码以及如何从第一阶段加载它?

这是第一阶段的程序

0 投票
3 回答
674 浏览

linux-kernel - 为什么不只是普通文件而不是 initramfs 或 initrd?

linux 内核使用一种 ram 磁盘在早期引导阶段访问模块。出于好奇,我想了解我有一个问题:在这个阶段,内核必须可以访问包含 initramfs/initrd 的文件。这意味着内核必须支持适当的文件系统。那么为什么 initramfs 的内容不能和普通文件在同一个文件系统中呢?

0 投票
2 回答
5783 浏览

assembly - 在汇编中开发引导加载程序

我已经在 Assembly 中完成了我的操作系统的一部分,但现在我也想为它构建一个自己的引导加载程序,而不是使用 GRUB。当我在 Assembly 中开发我的测试操作系统时,我记得我是这样引导它的:

这个我已经知道了。现在我想使用它并执行“真正的”操作系统,它将是一个写入软盘第二扇区的 *.bin 文件。然后我想知道一些事情

  • 如何在 Assembly 中执行引导加载程序以执行将在软盘的第二个扇区开始的内容?
  • 我需要将任何东西添加到将放置在软盘第二扇区的程序集源中吗?
0 投票
1 回答
6027 浏览

command-line - 如何让 uBoot 与 squashfs 一起工作/uBoot 中的 FDT 是什么?

我设置了 Kamikaze 工具链(来自openwrt ),并为AMCC PPC405ex kilauea参考板编译了 Linux 2.6.30.x 内核。但是,由于某种原因,我在 uBoot 中做错了,因为我无法从 squashfs 映像运行内核。图像通过 tftp 加载并解压缩,但控制台输出未启动。

我没有更改 Linux 内核命令行,它看起来很好(console=ttyS0,115200 root=/dev/mtdblock)。我也有点疑惑uBoot中的fdt是什么?

我不完全确定这是否真的属于 stackoverflow,但话又说回来,这也不是一个真正的 superuser.com 问题(因为这与开发环境有关,所以它肯定与编程相关,即使不完全是编程问题)