我需要在裸机PowerPC系统上编写程序。作为没有OS / bootloarder的裸机编程的新手,我决定编写一个hello world程序来启动。我在Google上搜索了一些相关信息,并发现了一些有关ARM的信息,例如Beagleboard bare metal programming或Hello world, bare metal Beagleboard。
我不太清楚它们是否适合移植到PowerPC平台。我找不到适合初学者的PowerPC的hello world示例。是否有人在没有Bootloader或OS的情况下有PowerPC裸机开发的经验?
谢谢。
首先,这是哪个CPU?其次,CPU并不是万能的。
如果没有起点,则可以研究要为其编写此代码的体系结构的BIOS。然后,您可以编写一个引导扇区,为您提供所需的输出。查看此页面以获取一些示例:Rough guide to assembly
我为试图使裸机PPC系统在Qemu中启动而收集的随机注释/链接。到处都有很多在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/
GCC https://ftp.gnu.org/gnu/gcc/gcc-4.1.1/
newlib ftp://sourceware.org/pub/newlib/index.html
GDB 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)构建newlib
$ 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
示例裸机你好世界!!!https://github.com/ara4711/ppc_hw
在makefile更改中,PREFIX = $(PROC)-$(TYPE)-PREFIX = / usr / local / powerpc-eabi / bin / $(PROC)-$(TYPE)-
在makefile中,将qemu-system-ppc的路径提供给QEMU
Command make
Command make run
命令进行调试
按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命令同时关闭调试器和仿真器。