个人觉得windows下的超级中断不是好用,而且本人在linux下开发,没有使用虚拟机,因此需要在linux配置调试环境,这里记录一下.
这里主要是实现通过minicom在ubuntu下通过USB转串口线实现程序的烧录和调试.
插上串口线, 检查一下os是否能够识别出usb端口的设备,就是我们使用的串口线HL-340.
$ 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的安装了.
ubuntu很人性化,直接terminal中:
$ sudo apt-get install minicom
等待,ok.
然后检查是否安装成功
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 ..
即可.
可以直接可以下载:
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.
$ sudo minicom
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...
完成过后,提示如下
FS4412# loady 0x40008000
\## Ready for binary (ymodem) download to 0x40008000 at 115200 bps...
CC## Total Size = 0x00000044 = 68 Bytes
11.完成后,使用命令go 0x40008000
到刚刚的代码处运行.
搞定.