国产之路:复旦微调试笔记3:环境配置 |
您所在的位置:网站首页 › k7使用 › 国产之路:复旦微调试笔记3:环境配置 |
烧写步骤:
Xilinx:基本流程为逻辑在vivado中配置开发生成hdf,不带操作操作系统时直接用sdk在线或者参考之前固化篇,带操作系统时用petalinux配制,生成BOOT.bin(含fsbl,自己生成的bit文件和uboot)和image.ub(默认文件系统,kernel和设备树的打包)(如果用jffs2文件系统需要设置将文件系统单独出来,再生成一个rootfs.jffs2) 复旦微:基本流程为procise下生成hdf或者导入vivado的.bd和.xci文件,裸机正常用IAR软件,linux的话需要导出FSBL和设备树文件。设备树文件放置在linux编译环境中,build all,生成uboot和image.ub,将之前导出的FSBL文件,逻辑的bit文件,和刚刚生成的uboot文件image.ub打包成一个BOOT.bin烧录 模式说明Jtag模式&Qspi模式 这两个模式通常共用一组拨码开关 Jtag模式用于在线调试,烧写 Qspi模式用于离线独立运行 级联模式&独立模式 这两个模式通常共用一组拨码开关 当PL侧代码不用修改时可以用级联模式,jtag烧写器直接插到开发板上。 PS和PL都要接仿真器联调时用独立模式,PS的JTAG接到飞线处 开发环境和进口的芯片比,开发环境的变化 需要用到三个软件,vivado ,procise,IAR 。 PL:(1)Procise: 生成裸跑程序的bsp ,可以在export hardware 时选择多个裸跑模板,主要包括fsbl ,以及生成psoc 设备树的顶层,有基础的memory和lwip测试。 (2)IAR : 用来编译和调试裸跑应用程序的,因为 ps 是全新设计,外设地址和寄存器定义都 不同,ps 的裸跑bsp 完全重新设计的,所以完全不兼容xilinx的SDK。 IAR+Procise的部分功能相当于xlinx的sdk (3)Vivado: 主要和之前xilinx的一样,还是逻辑工程师配置pl侧的工具,可以生成bit,也可以用vivado 调试,但必须在独立模式下。 from vivado 流程是为了方便移植现有的ps 工程,不用在procise 里重新配置 PS:Petalinux :主要用来生成pl.dtsi,利用vivado 里的hdf 生成pl.dtsi 文件。 会更新 device-tree/hwplatform/pl.dtsi 文件内容,它会根据 hdf 文件里的 PL 部分设计变化, 一般需要有寄存器访问的 IP 才需要生成 pl.dtsi,即需指定–hdf 参数。 Petalinux 生成的文件系统可以在psoc 上使用,目前已经测试过2018.2 和2018.3 的 文件系统可以在psoc 上运行。 Linux 应用程序可以通过网口利用SDK 调试,这个调试也是兼容的 文档;DS101 和DS102 两个文档相当于xlinx的ug585。 UG102 是差异文档。 UG201 是硬件设计指导 UG202 是软件设计指导开发文档, 内存大小Rootfs :buildroot 默认最小配置为9.8MB,如果要放到qspi flash 的话,可以jffs2 或者ubi 文件系统。 Image.ub:4.9MB,包括zImage 和devicetree。 Boot.bin:732KB,加环境变量空间大约1MB Bit: 不压缩的话大小13MB。 总计大小:10MB+4.9MB+1MB+13MB=29MB,建议32MB 调试串口PS测共有两个调试串口,区别于xilinx的petalinux中简单直接的图形界面配置而言,FMQL更需要灵活去单独配置,一共有三个阶段的串口打印 Fsbl阶段: 为了在 FSBL 中使用 UART1 来打印输出。 第一步, 在 Procise 工程中勾选 UART1,使用的 MIO/EMIO 则根据电路板设计选择。 第二步, 在demo导出样例中, 重新导出 FSBL 和 DeviceTree。 注 1: UART0 的基地址为 0xE0004000, UART1 的基地址为 0xE0023000。 注 2:如果 Procise 中同时勾选了 UART0 和 UART1, FSBL 默认的打印串口将是 0xE0004000。用户如果仍需使用 UART1 就要手动修改为 0xE0023000。 确认无误后,编译 FSBL 得到 FSBL.out。 u-boot 阶段 为了在 u-boot 中使用 UART1 来打印输出。 第一步, 将 1.1 节导出的 DeviceTree 文件夹复制到 LinuxSDK 所在的 Linux 操作系统中。 第二步, 如下图所示,修改” FMQL-Linux-SDK/device-tree/hw-platform/ fmsh-psoc.dtsi”文件。将其中的“stdout-path = “serial0:115200n8”;”改为“stdout-path = “serial1:115200n8”;” 为了在 kernel 中使用 UART1 来输出打印。 第一步,先执行make fmsh_fmql_defconfig 修改 kernel 的配置, 参照下图,将“kernel hacking”中的 debug uart 更改为 UART1。 然后重新编译 kernel,打包进 image.ub 中。 之后就可以看到正常的启动打印了(uboot的调试串口会默认uart0为控制台串口,如果实际是则无需更改,若实际为uart1,但是只修改 kernel 中的配置使 debug uart 为 UART1, 未在 u-boot 的 bootargs 中配置“console=ttyPS1”,将导致启动的后半段 log 通过 ttyPS0(UART0) 打印出来,因为它被作为默认的控制台串口。 而如果 Procise 没有勾选 UART0,则启动流程将 pending) starting kernel 后的 early printk 打印也会相应正常 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |