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

来源:互联网 发布:黑客编程入门 编辑:程序博客网 时间:2024/06/05 10:51

  • 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.

  1. terminal输入命令
$ lsmodModule                  Size  Used by.......ch341                  16384  0usbserial              53248  1 ch341

可以看到,这里是能够识别的,记住,这里是在ubuntu16.04环境下的,ubuntu12.04测试也可以,,默认是可以识别的,不像windows还要转一些驱动.

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

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

类似如下的状态:
usb converter state
其中的ttyUSB? 每台机子会不同,我这里的就是ttyUSB0这个设备了.

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

2.安装minicom

ubuntu很人性化,直接terminal中:

$ sudo apt-get install minicom

等待,ok.
然后检查是否安装成功

minicom

如图即ok,接下来就是配置了.
这里写图片描述

3.配置minicom

  1. 配置可以先进入minicom在设置菜单中进行设置,也可使用命令minicom -s直接进入设置菜单.
    这里使用命令方式直接先设置吧
    进入后,选择Serial port setup选项(操作就是很vim的操作方式,JKHL,也可以使用箭头选择啦, 回车确认).
    如下:
    这里写图片描述

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

    A—-就是刚刚看到的串口设备的文件名,我这里是/dev/ttyUSB0;
    B—-当出现不当操作时,软件会产生一个保护锁文件,这里就是保存的位置,这里就默认吧;
    E—-与开发板通信速率相匹配的波特率;
    F,G—最好设置为不要软件/硬件流控制;

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

  4. 最后退出minicom即可,搞定.

整一个测试程序搞一下呢…

源代码

可以直接可以下载:
https://github.com/Michael-Jay/arm_test.git

//test.S

.global _start_start:    b resetreset:    mrs r0, cpsr    bic r0, r0, #0x1f    orr r0, r0, #0xd3    msr cpsr, r0init_stack:    @svc    mov sp, r0             @svc_sp  1k    sub r0, #1024    mov sp, r0test:    @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.binstart.elf.

下载调试

  1. 首先通过转换线连接arm和linux宿主机;
  2. 打开刚刚正好的minicom$ sudo minicom
    注意: 这里由于要访问到/dev/ttyUSB0这个设备文件,因此需要root权限哦.
  3. 然后软件就会静静的等待arm的接入,打开开发板的电源把.注意!
  4. 这里一定要在上电后,迅速按回车,不要让minicom自动加载arm内核, 因为要调试我们的小程序嘛,所以要打断加载进程,如下
    这里写图片描述
  5. 熟悉的命令行状态,但是这里面是不能运行linux命令的,毕竟开发板上啥都没有嘛.只有等待我们直接将代码加载到内存运行的.
  6. 然后使用命令loady 0x4000800这里的0x40008000是我的编译时在链接文件中将代码放在了这个内存地址,因此我们这里也需要将程序加载对应的内存地址.具体有关.lds文件参见http://blog.csdn.net/ccccdddxxx/article/details/6845377
  7. 这时候软件会等待用户添加文件
    FS4412 # loady 0x40008000
    ## Ready for binary (ymodem) download to 0x40008000 at 115200 bps...

  8. 这时候进入菜单(ctrl+a, 再 z),选择 sending files
    这里写图片描述

  9. 在发送文件选项中,选择编译好的.bin文件,就可以发送到开发板 了,速度稍慢.
    这里写图片描述

  10. 完成过后,提示如下

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

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

搞定.

0 0