一,在由dts文件生成dtb过程中,参照《de1-soc培训教材》会出现问题,以下是出现的问题,及解决办法
1,出现问题的原因是,教程里P85提到hps_clock_info.xml和soc_system_board_info.xml,但工程文件夹里没有,从别的工程里拷出来的,是错误的。
2,由于教程是的quartus版本比较低的原因,会出现上面的错误,正确文件在Soc EDS安装目录\embedded\examples\hardware\cv_soc_devkit_ghrd文件夹下(工程中用的是cyclong V系列器件),选择三个文件soc_system_board_info.xml,hps_common_board_info.xml和makefile文件到当前工作目录下,然后重新执行命令。
3,出现这个错误是因为系统用的开发板和自己做的板子外设有差别,自己的板子上没有开发板提到的那些led_pio,在.dts文件里删除ERROR中提到的led_pio相关设置,保存后,重新输入命令。
4,等待几秒中,会看到成功的dtb文件。
二,教程里提到执行generate_hps_qsys_header.sh文件生成有关硬件信息的供软件使用的头文件。
查看网上提示需要自己写个命名为generate_hps_qsys_header.sh的脚本文件,
仍然有错误,有人说需要设置变量,解决办法:
进入安装目录下\quartus\sopc_builder\bin
查看是否有sopc-create-header-files 文件,有的,然后按照网上方法进行了PATH环境变量设置,*包含sopc-create-header-files 文件夹的路径,盘符用小写且不加冒号
还是有错误,无聊到到脚本文件\前加空格,再次执行成功了,生成了.h文件。
这里说说有关generate_hps_qsys_header.sh脚本文件的含义,短短五句话。
#!/bin/sh
sopc-create-header-file \
"./soc_sys.sopcinfo" \
--single hps_0.h \
--module hps_0
逐行进行解释
第2行—命令
第3行—当前文件夹下的qsys文件,必须是自己工程的
第4行—要生成的文件名字,可以自行修改
第5行—模块名,这个模块名是指在qsys中添加hps模块时的名字,不是指工程中模块的名字(切记)