热度 3
2018-5-4 11:49
5000 次阅读|
0 个评论
在Altera SoC的开发中,Qsys 系统和 Linux 应用程序之间通过一个名为 hps_0.h 的文件交互硬件信息,例如总线上添加了哪些外设,每个外设相对于 HPS 外部总线的偏移地址,每个外设所占的地址空间等,类似于开发 NIOS II 应用程序时候的 system.h 文件。每当 Qsys 系统中更新了硬件之后,如果需要直接在 Linux 中编写应用程序以直接操作寄存器的方式来控制这些外设,则需要重新生成一次该文件,然后将该文件添加到软件工程下作为头文件包含。 那么如何得到 hps_0.h 文件呢?需要借助 SoC EDS Command Shell ,首先打开 SoC EDS Command Shell ,然后使用 cd 命令将路径切换到 Quartus 工程所在目录,例如 D:\fpga\work_debug\ModBus_Processor\SoC_TXGLJ ,则切路径的命令为: cd d://fpga/work_debug/ModBus_Processor/SoC_TXGLJ 然后,输入以下命令就可以得到 hps_0.h 文件了 sopc-create-header-files "./soc_system.sopcinfo" --single hps_0.h --module hps_0 注意, soc_system.sopcinfo 是 Qsys 编译得到的一个硬件信息文件,工程名称不一样,该文件的名字也不一样,需要根据自己的工程名称进行修改。 另外,输入 ls 命令,也可以看到工程目录下存在一个名为 generate_hps_qsys_header.sh 的文件,这是一个脚本文件,包含了生成 hps_0.h 文件的具体命令。我们可以到工程目录下打开该文件查看具体内容,实际内容就是我们上面输入的那条命令,因此,如果经常需要生成 hps_0.h ,可以直接执行该脚本即可。如果工程名不一样,修改为自己的 sopcinfo 文件名即可。 #!/bin/sh sopc-create-header-files \ "./ soc_system.sopcinfo" \ --single hps_0.h \ --module hps_0 执行该脚本的命令为: ./ generate_hps_qsys_header.sh