gpt4 book ai didi

powerpc - 如何为 PowerPC 编写裸机 hello world 程序

转载 作者:行者123 更新时间:2023-12-04 13:49:09 25 4
gpt4 key购买 nike

我需要在裸机 PowerPC 系统上编写程序。作为没有操作系统/ bootstrap 的裸机编程的新手,我决定编写一个 hello world 程序来开始。我在谷歌上搜索了一些关于这个的帖子,并发现了一些关于 ARM 的信息,比如 Beagleboard bare metal programmingHello world, bare metal Beagleboard .

我不太清楚它们是否适合移植到 PowerPC 平台。我找不到适合初学者的 PowerPC hello world 示例。有没有人在没有引导加载程序或操作系统的情况下进行 PowerPC 裸机开发的经验?

谢谢。

最佳答案

我为尝试在 Qemu 中启动裸机 PPC 系统而收集的随机笔记/链接 有很多在 ARM 平台上进行嵌入式裸机编程的示例,但 PowerPC 示例似乎很少。

一些ARM链接:

http://opensourceforu.com/2011/07/qemu-for-embedded-systems-development-part-2/
https://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/

构建 GNU GCC 交叉编译器

1) 需要的包

binutils https://ftp.gnu.org/gnu/binutils/

海合会https://ftp.gnu.org/gnu/gcc/gcc-4.1.1/

newlib ftp://sourceware.org/pub/newlib/index.html

广发http://www.gnu.org/software/gdb/gdb.html

2)设置环境变量

$ export TARGET=powerpc-eabi
$ export PREFIX=/usr/local/$TARGET
$ export PATH=$PATH:$PREFIX/bin

3) 构建 binutils
$ tar xjfv binutils-2.17.tar.bz2
$ mkdir build-binutils
$ cd build-binutils
$ ../binutils-2.17/configure --target=$TARGET --prefix=$PREFIX
$ make all
$ make install

4) 构建引导 GCC
$ tar xjfv gcc-4.1.1.tar.bz2
$ mkdir build-gcc
$ cd build-gcc
$ ../gcc-4.1.1/configure --target=$TARGET --prefix=$PREFIX --without-headers --with-newlib --with-gnu-as --with-gnu-ld
$ make all-gcc
$ make install-gcc

5) 构建新库
$ tar xzfv newlib-1.14.0.tar.gz 
$ mkdir build-newlib
$ cd build-newlib
$ ../newlib-1.14.0/configure --target=$TARGET --prefix=$PREFIX
$ make all
$ make install

6) 再次使用 newlib 构建 GCC
$ cd build-gcc
$ ../gcc-4.1.1/configure --target=$TARGET --prefix=$PREFIX --with-newlib --with-gnu-as --with-gnu-ld --disable-shared --disable-libssp
$ make all
$ make install

7) 构建 GDB
$ tar xjfv gdb-6.3.tar.bz2  
$ mkdir build-gdb
$ cd build-gdb
$ ../gdb-6.3/configure --target=$TARGET --prefix=$PREFIX --enable-sim-powerpc --enable-sim-stdio
$ make all
$ make install

示例裸机 Hello World !!!
https://github.com/ara4711/ppc_hw
  • 在 makefile 更改中,PREFIX=$(PROC)-$(TYPE)- 到
    PREFIX=/usr/local/powerpc-eabi/bin/$(PROC)-$(TYPE)-
  • 在 makefile 中将 qemu-system-ppc 的路径提供给 QEMU 变量。
  • 命令 制作 将生成 test.bin。
  • 命令 运行 将加载二进制文件并打印“Test Hello
    world!” 显示在控制台
  • 命令 进行调试 调试测试程序。
  • 按 Ctrl+a 和 x 终止 QEMU

  • QEMU 使用 TCP 连接实现 gdb 连接器。为此,请运行 make debug

    此命令在执行任何访客代码之前卡住系统并等待 TCP 端口 1234 上的连接。从另一个终端运行 powerpc-eabi-gdb 并输入命令:
    target remote localhost:1234
    file test.elf

    这将连接到 QEMU 系统并加载测试程序的调试符号,其二进制镜像已加载到系统内存中。从那里,可以使用 continue 命令运行程序,单步执行程序并进行一般调试。 gdb 中的 exit 命令关闭调试器和模拟器。

    关于powerpc - 如何为 PowerPC 编写裸机 hello world 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26922186/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com