记一次可能失败的ARMv8调试

我都几乎忘了我注册了“简书”。

最近一直忙,颠三倒四的……好了,进入正题,正如题目所说,为什么叫可能失败的一次对ARMv8的调试。

挺看好ARMv8这个架构的,它支持64位空间,支持虚拟化,大小核等等。在Cortex-A50系列中,A57属于“大核”,A53属于“小核”,分别替代现有的A15与A7,生产工艺将进化至14nm。ARM给出的Cortex-A57与A53的未来应用构想,它们将横跨智能手机、平板电脑与服务器领域,根据big.LITTLE理念,在一颗芯片中,A57与A53核心可以混搭。

我第一次接触ARMv8是买了FriendlyARM的Nano Pi M3这个卡片电脑,上面搭载的是三星S5P6818这个芯片,Cortex-A53 8核1.4GHz,芯片官网:http://www.nexell.co.kr/?page_id=300 资料也在这个网站上面下载,不过需要登录,所以我只能用FriendlyARM提供的芯片手册。

我这个人比较喜欢刨根问底,买到Nano Pi M3之后我就打算自己从头搞起,既然芯片是ARMv8架构的,我就以64位的方式编译U-Boot玩一玩,U-Boot能跑起,Linux想必也不在话下。

但是事情并不是这么简单,我尝试用C语言点亮板子上面的那个蓝色的LED并闪烁,用ARMv8指令集编译并且烧录到SD卡的第2个扇区,插到板子上就成功了,没有多大难度,但是编译启动UBoot的时候就不行了,把源码下进去压根没反应,串口没有输出,不知道是哪一步出了问题。板子上也没有开放JTAG接口,所以没有办法调试Uboot。

现在我只能有两条路了:1、找到一块将S5P6818的JTAG引出的开发板,使用JTAG直接片上调试UBoot;2、使用Qemu调试UBoot。

先尝试第一条路吧。我逛了好久淘宝,终于找到一款S5P6818开发板将JTAG接口引出来了。

开发板照片

现在的工作是如果通过JTAG调试它。市面上支持ARMv8调试的工具不多,就算支持的都收费,劳特巴赫,DS-5我一苦逼穷学生一个都负担不起,OpenOCD貌似支持,在源码里对AArch64的调试是选择编译到OpenOCD里的,不知道能不能用,兼不兼容。看了OpenOCD脚本,发现是使用JIM作为脚本解释器。JIM是小型TCL解释器,功能是TCL的子集,语法几乎是一样的,它的语法是那种命令行式的。比较烦,感觉不是很灵活……考虑到以后我调试Linux的时候可能要用JTAG通过脚本对内存或者外设直接操作,所以我需要脚本语法尽可能灵活……

所以找了一圈,发现没有合适的,就打算自己造一个,脚本支持灵活的语法,可以对ARMv8架构进行调试的工具,而且这个工具要对仿真器没有要求。只要仿真器提供JTAG功能,不管是Xilinx USB Blaster,还是OpenJTAG,还是CMSIS-DAP等等,都可以直接调试。这个工具我给它起名叫“SmartOCD”。

项目放在了GitHub:https://github.com/Virus-V/SmartOCD

仿真器我手头只有一个CMSIS-DAP,所以开发测试任务只能使用它,但是我在设计SmartOCD的时候抽象出来公共的JTAG层,将上层对芯片的操作转换成统一的JTAG时序表示,对下级仿真器驱动的要求是能够解析这些时序并输出相应的信号就够了。

CMSIS-DAP

 而且SmartOCD集成了DAP的通用操作,可以通过DAP的Access Port对CoreSight的调试组件和内存空间进行访问,在用STM32F4的单片机测试的时候可以正常读取RAM和ROM。

测试结果

基本功能齐全之后,我拿到S5P6818上面测试,发现DAP上挂着三个AP,两个MEM-AP和1个JTAG-AP。分别是:MEM-AP: AMBA-AXI3 or AXI4、MEM-AP:AMBA-APB2和JTAG-AP。其中CoreSight的调试组件挂在APB2这个调试专用总线上,要通过APB2这个AP去访问。

但是问题来了,读取ROM Table的时候出现了问题,可以列出所有ROM Table的Entry,但是识别Entry指向的组件的时候就会错误,Sticky Error标志置位,并且无法清除掉该错误标志,仿佛APB-AP整个的就死掉了。

尝试读取Component

看最后一行,Component CID:0x00000000,PID:0x00000000

这个时候已经出现错误了,第一个Component就读取失败,而且我Debug域已经上电了。

其实我也查了相关资料,感觉不应该出现这个问题啊,所以第一条路可能走不通吧。心累。

我也在尝试解决,如果找到解决办法我将会把它添加到这篇日志里。

4月30日:问了ARM的工程师,感觉是我的SoC的问题,他推荐我使用Linaro官方测试过的板子。现在板子还在路上,五一节放假不给运。

====2020年2月29日更======

放弃了。。。

走出学校参加工作,发现没有完整的时间去做一些自己感兴趣的事,每天也只有零星的时间去看书学习。

感觉S5P6818的Coresight部分有问题,而且发现Arch Timer也有问题。

买了个RK3399继续。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容