红联Linux门户
Linux帮助

linux/ubuntu16.04搭建minicom的arm调试环境

发布时间:2016-08-18 15:21:39来源:linux网站作者:MichaelJay2015
linux下搭建minicom实现arm调试
个人觉得windows下的超级中断不是好用,而且本人在linux下开发,没有使用虚拟机,因此需要在linux配置调试环境,这里记录一下.
 
工具
ubuntu16.04
minicom
usb转串口线 HL-340
arm开发板
这里主要是实现通过minicom在ubuntu下通过USB转串口线实现程序的烧录和调试.
 
步骤
1.检查系统环境配置
插上串口线, 检查一下os是否能够识别出usb端口的设备,就是我们使用的串口线HL-340.
terminal输入命令
$ lsmod
Module  Size  Used by
.......
ch341  16384  0
usbserial  53248  1 ch341
可以看到,这里是能够识别的,记住,这里是在ubuntu16.04环境下的,ubuntu12.04测试也可以,,默认是可以识别的,不像windows还要转一些驱动.
 
查看缓存中的,看看对应的usb设备是否已经被系统识别.
$dmesg
......
ch341-uart converter detected
ch341-uart converter now attached to ttyUSB?
类似如下的状态:
linux/ubuntu16.04搭建minicom的arm调试环境
其中的ttyUSB? 每台机子会不同,我这里的就是ttyUSB0这个设备了.
这样的话,说明硬件驱动是没问题的. 接下来就是minicom的安装了.
 
2.安装minicom
ubuntu很人性化,直接terminal中:
$ sudo apt-get install minicom
等待,ok.
然后检查是否安装成功
minicom
如图即ok,接下来就是配置了.
linux/ubuntu16.04搭建minicom的arm调试环境
 
3.配置minicom
01.配置可以先进入minicom在设置菜单中进行设置,也可使用命令minicom -s直接进入设置菜单.
这里使用命令方式直接先设置吧
进入后,选择Serial port setup选项(操作就是很vim的操作方式,JKHL,也可以使用箭头选择啦, 回车确认).
如下:
linux/ubuntu16.04搭建minicom的arm调试环境
 
02.配置成如图(要配置某一项在Change which setting? 后面输入对应的代号就可以,如 输入’A’, 设置串口设备名)其中:
A—-就是刚刚看到的串口设备的文件名,我这里是/dev/ttyUSB0;
B—-当出现不当操作时,软件会产生一个保护锁文件,这里就是保存的位置,这里就默认吧;
E—-与开发板通信速率相匹配的波特率;
F,G—最好设置为不要软件/硬件流控制;
03.设置好后,回车,在configuration目录下选择Save setup as dfl将当前配置保存到默认的配置文件保存目录中,默认的是/etc/minicom/下,当然也可以保存为其他文件,选择Save setup as ..即可.
04.最后退出minicom即可,搞定.
 
整一个测试程序搞一下呢…
源代码
可以直接可以下载:
https://github.com/Michael-Jay/arm_test.git
 
//test.S
.global _start
_start:
b reset
reset:
mrs r0, cpsr
bic r0, r0, #0x1f
orr r0, r0, #0xd3
msr cpsr, r0
init_stack:
@svc
mov sp, r0             @svc_sp  1k
sub r0, #1024
mov sp, r0
test:
@set the output
ldr r2, =0x11000000     @base addr
mov r3, #0x1            @value
mov r3, r3, lsl#28      @focus on con_7
str r3, [r2, #0x0c40]   @set GPX2CON[7]=0X01
@set output high
ldr r2, =0x11000000
mov r3, #0x1
mov r3, r3, lsl #7
str r3, [r2, #0x0c44]
nop
 
//”Makefile”
all:
arm-linux-gcc start.S -o start.o -c
arm-linux-ld start.o -o start.elf -Tstart.lds
arm-linux-objcopy -O binary -S start.elf start.bin
 
//start.lds
ENTRY(_start)
SECTIONS
{
. = 0x40008000;
.text :
{
*(.text)
}
.data :
{
*(.data)
}
.bss :
{
*(.bss)
}
}
然后,make一下咯. 生成好了二进制的文件start.bin和start.elf.
 
下载调试
01.首先通过转换线连接arm和linux宿主机;
02.打开刚刚正好的minicom$ sudo minicom
注意: 这里由于要访问到/dev/ttyUSB0这个设备文件,因此需要root权限哦.
03.然后软件就会静静的等待arm的接入,打开开发板的电源把.注意!
04.这里一定要在上电后,迅速按回车,不要让minicom自动加载arm内核, 因为要调试我们的小程序嘛,所以要打断加载进程,如下
linux/ubuntu16.04搭建minicom的arm调试环境
05.熟悉的命令行状态,但是这里面是不能运行linux命令的,毕竟开发板上啥都没有嘛.只有等待我们直接将代码加载到内存运行的.
06.然后使用命令loady 0x4000800这里的0x40008000是我的编译时在链接文件中将代码放在了这个内存地址,因此我们这里也需要将程序加载对应的内存地址.
07.这时候软件会等待用户添加文件
FS4412 # loady 0x40008000
## Ready for binary (ymodem) download to 0x40008000 at 115200 bps...
08.这时候进入菜单(ctrl+a, 再 z),选择 sending files
linux/ubuntu16.04搭建minicom的arm调试环境
09.在发送文件选项中,选择编译好的.bin文件,就可以发送到开发板 了,速度稍慢.
linux/ubuntu16.04搭建minicom的arm调试环境
010.完成过后,提示如下
FS4412# loady 0x40008000  
\## Ready for binary (ymodem) download to 0x40008000 at 115200 bps...   
CC## Total Size  = 0x00000044 = 68 Bytes
11.完成后,使用命令go 0x40008000到刚刚的代码处运行.
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23421.html