我刚拿到了BeagleBoard-Xm,我想知道是否有关于如何在硬件上运行非常简单的裸机软件的详细分步教程?
我问的原因是我想深入了解硬件架构如何工作,从引导程序,链接器,中断,异常,MMU等等.我认为最好的方法是在beagleboard xm上执行一个简单的hello world程序而不用操作系统.没有任何进展,只需启动电路板并在屏幕上获得"hello world"输出.而已!
下一步将是运行一个小型操作系统,可以安排一些非常简单的任务.无需文件系统,只需了解操作系统的基础知识即可.
任何帮助赞赏!
最好的祝福
吉古先生
我在这里有一个更广泛的问题,所以如果有人能指出我可以解释这个问题的文档或文章,那就足够了.毋庸置疑,一天的谷歌搜索让我无处可去,我可以伸出援助之手.
我用BlueZ 5.9 连接到BeagleBoard,我的意图是:
我已经创建了将作为中心连接和操作的Android应用程序,渲染3基本完成.我不知道命令 - 键入的文字内容 - 如何在BeagleBoard上启动Gatt服务器/创建属性.我知道硬件写得很大,所以有可能我的术语完全不正确 - 也就是说,任何帮助都会在完成1和2时得到赞赏,即使它只是朝着正确的方向推进.谢谢!
在板载eMMC上设置和定制我的"主"BeagleBone Black(BBB)和应用程序等之后,我想在其他BBB板上复制它.
复制BBB的最佳方法是什么?
我对选项的理解:
哪种可能/最好?
编辑:我目前的解决方案是使用标准图像(来自BeagleBoe网站)进行闪存,然后让脚本按预期进行所有修改.这包括禁用我不需要的许多服务,安装应用程序和配置东西等.如果有一种更简单的方法来制作带有完整图像的SD卡,我仍然感兴趣.
我有一个beaglebone,我已配置lighttpd运行.目前我在端口8080上运行它并且工作正常.除了我真的想在端口80上使用它.不幸的是它不会在端口80上启动,因为它失败并报告端口已经在使用中.当我通过端口80上的HTTP访问beaglebone时,我当然得到了beaglebone 101屏幕.
这个页面表明我运行systemctl disable bone101.service但是我的版本的Angstrom上甚至不存在该服务.我正在使用从这里得到的Angstrom img ,这是Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.04.13.img.xz.
我目前正在运行所有以下禁用:
systemctl disable cloud9.service
systemctl disable gateone.service
systemctl disable bonescript.service
systemctl disable bonescript-autorun.service
systemctl disable avahi-daemon.service
systemctl disable gdm.service # this disables the Gnome desktop which is maybe irrelevant here, but saves a ton of memory
Run Code Online (Sandbox Code Playgroud)
但我仍然在端口80上遇到问题.
我知道node.js正在提供内容,但即使ps aux显示node.js没有运行(我可以杀死它),似乎再次访问端口会调用node.js.
如何一劳永逸地禁用端口80,以便我可以将其释放以供lighttpd使用?
这是ps aux的完整输出:
root 1 0.2 1.0 4820 2684 ? Ss 17:58 0:01 /sbin/init run_hardware_tests
root 2 0.0 0.0 0 0 ? S 17:58 0:00 [kthreadd]
root …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置x11转发来监控嵌入式机器人平台上的视频,但我似乎无法让电路板生成图形输出.我在直接通过以太网连接的Beagleboard xM上运行Arch Linux(不过,我打算将来使用WiFi).当我尝试设置DISPLAY变量时,它会接受它但是当我尝试运行x11应用程序时会说:
(Object:287): Gtk-WARNING **: cannot open display: [displaynamehere]
Run Code Online (Sandbox Code Playgroud)
很明显[displaynamehere]是我试图设置为显示器的东西,但是没有显示位置似乎工作.有点奇怪的是,每当我通过ssh -X连接时,它都不会给我任何错误,也不会保存我的DISPLAY变量.
(编辑)我还检查了调试日志并得到了这个输出:
debug2: load_server_config: filename /etc/ssh/sshd_config
debug2: load_server_config: done config len = 315
debug2: parse_server_config: config /etc/ssh/sshd_config len 315
debug3: /etc/ssh/sshd_config:53 setting AuthorizedKeysFile .ssh/authorized_keys
debug3: /etc/ssh/sshd_config:75 setting ChallengeResponseAuthentication no
debug3: /etc/ssh/sshd_config:96 setting UsePAM yes
debug3: /etc/ssh/sshd_config:101 setting X11Forwarding yes
debug3: /etc/ssh/sshd_config:104 setting PrintMotd no
debug3: /etc/ssh/sshd_config:108 setting UsePrivilegeSeparation sandbox
debug3: /etc/ssh/sshd_config:124 setting Subsystem sftp /usr/lib/ssh/sftp-server
debug1: sshd version OpenSSH_6.3, OpenSSL 1.0.1e 11 Feb 2013
debug3: Incorrect RSA1 identifier
debug1: …Run Code Online (Sandbox Code Playgroud) 我有一个使用双打的C代码.我希望能够在DSP(TMS320)上运行代码.但DSP不支持双精度数,只支持定点数.将代码转换为定点的最佳方法是什么?是否有一个很好的C库用于定点数(实现为整数)?
c signal-processing fixed-point texas-instruments beagleboard
我一直在为BeagleBoard 的Angstrom Linux发行版工作.任何人都可以指点我的bitbake和OpenEmbedded如何实际工作的教程或参考?例如,当我像这样调用bitbake时:
bitbake virtual/kernel
Run Code Online (Sandbox Code Playgroud)
实际发生了什么?我已经研究了Angstrom的配方并搜索了Angstrom文件系统,但我似乎无法找到对虚拟或内核的引用.我觉得使用这个工具链并制作内核补丁并没有真正了解bitbake的工作方式,我感到有点沮丧.
我想在Beagleboard上使用基于ARM OMAP 的Haskell GHC/Haskell平台.有没有办法在短期内做到这一点,但没有我必须首先交叉编译,例如LLVM,然后GHC等几周?
我正在使用gdb调试多线程应用程序,但是当我在gdb中启动程序时,我收到警告:
警告:无法找到libthread_db匹配劣质的线程库,线程调试将无法使用.
我仍然可以调试,但我不能调试除主线程之外的任何东西.我已经阅读了建议安装软件包libthread-db1和glibc-dbg的论坛,但这并不能解决我的问题.
在我的机器我有3个文件/lib/libthread_db.so.1,/lib/.debug/libthread_db-1.0.so和/lib/libthread_db-1.0.so.我尝试/lib使用名称创建符号链接libthread_db.so,一次指向/lib/libthread_db.so.1文件,另一次指向/lib/libthread_db-1.0.so文件,我也创建了/lib/.debug/libthread_db.so指向的符号链接/lib/.debug/libthread_db-1.0.so,一切都没有运气.
在gdb中我尝试设置libthread-db-search-path为/lib(一旦设置为符号链接,一次设置为libthread_db.so.1,libthread_db-1.0.so也设置为/lib/.debug.
有什么建议?我正在使用Angstrom Linux v2.6.39作为BeagleBoard-xm.
我正试图在我的Beagleboard-xm rev上运行一个'hello world'类型的程序.C,通过puts从程序集中调用C 函数.
到目前为止,我一直在使用它作为参考:http://wiki.osdev.org/ARM_Beagleboard
这是我到目前为止所拥有的,但没有输出.
你好ç
volatile unsigned int * const UART3DR = (unsigned int *)0x49020000;
void puts(const char *s) {
while(*s != '\0') {
*UART3DR = (unsigned int)(*s);
s++;
}
}
void hello() {
puts("Hello, Beagleboard!\n");
}
Run Code Online (Sandbox Code Playgroud)
boot.asm
.global start
start:
ldr sp, =stack_bottom
bl hello
b .
Run Code Online (Sandbox Code Playgroud)
linker.ld
ENTRY(start)
MEMORY
{
ram : ORIGIN = 0x80200000, LENGTH = 0x10000
}
SECTIONS
{
.hello : { hello.o(.text) } > ram
.text : { …Run Code Online (Sandbox Code Playgroud)