您的位置:首页 > 运维架构 > Linux

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

2016-08-02 19:39 531 查看
linux下搭建minicom实现arm调试
工具

步骤
检查系统环境配置

安装minicom

配置minicom

整一个测试程序搞一下呢
源代码

下载调试

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还要转一些驱动.

2.查看缓存中的,看看对应的usb设备是否已经被系统识别.

$dmesg
......
ch341-uart converter detected
ch341-uart converter now attached to ttyUSB?


类似如下的状态:



其中的ttyUSB? 每台机子会不同,我这里的就是ttyUSB0这个设备了.

这样的话,说明硬件驱动是没问题的. 接下来就是minicom的安装了.

2.安装minicom

ubuntu很人性化,直接terminal中:

$ sudo apt-get install minicom


等待,ok.

然后检查是否安装成功

minicom


如图即ok,接下来就是配置了.



3.配置minicom

配置可以先进入minicom在设置菜单中进行设置,也可使用命令
minicom -s
直接进入设置菜单.

这里使用命令方式直接先设置吧

进入后,选择
Serial port setup
选项(操作就是很vim的操作方式,JKHL,也可以使用箭头选择啦, 回车确认).

如下:



配置成如图(要配置某一项在Change which setting? 后面输入对应的代号就可以,如 输入’A’, 设置串口设备名)其中:

A—-就是刚刚看到的串口设备的文件名,我这里是
/dev/ttyUSB0
;

B—-当出现不当操作时,软件会产生一个保护锁文件,这里就是保存的位置,这里就默认吧;

E—-与开发板通信速率相匹配的波特率;

F,G—最好设置为不要软件/硬件流控制;

设置好后,回车,在
configuration
目录下选择
Save setup as dfl
将当前配置保存到默认的配置文件保存目录中,默认的是
/etc/minicom/
下,当然也可以保存为其他文件,选择
Save setup as ..
即可.

最后退出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.


下载调试

首先通过转换线连接arm和linux宿主机;

打开刚刚正好的minicom
$ sudo minicom


注意: 这里由于要访问到/dev/ttyUSB0这个设备文件,因此需要root权限哦.

然后软件就会静静的等待arm的接入,打开开发板的电源把.注意!

这里一定要在上电后,迅速按回车,不要让minicom自动加载arm内核, 因为要调试我们的小程序嘛,所以要打断加载进程,如下



熟悉的命令行状态,但是这里面是不能运行linux命令的,毕竟开发板上啥都没有嘛.只有等待我们直接将代码加载到内存运行的.

然后使用命令
loady 0x4000800
这里的0x40008000是我的编译时在链接文件中将代码放在了这个内存地址,因此我们这里也需要将程序加载对应的内存地址.具体有关.lds文件参见http://blog.csdn.net/ccccdddxxx/article/details/6845377

这时候软件会等待用户添加文件

FS4412 # loady 0x40008000

## Ready for binary (ymodem) download to 0x40008000 at 115200 bps...


这时候进入菜单(ctrl+a, 再 z),选择 sending files



在发送文件选项中,选择编译好的.bin文件,就可以发送到开发板 了,速度稍慢.



完成过后,提示如下

FS4412# loady 0x40008000
\## Ready for binary (ymodem) download to 0x40008000 at 115200 bps...
CC## Total Size      = 0x00000044 = 68 Bytes


11.完成后,使用命令
go 0x40008000
到刚刚的代码处运行.

搞定.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arm ubuntu 调试