我正在学习 x64 和 x86 架构以及汇编语言命令,但我想知道如何将我创建的程序实际烧录到独立处理器上。与 avrs 一样,mcu 是独立的,您购买一个编程器,您实际上可以通过将 lcd 和 gsm 模块连接到输入和输出引脚来创建自己的手机。使用 avr 将编程器连接到计算机的 USB 端口,然后一旦程序被烧录,MCU 就会运行,而无需连接到计算机和屏幕。我的问题是如何在计算机之外对 x64 位处理器进行编程,以便我可以将自己的液晶显示器或电子模块连接到它。请帮助我,因为我读过的所有内容都是在实际计算机上使用 x64 位程序集。还有像 x64 分线板。
2 回答
您使用嵌入式 CPU 的经验让您误入歧途。你试图做的事情是行不通的。
x86 CPU 在“分线板”中不可用。他们需要运行的支持硬件太多了。您将获得的最接近的是标准计算机主板。
与您可能使用过的嵌入式 CPU 不同,x86 CPU 没有板载闪存 - 它们通常从板载闪存芯片(BIOS 芯片)启动,然后从硬盘驱动器或其他存储设备加载程序(操作系统) . BIOS 是非常特定于系统的,最好认为是非用户可修改的。
x86 系统通常没有很多易于使用的 I/O。大多数可用的总线往往采用难以使用的形式,例如 PCIe 或陌生的东西。
如果您想为 x86 开发,请为计算机开发,而不是为独立的 x86 系统(实际上并不存在)开发。如果您想为嵌入式系统开发,请选择其他东西。
您需要从 Intel 获取处理器的特定文档,但基本思想是芯片以 16 位实模式出现并从魔术地址开始执行代码。通常,您以某种方式将某种类型的 EEPROM 设备连接到处理器,以将代码放在该魔术地址中。
然后,您编写并放入该 ROM 的 16 位实模式汇编代码可以根据需要将处理器模式更改为 32 位和 64 位模式。您还需要在此过程中进行 RAM 初始化。从我为英特尔机器开发引导 ROM 开始,我似乎记得英特尔更喜欢对其内存初始化代码保密。也许您找到的文档将帮助您设置所有这些东西,或者您需要与英特尔的销售/应用工程师交谈才能开始。