龙芯软件开发(7)--编译PMON指南
2006-12-24 10:27
309 查看
编译PMON指南
蔡军生
为了学习怎么样开发龙芯的BIOS,也就是PMON。经历好几天深夜的探索,遇到各种各样的问题,后来又上论坛问到kkmao,总算解决了,在这里谢谢kkmao的帮忙。现在就把我的编译过程介绍一下。
一、下载SVN工具
由于要下载PMON代码,就要使用SVN工具。目前,所有的代码都是按版本控制形式保存在服务器上的,并且没有打包的代码,这样就需要使用SVN的工具来下载代码。如果在WINDOWS下,就要下载WINDOWS的SVN工具。如果在LINUX下,就需要下载LINUX的GETIT工具。
二、注册帐号
先到网站dev.lemote.com上面注册一个帐号,然后才能登录进入开发网站,否则不能登录进去的,由于目前没有开通诺名功能。注册帐号后,就可以登录网站dev.lemote.com,然后通过SVN的工具下载http://dev.lemote.com/svn/pmon-lm2e/branches/kkmao/分支的代码和文档。
三、安装交叉编译器
当你从dev.lemote.com上下载完所有代码后,就可以到目录/kkmao/tools/compiler下面找到交叉编译器,它的名称是mips-elf.tar.gz。这是一个压缩包,当然要解压后才能使用。那么需要解压到那里呢?通常都是解压到目录/usr/local/下面,这样就形成目录:/usr/local/comp/。
四、设置交叉编译路径
上面已经把交叉编译器安装好后,并不能直接在任何路径里就运行它。比如到目录Targets/Bonito/compile/Bonito下,如果运行make就会出错,因为它找不到编译mips-elf-gcc。如果要找到它,就需要把它所在的目录加到当前环境变量里,这样才可进行编译。而在LINUX下,设置环境变量,需要打很长的字符,为了不用每次都浪费这么多功夫,就可以写一个bash的脚本文件go.sh,它的内容如下:
#!/bin/sh
export PMONBASE=$(pwd)
export PATH=/usr/local/comp/mips-elf/gcc-2.95.3/bin/:$PMONBASE/bin:$PATH
然后打开终端显示窗口,就可以用source go.sh来运行这个脚本,这样会把交叉编译器的路径添加到当前运行的路径里,这样就可以在任何地方找到交叉编译器了。
五、生成pmoncfg工具
在我没有问kkmao之前,根本就不知道还需要这样的一个过程。因此,就编译不通过。由于PMON是根据配置选择不同的源程序进行编译,所以就需要一个工具来分析那个配置文件,而这个工具就是pmoncfg。生成这个工具要到目录tools/pmoncfg下面,然后运行make就会生成pmoncfg工具。
六、配置Bonito文件
进入Targets/Bonito/conf目录,选择一个Bonito配置文件。在目前龙芯里是选择Bonito.notebook配置文件,为了方便运行,就进行符号连接。再接着运行pmoncfg工具来生成目标源程序的目录。执行下面的命令:
ln -s Bonito.notebook Bonito
tools/pmoncfg/pmoncfg Bonito
这样就形成目标目录Bonito了。
七、编译PMON
进入到上面生成的目录Targets/Bonito/compile/Bonito里,然后运行make,就会生成pmon.bin文件。接着再到zloader目录make,或者直接到zloader下面make,
最后在zloader目录生成gzrom.bin文件,就可以烧到龙芯的Flash存储器里,就可以进行主板初始化了。(模拟器也可以运行)
八、模拟器运行PMON
解压gxemul-0.3.8-good.tar.gz源程序,然后进入到目录里,运行./configure文件,就会生成makefile文件。接着运行make文件就可以生成模拟器gxemul。如果把pmon.bin文件拷贝到这个目录下,就可以如下运行:
./gxemul -Xe bonito 0xbfc00000:pmon.bin
这样就可以运行PMON了,上面的命令行意思是输出到X窗口,而代码ROM开始地址是0xbfc00000,也就是从那里取第一条指令。
在我的LINUX里可以编译通过gxemul-0.4.2.current.tar.gz,但运行它时,就不支持-X参数,这个问题我也没有搞清楚。
蔡军生
为了学习怎么样开发龙芯的BIOS,也就是PMON。经历好几天深夜的探索,遇到各种各样的问题,后来又上论坛问到kkmao,总算解决了,在这里谢谢kkmao的帮忙。现在就把我的编译过程介绍一下。
一、下载SVN工具
由于要下载PMON代码,就要使用SVN工具。目前,所有的代码都是按版本控制形式保存在服务器上的,并且没有打包的代码,这样就需要使用SVN的工具来下载代码。如果在WINDOWS下,就要下载WINDOWS的SVN工具。如果在LINUX下,就需要下载LINUX的GETIT工具。
二、注册帐号
先到网站dev.lemote.com上面注册一个帐号,然后才能登录进入开发网站,否则不能登录进去的,由于目前没有开通诺名功能。注册帐号后,就可以登录网站dev.lemote.com,然后通过SVN的工具下载http://dev.lemote.com/svn/pmon-lm2e/branches/kkmao/分支的代码和文档。
三、安装交叉编译器
当你从dev.lemote.com上下载完所有代码后,就可以到目录/kkmao/tools/compiler下面找到交叉编译器,它的名称是mips-elf.tar.gz。这是一个压缩包,当然要解压后才能使用。那么需要解压到那里呢?通常都是解压到目录/usr/local/下面,这样就形成目录:/usr/local/comp/。
四、设置交叉编译路径
上面已经把交叉编译器安装好后,并不能直接在任何路径里就运行它。比如到目录Targets/Bonito/compile/Bonito下,如果运行make就会出错,因为它找不到编译mips-elf-gcc。如果要找到它,就需要把它所在的目录加到当前环境变量里,这样才可进行编译。而在LINUX下,设置环境变量,需要打很长的字符,为了不用每次都浪费这么多功夫,就可以写一个bash的脚本文件go.sh,它的内容如下:
#!/bin/sh
export PMONBASE=$(pwd)
export PATH=/usr/local/comp/mips-elf/gcc-2.95.3/bin/:$PMONBASE/bin:$PATH
然后打开终端显示窗口,就可以用source go.sh来运行这个脚本,这样会把交叉编译器的路径添加到当前运行的路径里,这样就可以在任何地方找到交叉编译器了。
五、生成pmoncfg工具
在我没有问kkmao之前,根本就不知道还需要这样的一个过程。因此,就编译不通过。由于PMON是根据配置选择不同的源程序进行编译,所以就需要一个工具来分析那个配置文件,而这个工具就是pmoncfg。生成这个工具要到目录tools/pmoncfg下面,然后运行make就会生成pmoncfg工具。
六、配置Bonito文件
进入Targets/Bonito/conf目录,选择一个Bonito配置文件。在目前龙芯里是选择Bonito.notebook配置文件,为了方便运行,就进行符号连接。再接着运行pmoncfg工具来生成目标源程序的目录。执行下面的命令:
ln -s Bonito.notebook Bonito
tools/pmoncfg/pmoncfg Bonito
这样就形成目标目录Bonito了。
七、编译PMON
进入到上面生成的目录Targets/Bonito/compile/Bonito里,然后运行make,就会生成pmon.bin文件。接着再到zloader目录make,或者直接到zloader下面make,
最后在zloader目录生成gzrom.bin文件,就可以烧到龙芯的Flash存储器里,就可以进行主板初始化了。(模拟器也可以运行)
八、模拟器运行PMON
解压gxemul-0.3.8-good.tar.gz源程序,然后进入到目录里,运行./configure文件,就会生成makefile文件。接着运行make文件就可以生成模拟器gxemul。如果把pmon.bin文件拷贝到这个目录下,就可以如下运行:
./gxemul -Xe bonito 0xbfc00000:pmon.bin
这样就可以运行PMON了,上面的命令行意思是输出到X窗口,而代码ROM开始地址是0xbfc00000,也就是从那里取第一条指令。
在我的LINUX里可以编译通过gxemul-0.4.2.current.tar.gz,但运行它时,就不支持-X参数,这个问题我也没有搞清楚。
相关文章推荐
- 龙芯软件开发(7)--编译PMON指南
- 龙芯软件开发(7)--编译PMON指南
- ubuntu 11.04下搭建android开发/编译环境 安装必要工作用软件
- 龙芯软件开发(24)-- PCI设备初始化2
- 龙芯软件开发(25)-- PCI设备初始化3
- 龙芯软件开发(27)-- 网络初始化
- 龙芯软件开发(29)-- 键盘初始化
- 龙芯软件开发(30)-- 自动加载操作系统
- 麻省理工时域差分软件 MEEP windows 下编译开发(二)——开始编译
- 龙芯软件开发(4)--主要芯片介绍
- 龙芯软件开发(6)--CPU龙芯2E
- 龙芯软件开发(8)--理解龙芯2E寄存器和内存布局
- 龙芯软件开发(10)--龙芯2E指令
- 龙芯软件开发(12)--龙芯2E摸索前行
- 龙芯软件开发(13)--配置南桥进入调试新天地
- 龙芯软件开发(20)-- 频率和初始化实时时钟
- 龙芯软件开发(21)-- 调试与功能选择
- 龙芯软件开发(22)-- 初始化环境参数
- 龙芯软件开发:使用龙芯2e的模拟器GXemul
- 为Source insight加入自已编写make代理编译软件DIY超级IDE开发平台