问题标签 [bare-metal]

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 投票
2 回答
905 浏览

embedded - AM335x DDR2 初始化 EMIF

我在一个裸机项目中为德州仪器公司的 ICE 评估板上的 DDR2 内存初始化 EMIF 和 DDR_PHY 时遇到问题。我根据 StarterWare 引导加载程序示例中的序列编写了一个初始化序列。但是我无法让 DDR 工作。

控制器运行整个过程,但是我在调​​试器中执行的每一步 DDR 看起来都是随机的。我正在监视 0x80000000。使用调试器写入该区域也不起作用。状态寄存器显示 PHY 未就绪。

我错过了什么吗?我有一个或另一个命令的错误顺序吗?有人可以建议吗?

这是我的代码:

设置了以下#defines:

0 投票
1 回答
2364 浏览

assembly - 在 ARM Cortex-A 上启用 MMU 的问题

我正在尝试在 ARM Cortex-A9(在 QEMU 中)上启用 MMU。我所有的代码和数据都在内存的第一个 MB 内,所以我相信一个 L1“部分”条目应该足以建立一个覆盖我需要的所有内存的身份映射。这是我要执行的步骤:

在地址处创建一个0x16000具有值0x00000c02的 L1 条目(L1 条目格式的文档在ARM 体系结构参考手册B3.5 部分中 - 仅作为 PDF 提供,因此我无法直接链接)。L1 表中的所有其他条目都归零。

将 TTRB0 设置为0x16000(我已检查 TTBCR.N 为 0):

禁用 I 和 D 缓存,使 TLB 无效,将域访问控制寄存器 (DACR) 设置为全一(禁用所有域的权限检查):

启用 MMU:

但是在启用 MMU 后,我立即得到预取中止,并且调试器无法访问任何内存。谁能看到我错过了什么?

0 投票
3 回答
502 浏览

c - 无法让 2 个 LED 工作。[树莓派,裸机]

我面临一个问题是让 2 个 LED 一个接一个或同时发光。但是,它们一次只能单独工作一个。当我尝试在同一个程序中实现这一点时,问题就来了。只有第一个 LED 开始闪烁而不是另一个。以下是我的代码:

0 投票
2 回答
10695 浏览

linux - 如何在 linux 上设置 i686-elf 交叉编译器?

当我关注 OSDev Wiki 上的 Bare Bones 教程时。我得到了错误:

我在运行命令时尝试遵循 GCC 交叉编译器说明:

我得到了错误:

如何设置我的 GCC 交叉编译器以使用本教程?

0 投票
2 回答
3327 浏览

c - 使用裸机树莓派调用 printf 到 uart 时应用程序挂起

我正在尝试在树莓派上实现一个裸机应用程序,并希望将标准输出连接到迷你 uart 以进行调试。

我已按照此处此处概述的流程进行操作

我创建了一个 uart_putc 函数,它似乎工作得很好,允许我将消息打印到我的 PC 的 COM 端口。然后我实现了 _write 系统调用,使其调用我的 uart_putc 函数进行输出。如果我将单个字符串文字传递给 printf 附加文字参数或任何非文字参数,则此方法工作正常,没有任何内容打印到串行端口,并且在几次调用后,应用程序挂起。

有谁知道可能出了什么问题?如果需要,很高兴提供更多信息...

...

...

更新

我正在使用 newlib 并且 _write 在直接调用时可以正常工作。snprintf 似乎表现出同样的问题,即

我的 _sbrk 实现是从我的 OP 中引用的页面中删除的

链接器脚本

开始.s

更新 2

涉及 snprintf 的进一步实验:

0 投票
1 回答
1040 浏览

ubuntu-14.04 - 如何将物理机添加到 Ubuntu MAAS

我正在尝试使用两台物理服务器设置 MAAS 集群。两台服务器都已使用 ubuntu 14.04 启动,我在两台服务器上都安装了 Maas。我在 node1 上有一个集群区域,但不知道将其他物理机器添加到该区域。完成后,我希望在两个实例上都部署 Juju,理想情况下它应该能够从 node1 控制这两个实例。文档有点混乱。有人可以建议/指导我如何实现此设置吗?

0 投票
1 回答
800 浏览

python - AttributeError:类型对象“ManagerWithFind”没有属性“client”

我是 python 和 openstack 的新手,所以请不要失去你的冷静 :)

在这里,我试图实例化 BareMetalNodeManager 类对象(来自 np_orchestration.py)。

np_orchestration.py

此类(位于 baremetal.py 中)需要 base.ManagerWithFind 作为参数(这是一个抽象类)

裸机.py

尝试这样做时出现以下错误:

可以在这里找到完整版的 baremetal.py:https://github.com/openstack/python-novaclient/blob/master/novaclient/v1_1/contrib/baremetal.py

0 投票
1 回答
1472 浏览

beagleboneblack - Beaglebone Black JTag segger

我正在使用带有 arm-none-eabi 工具链的 Ubuntu linux 下的 Segger J-link 在 Beaglebone Black 上进行裸机编程。

所以现在我每次都会收到错误 No source aviailable for "0x ...."

当我暂停骨骼时,我在反汇编中得到以下信息:

当我开始调试程序时,J-Link 会正确重新启动骨骼,但随后 linux 会启动,而不是我的程序。

0 投票
2 回答
2736 浏览

functional-programming - 函数式编程语言和裸机代码?

我发现现代函数式编程语言和一般范式非常有趣。许多函数式编程语言能够通过使用 C 作为中间语言或使用它们自己的代码生成器来生成高效的本机代码。我说的是 Haskell、OCaml、LISP 或 Scheme(SBCL、Chiken、Gambit 等)等语言。但是知道函数式编程语言需要一个大的运行时库,通常用 C 实现(例如用于垃圾收集),我想问是否真的可以用这种语言创建裸机代码并且只使用它而不使用它需要回到 C 语言(例如用于操作系统开发,或在没有操作系统的嵌入式设备上运行本机代码)?有没有什么函数式编程语言 t 依赖于运行时(即使它是一个语言子集)?是否有任何功能语言可以让我重新实现它需要的运行时(例如 Ada、D、Nimrod、Pascal 等语言具有用该语言本身编写的运行时)?这些天我有哪些替代功能语言用于裸机开发?

0 投票
1 回答
3922 浏览

ada - STM32F4 (Cortex-M4) 上的 Ada

我刚刚偶然发现这篇文章,指出存在 Ada 语言到 Cortex-M4 微处理器的端口。这似乎令人兴奋,但不幸的是我在AdaCore上没有发现这样的迹象。

我们的目标是 STM32F407 或 STMF417 裸机。Ada 的实时扩展对我们来说至关重要。

我们最好使用 GPL 版本的工具。但是,作为一所大学,我们可以访问相应的大学版本的开发套件。

任何人都可以与 Ada 在 Cortex-M4 甚至 STM32 上分享经验,如果有的话?

我最终找到了正确的下载,甚至包括 STM32F4 的示例项目。凉爽的。