ARM64+树莓派4b+JLINK仿真器实验环境搭建指南

您所在的位置:网站首页 j-link仿真 ARM64+树莓派4b+JLINK仿真器实验环境搭建指南

ARM64+树莓派4b+JLINK仿真器实验环境搭建指南

2023-09-01 08:47| 来源: 网络整理| 查看: 265

ARM64体系结构与编程,全球原创的ARM64实验,笨叔带队,等你哟!

ARM64体系结构与编程-yx音频:00:00/00:20

奔跑吧第三季视频课程实验设备清单

硬件开发平台:树莓派4B (2G或者4G内存)

软件模拟平台:QEMU BenOS定制版

开发主机:Ubuntu Linux 20.04

MicroSD卡一张以及读卡器

USB转串口线一根

J-Link v11仿真器

注意:

J-Link仿真器需要额外购买,请登录SEGGER公司官网查询中国区代理商信息。在校师生以及个人爱好者可以联系J-Link中国区的代理商购买J-LINK EDU版本。

建议读者下载笨叔制作好的虚拟机镜像(支持VMware player或者VirtualBox),里面内置了openocd软件以及QEMU BenOS定制版。 虚拟机image下载地址: 订阅了第三季旗舰篇视频课程的小伙伴请ping笨叔索取下载地址。

图片

图片

图片

如果有小伙伴需要在物理机上安装Ubuntu Linux,其实也是可以的。笨叔提供了QEMU_BenOS的deb安装包,注意,安装包只能在ubuntu 20.04中使用。其中:

qemu-system-arm-pi4_4.1.50-3_without_GIC_amd64:表示只支持树莓派4中的Legacy interrupt controller的版本。

qemu-system-arm-pi4_4.2.50-3_with_GIC_amd64:表示只支持树莓派4中的GIC。 小伙伴可以先安装其中一个,等到做中断相关的实验的时候,再根据视频课程的讲解来切换。

openocd-benos_1.0-2_amd64:这个是openocd for 树莓派4.

安装树莓派OS和测试BenOS

小伙伴可以参考《树莓派+JLINK实验环境搭建.pdf》这个文档来。

当你拿到一个全新的树莓派4和全新的MicroSD卡的时候,你可以先烧写一个树莓派OS,然后先把串口线接上,并测试串口线是否连接成功。

下载一个最新的树莓派OS,一定是要Raspberry Pi OS,不要使用第三方的树莓派OS,例如ubuntu for Raspberry Pi。国内小伙伴可以从清华源中下载。

https://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/raspios_arm64/images/raspios_arm64-20

下载完成之后,使用烧写工具把image 烧写到MircoSD里,在windows下可以使用Win32DiskImager 软件来进行烧录,Linux主机可以使用dd命令。 2.修改MircoSD卡中boot分区里面的config.txt配置文件,在这个文件里新增两行。

uart_2ndstage=1 enable_uart=1

3.把MircoSD插回到树莓派4上,开机。 树莓派OS默认的用户名:pi,密码为:raspberry

4.配置树莓派4上的wifi。可以使用树莓派上的配置工具,在串口中输入如下命令。

$ sudo raspi-config

选择“Network Options”来配置WIFI密码等。

图片

更新软件包。 我们最好是全系统的更新软件包,这样会自动更新了SPI BootRom固件。

sudo apt update sudo apt full-upgrade sudo reboot

更新完成之后,我们reboot机器。 5.关机,把MicroSD卡拔下来。把本季课程的实验代码中的 树莓派固件 拷贝到 MicroSD里。 目录在:armv8_trainning/tools/pi_boot_fw

把上面pi_boot_fw目录下面的所有文件拷贝到 MicroSD的boot分区里。 实验参考代码见百度网盘中的:

实验参考代码目录中的armv8_trainning_xxxxx.tar.xz, 在做实验之前,请认真阅读里面的《实验参考代码使用指南》以及对应的视频讲解。

然后把MicroSD插入到树莓派上,开机。你应该能看到如下打印。说明串口已经ready了!

Starting start4.elf @ 0xfec00200 partition 0 MESS:00:00:05.264585:0: arasan: arasan_emmc_open MESS:00:00:06.125361:0: Read command line from file 'cmdline.txt': MESS:00:00:06.131256:0: 'logdev=ttyS1' MESS:00:00:07.167549:0: brfs: File read: 13 bytes MESS:00:00:07.179048:0: brfs: File read: /mfs/sd/benos4.bin MESS:00:00:07.181512:0: Loading 'benos4.bin' to 0x80000 size 0x4b30 MESS:00:00:07.187507:0: Device tree loaded to 0x2eff4200 (size 0xbd33) MESS:00:00:07.193841:0: uart: Set PL011 baud rate to 103448.300000 Hz MESS:00:00:07.202824:0: uart: Baud rate change done... Booting at EL2 Booting at EL1 Welcome BenOS! 树莓派和JLINK的连接

小伙伴可以参考《树莓派+JLINK实验环境搭建.pdf》这个文档来。

1.硬件连线 要在树莓派上使用J-Link仿真器,首先需要把J-Link仿真器的JTAG接口连接到树莓派的扩展板上。树莓派的扩展接口已经内置了JTAG接口。我们可以使用杜邦线来连接。 J-Link仿真器提供20管脚的JTAG接口,如图所示。

图片

小伙伴一定要分清楚,哪个是JLINK仿真器中JTAG中管脚1。靠近JTAG接口拗口的一排pin脚,其中最右边的那个是管脚1。

图片

树莓派与J-Link仿真器的连接需要8根线,如表所示。                     表 树莓派与J-Link仿真器连接

JTAG接口

树莓派管脚号

树莓派排管脚名称

VTref

01

3.3v

TRST

15

GPIO22

TDI

37

GPIO26

TMS

13

GPIO27

TCK

22

GPIO25

RTCK

16

GPIO23

TDO

18

GPIO24

GND

39

GND

图片

图片

连接完成的效果图如下,强烈建议,大家使用不同颜色的8根杜邦线来连接,这样不容易接错线。

图片

大家在大一的金工实习的时候,连复杂的锤子都做出来了,连这8根线对你们来说,小菜一碟。连接完成之后,再细心检查一遍。

拷贝loop.bin程序到Micro SD卡上。另外还需要修改config.txt配置文件,打开树莓派对JTAG接口的支持。Loop.bin和修改后的config.txt在armv8_trainning/tools/jlink目录里有,小伙伴可以拷贝到SD卡里。注意,SD里的原有的start4.elf等文件还是要保留。 完整的config.txt文件如下。

# BenOS for JLINK debug [pi4] kernel=loop.bin [pi3] kernel=loop.bin [all] arm_64bit=1  enable_uart=1  uart_2ndstage=1  enable_jtag_gpio=1 gpio=22-27=a4 init_uart_clock=48000000 init_uart_baud=115200

进入到armv8_trainning/tools/jlink目录。 下面通过openocd来命令来连接J-Link仿真器,使用“-f”选项来指定一个配置文件。

$ sudo openocd -f jlink.cfg Open On-Chip Debugger 0.10.0+dev-01266-gd8ac0086-dirty (2020-05-30-17:23) Licensed under GNU GPL v2 For bug reports, read     http://openocd.org/doc/doxygen/bugs.html Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections Info : J-Link V11 compiled Jan  7 2020 16:52:13 Info : Hardware version: 11.00 Info : VTarget = 3.341 V

从上述日志可以看到OpenOCD已经检测到J-Link仿真器,版本为V11。

使用如下命令来连接树莓派,如图所示。

$sudo  openocd -f jlink.cfg -f raspi4.cfg

图片

说明JLINK已经连接上了,接下来可以看 视频课程的第三节课,来学习如何使用JLINK仿真器来调试BenOS。

注意:

如果通过openocd连接树莓派没成功,一共要先检查JTAG连线是否正确,认真检查几遍。另外,检查loop.bin和config.txt文件是否正确。

答疑

Q:没有树莓派4b和JLINK仿真器,可以完成第三季的实验吗? A:我们可以使用QEMU来完成本季课程的80~90%的实验,但是有部分实验需要在树莓派4b上上完成,因为QEMU不能100%模拟硬件行为。我们建议大家还是准备一个树莓派4b的开发板。

Q:没有JLINK仿真器会影响本季课的实验吗? A:在树莓派4b上调试程序时,特别是汇编代码时,如果发生了宕机,我们常常会束手无策,最多只能使用串口等方式来协助调试。如果使用硬件仿真器,例如JLINK,我们就可以很方便地找到宕机发生的原因。

Q:JLINK仿真器如何购买? A:我们推荐大家购买正版的JLINK仿真器。大家可以联系SEGGER公司在中国区代理商。另外,在校师生以及个人爱好者可以通过代理商购买JLINK EDU版本仿真器。

Q:  如何学习本课程? A :建议认真看视频,认真看ARMv8芯片手册,认真完成实验,总结归纳。

Q: 实验实在做不来,怎么办? A: 我们提供了所有实验的参考代码。我们建议大家独立完成实验,若实在做不出来,可以参考我们提供的参考代码,不过还需要思考哪些地方没有做出来,及时做总结。

版权声明

图片

购买方式

视频课程地址: 淘宝:https://shop115683645.taobao.com/ 微店:https://weidian.com/?userid=1692165428



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3