ARM64+树莓派4b+JLINK仿真器实验环境搭建指南 |
您所在的位置:网站首页 › j-link仿真 › ARM64+树莓派4b+JLINK仿真器实验环境搭建指南 |
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=13.把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 |