SoC FPGA 开发和调试笔记 第一篇:闲言碎语话家常

小梅哥 2020-06-09 00:00

       进入6月的这一个星期以来,由于自己的心态原因,做了一些错事,酿成了很大的遗憾,也因如此,自己消沉了很久,身体和内心都承受了较大的痛苦。一度都想放弃手头的一切,找一个深山老庙敲木鱼去了。今天,在秋姐姐的开导下,我终于明白了自己该去做什么,该让自己成为怎样的人。只有这样,也才是大家真正愿意看到,愿意认识的我。我依旧应是那个潇洒走世界,快乐闯神州的小梅哥。相信一切都会好起来,相信一切自有天意。


       20188月,我完成了《SoCFPGA嵌入式设计和开发教程》一书初稿编写。这是一个值得纪念的日子。如今,2年时间快要过去了,随着开发和学习的深入,很多之前书中没有写到,或者写的不太详细的地方也逐渐凸显出来。从20187AC501-SoC开发板开售,到今年4月份停产,时间也是差不多2个月,期间共售出该开发板310套左右。这是一个比较糟糕的成绩,但是我依然认为这份经历非常的值得。AC501-SoC开发板不同于目前网上备受好评的AC620开发板,AC620开发板是一个市场上非常成熟的FPGA系列产品,其内容只涉及到单纯的FPGA开发。而AC501-SoC不一样,AC501-SoC采用的基于Intel Cyclone V SoC FPGA系列的器件,由于架构新颖,上市时间不长,而且由于技术壁垒较高,涉及到了arm嵌入式和fpga开发的双重技术,所以开发和使用起来难度都比单纯的fpga或者arm linux要大一些。参考资料只有官方提供的一些。很多问题网友也没有遇到,网络上也不好找解决资源,所以我做的也是比较的艰难和缓慢。


       2年的时间就这样过去了,对于SoC FPGA这个产品,我到目前为止,做的依然非常的有限,不过在开发调试的过程中,积累了一些调试的经验和心得。所以,希望借这次改版升级的机会,把之前内容中的不足都补上,把调试开发过程中的经验也都分享出来。

首先在这里更正两个书中已知的错误:

书本9.4节,编写I2C控制器设备节点中最后一段内容(211页),输入的命令写错了,

原本为:dtc -I dts -o dtb -fo soc_system.dtb socfpga.dts

更正为:dtc -I dts -o dtb -fo socfpga.dtb soc_system.dts

该命令功能是使用dts文件生成Linux内核启动时直接读取的设备树二进制文件(dtb)。书中错误的写法把dtsdtb文件的名字写反了,导致命令无法执行。这里就对该命令再次做个解释。

  • 第一个字段“dtc”是一个命令,是用来编译和反编译设备树,我们在开发的时候,用的较多的是编译功能,所谓编译,就是将文本形式的dts文件编译得到二进制格式的dtb文件。该命令还可以执行反编译功能,将已有的dtb文件反编译得到我们很容易阅读的文本文件。具体的命令使用方法,大家可以自行学习,本文最后也会给出该功能的使用例子。

  • 第二个字段“-I”是一个参数,表示的是输入的意思,Iinput的简写。

  • 第三个字段“dts”是对第二个字段,也就是输入文件格式的限定,表示输入用来参与编译的源文件是dts格式的。

  • 第四个字段“-O”是一个参数,表示的是输出的意思,Ooutput的简写。

  • 第五个字段“dtb”是对第四个字段,也就是输出文件格式的限定,表示输编译结果以dtb格式输出。

  • 第六个字段“-fo”是操作,指定输出文件的名称。o依旧表示outputf表示强制输出,因为dts文件中有时候会有一些错误,这些错误是由于信息不完善导致的,尤其是对于socfpga这种,在qsys中添加的一些fpga侧的IP是没有对应的自动生成dts信息的属性的,所以就会出现这种错误,这种错误不会导致生成的dtb文件无法使用,但是默认编译遇到这些错误会退出,所使用-f可以让编译器忽略这些错误,强制生成dtb文件。

  • 第七个字段“socfpga.dtb”指的是编译输出的文件名,是对第六个字段参数的进一步限定。文件名可以更改,但是格式必须是.dtb

  • 第八个字段“soc_system.dts”是指定输入文件的具体名称,该文件必须要在当前目录下存在,编译器才能读取并编译输出。

理解了命令中每个字段和参数的意义后,再来做实验,即使遇到书中书写的错误,也会很快找到问题所在并能够自动改正了。

使用dtc命令可以将已经有的dtb文件反编译为dts文件,以将socfpga.dtb反编译为soc_system_back.dts为例,只需要使用下述命令即可。

dtc -I dtb -o dts -fo soc_system_back.dtssocfpga.dtb

 

反编译在进行调试的时候非常有用,尤其是一些特殊的设备驱动,自己编写的设备树总是无法成功加载驱动的时候,找一个第三方能够正常运行的板子的dtb文件反编译一下作为参考,还是蛮有用的。我就反编译过英贝特的SOCFPGA开发板的dtb文件来参考电阻触摸屏的设备树编写方法。

 

第二个书中已知的错误就是,书中写的编译ubootpreloader是直接在quartus工程根目录下直接执行make uboot。这个操作对于大多数的开发板,无论是我们自己的AC501-SoC,还是友晶的一系列DE系列的开发板,都没太大的问题,因为这些板其实用的都是大致相同的配置。使用相同的uboot也没啥影响。但是一些自己定制的开发板,当对外设的配置,尤其是启动方式和网卡不同时,这个问题就暴露出来了。例如对于我们和朋友公司一起开发的使用Nand Flash启动的AC590-SoC核心板,使用这种方式编译出来的UBOOT就会有问题,无法正常工作。因为这种方式在编译时会重新从quartus软件目录下拷贝uboot的压缩包来重新编译,会覆盖掉所有的工程配置设置,所以编译多少次都是配不上的。正确的方法是,不管针对哪个目标板,都应在software/bsp_spl目录下再执行make uboot

 

接下来,我将会对SoC FPGA开发板中的一些积累进行更多的分享,包括FPGA2SDRAM桥的使用和调试心得,HPS双网口的调试心得,FPGAHPSIO口相互共享使用方法等。同时,也会记录一些应用案例的开发过程。我不想再让自己成为一个写教程的人,我希望自己是一个有血有肉的工程师,在发文的过程中,更多的会记录自己的调试过程,调试心路历程,让人看到文章,就能仿佛看到我的存在。也让更多的工程师产生共鸣,让自己没那么孤单。希望大家看到文章后,如果恰好你有空,就给留个言,我能回复就回复。


小梅哥 更新芯航线团队出品的各种资料
评论 (0)
  • 导读:网关设备是确保数据流畅通信的关键。虹科PCAN系列网关凭借卓越性能和创新技术,为众多应用提供了高效稳定的解决方案。本文将深入探讨虹科PCAN系列网关内部存储空间,特别是EEPROM和SPI Flash的配置与利用,并解析如何通过C编程实现快速实时的信号存读。通过虹科PCAN-Router FD的实例,我们将展示这些存储空间如何助力网关设备在复杂环境中保持卓越性能。一、网关内部存储空间概览网关的内部存储空间经过精心设计,旨在满足快速、稳定的数据处理需求。除了常规的RAM外,虹科PCAN系列网
    虹科汽车智能互联 2024-03-18 13:56 89浏览
  • 汽车氛围灯,顾名思义,是烘托车内氛围的照明灯,是汽车内饰情感化设计的一种体现。 一般有暖色(红色等)和冷色系(蓝色、紫色等)两种,在夜晚开启后绚丽浪漫,可营造车内情调,使得旅途并不是那么的枯燥无味,让人们拥有独特的驾驶体验。关于汽车氛围灯浪涌保护上海雷卯EMC小哥分析难点有以下几个方面:1. 复杂的电气环境:汽车的电气系统较为复杂,存在各种干扰源,如点火系统、电机、电子设备等,这可能会对氛围灯的浪涌保护造成挑战。2. 电压波动:汽车运行过程中,电源电压可能会出现较大的波动,例如启动引擎或电器设备
    上海雷卯电子 2024-03-16 13:51 82浏览
  • 安装Ubuntu后,可能会影响到Windows 10的启动方式,特别是在使用双系统引导时。这可能是导致您无法通过按F8进入安全模式的原因。以下是一些可能的原因和解决方法:启动管理器更改:安装Ubuntu后,GRUB或其他启动管理器可能成为默认的启动引导程序。这些启动管理器可能不会像Windows那样响应F8键进入安全模式的指令。快速启动功能:Windows 10的“快速启动”功能可能会影响您进入安全模式的能力。当启用快速启动时,系统会跳过某些启动步骤,这可能会阻止您通过F8进入安全模式。系统文件
    丙丁先生 2024-03-19 08:54 32浏览
  • 1. 整流桥功能介绍整流桥在电子领域中扮演着至关重要的角色,为各种电子设备和电路提供了稳定的电源。整流桥的主要作用是将交流电信号转换为直流电信号。当交流电信号通过整流桥时,它会使得只有一个方向的电流能够通过,从而实现了将交流电信号转换为单向的直流电信号。在一些手持设备需要小巧轻便的整流桥来将交流电转换为直流电。医疗器械:一些便携式医疗器械或医疗监测设备,由于需要经常携带和移动,通常采用小体积的整流桥设计。智能家居产品:如智能插座、智能灯具等,由于需要集成在家居环境中,因此需要小体积的整流桥来满足
    上海雷卯电子 2024-03-16 14:07 103浏览
  • 电脑上的很多东西都是赚钱的手段,知道了就轻松自在。如果你在Win10、11等安装应用程序,出现:应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具。你各种删除再安装,清理注册表,各种残留清理,各种模块开关设置、甚至重装系统,都不行,你可以考虑安装一下:通过微软网站:Microsoft visual C++ 2005Microsoft visual C++ 2008因为微软自带系统没有这两个基础程序,旧的应用程序多数要用的
    老黄姓黄 2024-03-17 15:59 184浏览
  • 总结:科普量子计算机的水书。至少第一章是在科普量子计算机。唯一有点用的就是我上面这一张照片里面的笔记。上面说了为什么量子计算机会比传统计算机运算速度快的原因:因为传统计算机一位只能有一个数字,但是量子计算机可以0和1叠加起来显示。这样就造成了传统计算机需要运行很多遍的东西,而量子计算机不管多少多难都只用计算一次。(前提是量子比特位够长)---------------------------------------------------------------------------------
    youyeye 2024-03-17 17:04 131浏览
  • 使美国在21世纪保持安全,美国防部发布最新投资战略,12项领先发展科技,两项是传感器技术!近日(3月8日),美国国防部官网公布了《2024财年投资战略》(INVESTMENT STRATEGY FOR THE OFFICE OF STRATEGIC CAPITAL),确定了战略资本办公室(OSC)重点关注的优先关键组件技术行业投资战略,这是美国最新重量级投资计划。2022 年 12 月,美国国防部长劳埃德·奥斯汀三世 (Lloyd J. Austin III) 启动了战略资本办公室 (OSC),
    传感器专家网 2024-03-18 19:31 46浏览
  • 导读:相信使用过PCAN工具的朋友都知道虹科PCAN-View这款免费软件,它具有直观的用户界面,可以实时监测和分析CAN总线上的数据帧,并提供过滤、发送和报文记录。但你知道吗?它其实不只是简单收发报文,虹科PCAN-View还能自动检测和报告CAN总线上的错误帧,帮助用户快速发现和解决通信问题。无论是在汽车、工业自动化还是嵌入式系统领域, 虹科PCAN-View都是一个功能丰富且广泛应用的工具,为用户优化CAN总线系统的性能和提升通信的可靠性提供了极大的帮助。本文带你一起走进这些功能细节,深入
    虹科汽车智能互联 2024-03-18 13:54 111浏览
  • 来源:虹科汽车电子 虹科技术 | PCAN View功能细讲:从实时监测到错误帧分析原文链接:https://mp.weixin.qq.com/s/yOonZ5NqSCnKjURr9hNC6A欢迎关注虹科,为您提供最新资讯!#PCAN #CAN总线 #工业通讯导读相信使用过PCAN工具的朋友都知道虹科PCAN-View这款免费软件,它具有直观的用户界面,可以实时监测和分析CAN总线上的数据帧,并提供过滤、发送和报文记录。但你知道吗?它其实不只是简单收发报文,虹科PCAN-View还能自动检测和报
    虹科电子科技 2024-03-18 15:48 95浏览
  • 艾迈斯欧司朗全新“样片申请”小程序,逾160种LED、传感器、多芯片组合等产品样片一触即达。轻松3步完成申请,境内免费包邮到家!本期推荐艾迈斯欧司朗首款支持UV-A辐射、环境光闪烁检测功能的微型环境光传感器TSL2585。TSL2585尺寸小巧,采用L2.0mm xW1.0mm xH0.35mm 6引脚OLGA超薄封装,非常适用于可穿戴设备以及手机等这类产品尺寸和厚度受到限制的应用。基于先进的干涉滤光技术,TSL2585的每一个感光像素上都精确沉积了特定光学设计的滤光膜,整体约5µm厚,由60多
    艾迈斯欧司朗 2024-03-18 18:35 94浏览
我要评论
0
1
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦