问题标签 [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.
x86 - 操作系统的引导加载程序不起作用
我正在制作一个自定义操作系统。我有两个 nasm 文件:
启动.asm:
开始.asm:
我使用以下命令将它们编译成 .bin 文件:
然后使用以下命令将它们添加到软盘映像中:
当我从 VirtualBox 中的软盘映像启动时,它显示 2 个感叹号而不是 1 个,甚至在 QEmu (Q.app) 中也无法启动。我是操作系统开发的新手,所以如果有人能告诉我我做错了什么并给我一些关于如何更好地设置我的操作系统的指导,那就太好了。
javascript - 什么是“Javascript 引导加载程序”?
我主要在 Facebook 的源代码中看到Bootloader.setResourceMap({"bMxb7":{"name":....
过 javascript 中的引导加载程序到底是什么?它的用途和目的是什么?
arduino - Arduino 引导加载程序
有人可以解释一下Arduino 引导程序是如何工作的吗?我不是在这里寻找高水平的答案,我已经阅读了代码并且我明白了它的要点。
在 Arduino IDE 和引导加载程序代码之间发生了一堆协议交互,最终产生了许多内联汇编指令,这些指令通过串行接口传输程序来对闪存进行自编程。
我不清楚的是第 270 行:
...我认为这是函数指针的声明和初始化为 NULL。在引导加载程序打算委托执行用户加载代码的地方,随后会调用 app_start。
当然,app_start
在某些时候需要以某种方式获得一个非 NULL 值才能将它们组合在一起。我在引导加载程序代码中没有看到......它是否被引导加载程序加载的程序神奇地链接了?我认为引导加载程序的 main 是芯片复位后进入软件的入口点。
包含在大约 70 条组装线中的一定是秘密解码器环,它告诉主程序 app_start 到底在哪里?或者可能是 Arduino IDE 利用了一些隐含的知识?我所知道的是,如果有人不将 app_start 更改为指向 0 以外的某个位置,则引导加载程序代码将永远自转……那么诀窍是什么?
编辑
我有兴趣尝试将引导加载程序移植到没有用于引导加载程序代码的单独内存空间的 Tiny AVR。对我来说很明显引导加载程序代码依赖于某些保险丝设置和芯片支持,我想我真正感兴趣的是如何将引导加载程序移植到没有这些保险丝和硬件的芯片上支持(但仍具有自编程能力)?
linux-kernel - linux内核ota框架?
在设计我自己的 Linux OTA 堆栈之前,我最好调查一下是否有人知道我可以利用/贡献的现有 Linux OTA 堆栈/框架。
我所说的 Linux OTA 堆栈/框架是一种能够从远程存储库更新我设备上的 Linux 内核的服务。基本上类似于当今大多数 Linux 智能手机上的 OTA 更新功能。它必须是 99.99% 的故障安全,这样我的设备(将在 500 辆汽车上安装 6-12 个月)不会变成需要现场服务才能再次工作的无用砖块。
开源解决方案不是必须的 -完成这项工作的商业解决方案具有同等的利益。
提前致谢。 基督教
bootloader - 将引导加载程序存储在软盘映像的什么位置?
我将编写和测试引导加载程序。为了做到这一点,我打算将引导加载程序复制到软盘映像文件中并将其挂载到 VM 中。
但是,我不确定将引导加载程序的机器代码放在哪里。它只是被转储到文件的前几个字节中吗?
hardware - 哪里有关于低级 PC 引导的好信息?
我有兴趣为 USB 记忆棒编写一个引导加载程序,它会查找 ISO 目录并让您可以选择引导其中一个,就像它是可引导 CD 一样。这基本上是因为我有一个菜单驱动程序,它允许我从 U 盘安装几个不同的发行版之一。
我该去哪里弄清楚如何使这项工作?我是否需要安装某种 BIOS hack 以允许将 CD 块重新映射到文件系统中的块?一旦从 CD 引导有足够的弹珠开始尝试直接访问设备,这将如何工作?
linux - 在 grub 引导程序中使用蓝牙键盘
我想在启动期间在几个操作系统之间进行选择。我如何使用我的蓝牙键盘/手机或至少我的红外遥控器来管理这个?
c - 将自定义引导加载程序写入 .vhd 文件
我有一个自定义引导加载程序,我想将其写入 .VHD 文件进行测试。知道我应该将引导加载程序写入文件中的哪个偏移量吗?任何指向 .VHD 文件格式的 C 结构的指针?
c - 如何将 C 函数放入某个地址范围
我正在为 HCS08 系列微控制器开发基于 USB 的引导加载程序。我在汇编中有引导加载程序代码(适用于串行通信)。我正在从此汇编代码中调用用于 USB 通信的 C 函数(终端<>微控制器)。但是,这些 C 函数似乎没有位于保护区 ROM 中,我可以在 project.map 中看到这一点。它们与我的引导加载程序代码不连续,即我的引导程序代码从 F003 开始,但这些 USB 函数在某些〜1000-2000。我的问题是,如何使这些 C 函数继续使用 ROM 中的 bootloader.asm 代码。
这是程序流程:我有一个 C 主函数,它在上电时跳转到 bootloader.asm。虽然,bootloader.asm 工作正常,但由于非受保护程序 ROM 区域中的 USB 例程,这些也被擦除,此后引导加载程序无法与我的终端通信。
在这方面的任何建议都会非常有帮助。
谢谢