Linux下arm开发环境搭建

时间:2022-01-28 12:03:40

搭建过程中会出现一系列问题,这里只列出部分问题,其余可自行解决:



1. 安装串口工具 minicom
1.1 sudo apt-get install minicom
1.1 配置 


2. 安装tftp服务器 tftpd xinetd
2.1 sudo apt-get install tftp tftpd xinetd
2.2 sudo vim /etc/xinetd/tftp
+
service tftp
{
socket_type = dgram
port        = 69
protocol    = udp
wait        = yes
user        = root
server      = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable     = no
per_source  = 11
cps         = 100 2
flags       = IPv4
}
2.3 sudo mkdir /tftpboot

2.4 sudo chmod 777 /tftpboot

2.5 重启服务器
sudo /etc/init.d/xinetd restart


2.6 测试tftp服务器是否正常工作
在服务器目录建个文件
a. cd /tftpboot
b. touch abcd
c. echo 1234554321 > abcd
d. cd 
在家目录测试下载
e. tftp 127.0.0.1
get abcd
f. 如果下载成功,在当前文件夹下有个abcd文件
文件内容为: 1234554321


tftp服务器问题汇总:
1. 配置文件出错
2. timeout
有两个配置文件 /etc/xinetd.d/tftp /etc/xinetd.d/tftpd
3. access violation
> sudo less /var/log/syslog
解决:
sudo vim /etc/inetd.conf
#tftp ... ...

安装arm编译器


1. sudo mkdir /usr/local/arm


2. sudo tar xzvf arm-linux-gcc-4.4.3.tar.gz -C /usr/local/arm/


3. sudo vim /etc/profile

PATH=/usr/local/arm/4.4.3/bin:$PATH


4. 更新环境变量
source /etc/profile


==========================================================


gcc intel芯片编译器
objdump -d x86程序反汇编


arm-linux-gcc arm芯片编译器
注意: arm-linux-gcc 的用法和gcc一模一样 


arm-linux-objdump -d arm程序反汇编


file 查看文件的类型


=========================================================
安装uboot
1. tar xvf bootloader.tar
2. cd bootloader
3. cd u-boot


4.sudo make distclean 清理软件包
5.make mini2440_config 把uboot配置成mini2440板子运行的
6.make

1.安装串口工具:
sudo apt-get install minicom


2. 设置串口工具
sudo minicom -s


/dev/ttyUSB0


3. 使用minicom
sudo minicom


4. 退出minicom
ctrl + a    q


问题汇总:
1. 找不到/dev/ttyUSB0
ls /dev/ttyUSB0
2. 乱码 
波特率设置错误
串口线有问题

搭建完成后就可以用你的开发板试一下了:

C语言编译步骤:
1. 预处理
arm-linux-gcc -E hello.c -o hello.i


2. 编译(把.c转换成.S)
arm-linux-gcc -S hello.i -o hello.S


3. 汇编(把汇编程序 编译成 二进制程序)
arm-linux-gcc -c hello.S -o hello.o


4. 链接(把不同的.o文件按照指定的链接地址链接在一起)
a.当有操作系统的时候,操作系统自动指定
b.当没有操作系统的时候,必须人为的指定链接地址

arm-linux-ld -Ttext=0x30000000 hello.o -o hello


5. 去掉头部信息
arm-linux-objcopy -O binary hello hello.bin


======================================================
C语言内存布局


1. stack
2. heap
3. data
4. text


=====================================================
uboot操作:
1.设置服务器的ip地址: 192.168.0.1
2.在uboot中:
2.1 下载 tftp 0x30000000 hello.bin
2.2 执行程序 go 0x30000000