bootloader相关内容

为什么我的汇编子例程被调用,即使我没有在引导加载程序中调用它

我目前正在开发一个bios引导加载程序,我是汇编语言的新手。我一直在阅读它,我了解它的工作原理,但有些事情涉及到我的汇编语言代码的执行顺序,我不理解。 那么基本上我的subrouteprint是如何被调用的,即使我没有调用它。 第二,它如何分配bios幻数,如果它一直位于文件的末尾,即使我没有到达。 如有任何帮助,我将不胜感激,谢谢。 [ORG 0000:7C00] global ..
发布时间:2022-08-23 21:37:39 其他开发

使用INT 16h的刷新键盘缓冲区x86组件

我有疑问,因为我的代码不工作。我正在实现一个运行下面代码的引导加载器,当我尝试加载它时,它只在少数情况下有效,如下所述。我的代码是下一个: ChangeGameState: mov cx, 00H ;Here I make a delay mov dx, 3240H ;. mov ah, 86H ;. int 15h ..
发布时间:2022-07-11 23:49:29 其他开发

赤框中的泛格式提供超时

我有一个定制的IMX 6UL板,带有Barebox(部分)功能。检测到Semper s25hs512T闪存(在驱动程序/mtd/spi-nor/spi-nor.c中添加了必要的设备ID后) 问题-我的主板没有以太网或可拆卸SD。我需要烧录s25hs512上的引导加载程序/闪存。我需要相应地格式化闪存并复制其中的文件。 我的DTSI &qspi { pinctrl- ..
发布时间:2022-05-26 18:15:22 服务器开发

如何在APP(Stm32f4 HAL)中更改SCB->VTOR?

我为STM32F4构建引导加载程序,并使用在system_stm32f4xx.c文件中手动更改scb->VTOR的Vect_TAB_Offset值构建用户应用程序,但如果我在应用程序中这样做的话。它工作不正常。 我在main()的开头调用了SCB->VTOR=0x8040000,但它不起作用。BOOTLOADER USER APPLICATION 推荐答案 启动代码在main() ..
发布时间:2022-04-10 17:46:52 其他开发

NASM:%Include文件中操作码和操作数的组合无效,报告的行号是否已超过末尾?

我正在构建一个简单的操作系统,并尝试从引导加载程序中获取屏幕上的一些文本。 每当我编译它(nasm -fbin bootloader.asm)时,都会出现以下错误: print.asm:23:错误:操作码和操作数的组合无效 我不明白出了什么问题,print.asm甚至没有那么多行,所以不清楚NASM不喜欢哪行。 这是bootloader.asm: [org 0x7c0 ..
发布时间:2022-04-06 11:04:56 其他开发

如何在 Stellaris 中的程序之间跳转

我正在为 Stellaris LM3S1607 芯片开发引导加载程序.我正在使用 Keil MicroVision4 C 编译器.这个想法是创建 2 个独立的固件,一个将更新另一个.在固件 1 中,我下载了固件 2 文件并将其写入地址 0x3200 的闪存.直到这里它正在工作.我还验证了数据是否正确写入闪存.现在我有两个应用程序.一个是我的 uip 引导加载程序,而 seoncd 一个是我的主要项 ..
发布时间:2022-01-25 12:10:03 其他开发

从 UEFI 应用程序内部运行 UEFI shell 命令

我是 UEFI 应用程序开发的新手. 我的要求是, 我需要从我的 UEFI 应用程序 (app.efi) 源代码运行 UEFI shell 命令.需要有关如何执行此操作的指导. 例子, UEFI shell 中的 cp 命令用于将文件从一个路径复制到其他.我想在我的应用程序中以编程方式执行此操作(app.efi) 源代码. 编辑:我正在寻找类似于 system("com ..
发布时间:2022-01-23 08:41:21 其他开发

在 qemu 中使用 gdb 调试引导加载程序

Freedos 引导加载程序似乎存在问题.(在某些情况下,引导代码似乎找不到内核.) 所以我正在尝试使用 gdb 调试 qemu 中的引导加载程序.按照在几个 wiki 和免费在线课程资料上找到的说明,我像这样运行 qemu qemu-system-i386 -fda fdboot.img -boot a -s -S 然后像这样连接gdb $ gdb(gdb) 目标远程 localho ..
发布时间:2022-01-20 20:20:35 其他开发

为什么我们需要在嵌入式设备中使用引导加载程序?

我正在 ARM cortex-A8 上使用 ELinux 内核. 我知道引导加载程序是如何工作的以及它在做什么.但我有一个问题 - 为什么我们需要引导加载程序,为什么引导加载程序诞生? 为什么我们不能在没有引导加载程序的情况下直接将内核从闪存加载到 RAM 中?如果我们加载它会发生什么?其实处理器是不支持的,但我们为什么要按照流程来呢? 解决方案 引导加载程序是一种计算机程 ..
发布时间:2022-01-17 13:33:24 服务器开发

没有操作系统直接运行的程序的名称是什么?

当我尝试就该主题提出其他问题时,我很难正确表达我的问题,那么直接在相关机器上运行的程序的正确名称是什么? 这个术语既可以描述内核,也可以描述引导加载程序,因为它们在没有操作系统的情况下直接执行? 解决方案 C 标准将其称为“独立环境",这让我觉得这个术语与我见过的大多数其他术语一样好用.p> ..
发布时间:2022-01-11 23:33:19 其他开发

UEFI 是如何工作的?

我在研究引导加载程序时正好遇到了 UEFI 这个词.我可以理解一些关于 UEFI 的事情.但是,带有 UEFI 的系统在什么模式下(Real、Protected、Long)启动?如果正常的引导加载程序无法与 UEFI 一起工作,那么在处理 UEFI 时引导加载程序的替代方案是什么?除了汇编之外,我还需要任何其他编程来创建它吗? 解决方案 UEFI固件运行在64位平台的64位长模式和32位平 ..
发布时间:2022-01-11 23:25:12 其他开发

如何制作可启动的 iso(不是 cd 或闪存驱动器)来测试您自己的引导加载程序?

我正在尝试编写一个引导加载程序(hello world 排序).我正在使用 Bochs 进行模拟(平台 Linux-Ubuntu).但我无法为我的二进制文件制作可启动的 iso.虽然在教程中使用了 VFD(虚拟软盘),但它适用于 windows 平台.这是我的引导加载程序代码(仅用于测试) ;**************************************************;引 ..
发布时间:2022-01-11 23:21:58 其他开发

如何将编译好的引导扇区放到 U 盘或磁盘上?

我实际上对操作系统的工作原理很感兴趣,从引导过程中的 POST 到内核、GUI 等. 我必须从头开始:引导扇区 大多数教程仅指定如何将您的 .bin 引导程序安装到供 Linux 用户使用的 USB 记忆棒上. 但是当我使用 XP 时,我想问一下如何将我的 512 字节 .bin 放到我的 USB 上的正确位置,这绝对不是通过资源管理器复制它:D 解决方案 我经常使用的W ..
发布时间:2022-01-11 23:01:18 其他开发

int 13h 42h 在 Bochs 中不加载任何东西

我将引导加载程序从 CHS 更改为 LBA,因此我将 int 13h 02h 替换为 int 13h 42h.它在 QEMU 中正常工作,但是,我在使用 Bochs 和我的笔记本电脑运行它时遇到了麻烦. 我使用 dd if=main.bin of=/dev/sdb bs=512 将引导加载程序写入 USB 闪存驱动器.笔记本电脑加载英特尔 UNDI 并给我以下错误:No bootable d ..
发布时间:2022-01-06 12:48:37 其他开发

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

我正在用 C 开发内核,并创建了一些可以在视频内存的屏幕上打印的内容.我希望视频内存中的第一个字节是要打印的字符,第二个字节告诉颜色.但我的程序有一些不同的东西,但它有效!!这是非常出乎意料和不寻常的. 我的内核代码- #define VIDEO_MEM 0xb8000void write_string( int colour, const unsigned char *string ); ..
发布时间:2022-01-06 12:31:53 其他开发

如何用C编写linux启动代码?

我是学习操作系统开发的新手.从我读的书中,它说引导加载程序会将第一个 MBR 复制到 0x7c00 中,并从那里以实模式启动. 而且,示例以 16 位汇编代码开头.但是,当我查看今天的 linux 内核时,arch/x86/boot 有 'header.S' 和 'boot.h',但实际代码在 main.c 中实现. 这似乎对“不编写程序集"很有用.但是,这在 Linux 中具体是如何 ..
发布时间:2022-01-04 22:32:20 其他开发