欢迎来到皮皮网网首页

【ssh源码升级】【练手的漏洞源码】【think php后台源码】osl源码分析

来源:诸葛神算指标公式源码 时间:2024-11-24 14:11:53

1.如何在Zynq-7000上烧写PL Image
2.如何利用Zynq-7000的PL和PS进行交互
3.osl什么意思

osl源码分析

如何在Zynq-7000上烧写PL Image

       åœ¨Zynq-上编程PL大致有3种方法:

       1. 用FSBL,将bitstream集成到boot.bin中

       2. 用U-BOOT命令

       3. 在Linux下用xdevcfg驱动。

       æ­¥éª¤ï¼š

       1. 去掉bitstream的文件头

       ç”¨FSBL烧写PL Images没有什么好说的,用Xilinx SDK的Create Boot Image工具即可完成,不再赘述。用后两种方法需要把bitstream文件的文件头用bootgen工具去掉。

       ä¸€ä¸ªå…¸åž‹çš„bif文件如下所示:

       the_ROM_image:

       {

       [bootloader]<fsbl_name>.elf

       <pl_bitstream_name>.bit

       <u-boot_name>.elf

       }

       bif文件可以用文本编辑器写,也可以用Xilinx SDK的Create Boot Image工具生成。然后在命令行下用以下命令即可去掉bitstream文件的文件头。

       bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN

       "-split”参数可以生成以下文件:

       <pl_bitstream_name>.bit.bin

       2. 在U-BOOT下烧写PL Image

       å‘½ä»¤â€fpga load”和”fpga loadb”都可以。区别是前一个命令接受去掉了文件头的bitstream文件,后一个命令接受含有文件头的bitstream文件。

       åœ¨OSL .2上,缺省编译就可以完整支持写入PL Image的功能。但是在Petalinux .下,尽管可以在U-BOOT下看到命令”fpga”,还需要在文件

       <PROJ>/subsystems/linux/configs/u-boot/platform-top.h 中增加以下内容后重新编译才可以支持具体的功能。

       /* Enable the PL to be downloaded */

       #define CONFIG_FPGA

       #define CONFIG_FPGA_XILINX

       #define CONFIG_FPGA_ZYNQPL

       #define CONFIG_CMD_FPGA

       #define CONFIG_FPGA_LOADFS

       åœ¨OSL .2 U-BOOT中,具体的功能是在zynqpl.c的zynq_load()中实现的。

       3. 在Linux下烧写PL Image

       OSL Linux .2.中已经含有xdevcfg驱动了(之前就有,不过本文是在这个版本上验证的),直接用以下命令就可以完成PL Image写入。

       cat <path_to_storage_media>/<pl_bitstream_name>.bit.bin > /dev/xdevcfg

       Linux驱动的源代码在xilinx_devcfg.c中。因为驱动的编号是通过alloc_chrdev_region()动态分配的,所以不需要手工用mknod命令手动建立设备节点。

       åœ¨Linux驱动中,每次往DevCfg中写入字节,直到全部写完。

       4. 在用户程序中烧写PL Image

       ç›®å‰æ²¡æœ‰çŽ°æˆçš„源码来完成这个功能,不过可以用mmap()把DevCfg的寄存器映射到用户程序的虚地址中,然后参考一些现成的软件代码来完成这个功能:

        * FSBL中的pcap.c

        * U-BOOT中的zynqpl.c

        * Linux中的xilinx_devcfg.c

        * Xilinx SDK中的例子。例子位于以下位置,随SDK的版本会有变化。

        C:\Xilinx\SDK\.1\data\embeddedsw\XilinxProcessorIPLib\drivers\devcfg_v3_0\examples\index.html

       å°ç»“:

       DevCfg外设内部有自己的DMA,只需要简单的配置PL Image的基地址和长度到DevCfg寄存器,就可以完成Zynq- PL Image的加载。Xilinx已经提供了灵活的解决方案,如果开发者要把这个功能集成在自己的应用程序中,也有很多的代码可以参考,并不是很困难的任务。

如何利用Zynq-的PL和PS进行交互

       åœ¨Zynq-上编程PL大致有3种方法:

       1. 用FSBL,将bitstream集成到boot.bin中

       2. 用U-BOOT命令

       3. 在Linux下用xdevcfg驱动。

       æ­¥éª¤ï¼š

       1. 去掉bitstream的文件头

       ç”¨FSBL烧写PL Images没有什么好说的,用Xilinx SDK的Create Boot Image工具即可完成,不再赘述。用后两种方法需要把bitstream文件的文件头用bootgen工具去掉。

       ä¸€ä¸ªå…¸åž‹çš„bif文件如下所示:

       the_ROM_image:

       {

       [bootloader]<fsbl_name>.elf

       <pl_bitstream_name>.bit

       <u-boot_name>.elf

       }

       bif文件可以用文本编辑器写,也可以用Xilinx SDK的Create Boot Image工具生成。然后在命令行下用以下命令即可去掉bitstream文件的文件头。

       bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN

       "-split”参数可以生成以下文件:

       <pl_bitstream_name>.bit.bin

       2. 在U-BOOT下烧写PL Image

       å‘½ä»¤â€fpga load”和”fpga loadb”都可以。区别是前一个命令接受去掉了文件头的bitstream文件,后一个命令接受含有文件头的bitstream文件。

       åœ¨OSL .2上,缺省编译就可以完整支持写入PL Image的功能。但是在Petalinux .下,尽管可以在U-BOOT下看到命令”fpga”,还需要在文件

       <PROJ>/subsystems/linux/configs/u-boot/platform-top.h 中增加以下内容后重新编译才可以支持具体的功能。

       /* Enable the PL to be downloaded */

       #define CONFIG_FPGA

       #define CONFIG_FPGA_XILINX

       #define CONFIG_FPGA_ZYNQPL

       #define CONFIG_CMD_FPGA

       #define CONFIG_FPGA_LOADFS

       åœ¨OSL .2 U-BOOT中,具体的功能是在zynqpl.c的zynq_load()中实现的。

       3. 在Linux下烧写PL Image

       OSL Linux .2.中已经含有xdevcfg驱动了(之前就有,不过本文是在这个版本上验证的),直接用以下命令就可以完成PL Image写入。

       cat <path_to_storage_media>/<pl_bitstream_name>.bit.bin > /dev/xdevcfg

       Linux驱动的源代码在xilinx_devcfg.c中。因为驱动的编号是通过alloc_chrdev_region()动态分配的,所以不需要手工用mknod命令手动建立设备节点。

       åœ¨Linux驱动中,每次往DevCfg中写入字节,直到全部写完。

       4. 在用户程序中烧写PL Image

       ç›®å‰æ²¡æœ‰çŽ°æˆçš„源码来完成这个功能,不过可以用mmap()把DevCfg的寄存器映射到用户程序的虚地址中,然后参考一些现成的软件代码来完成这个功能:

        * FSBL中的pcap.c

        * U-BOOT中的zynqpl.c

        * Linux中的xilinx_devcfg.c

        * Xilinx SDK中的例子。例子位于以下位置,随SDK的版本会有变化。

        C:\Xilinx\SDK\.1\data\embeddedsw\XilinxProcessorIPLib\drivers\devcfg_v3_0\examples\index.html

       å°ç»“:

       DevCfg外设内部有自己的DMA,只需要简单的配置PL Image的基地址和长度到DevCfg寄存器,就可以完成Zynq- PL Image的加载。Xilinx已经提供了灵活的解决方案,如果开发者要把这个功能集成在自己的应用程序中,也有很多的代码可以参考,并不是很困难的任务。

osl什么意思

       OSL是码分Open Source License的缩写,意为开源许可证。码分

       开源许可证是码分一种法律文件,用于明确软件或其他开源项目的码分使用、分发和修改等方面的码分ssh源码升级权利和义务。它旨在确保开源项目的码分练手的漏洞源码自由使用和持续发展,同时也保护开发者和贡献者的码分权益。

       开源许可证通常包含一系列条款和条件,码分这些条款和条件规定了如何使用、码分复制、码分修改、码分分发和发布开源项目。码分例如,码分think php后台源码某些开源许可证可能要求用户在修改或分发项目时保留原始版权声明,码分或者要求用户在分发项目时提供源代码。码分这些要求确保了开源项目的持续可用性和可维护性,同时也鼓励了开发者之间的源码不全部开放合作和共享。

       常见的开源许可证包括MIT许可证、Apache许可证、GNU通用公共许可证(GPL)等。这些许可证各有特点,{ ffff00}源码适用于不同的开源项目和场景。例如,MIT许可证较为宽松,允许用户自由使用、修改和分发项目,而不需要承担任何责任;而GPL许可证则更加严格,要求任何使用或基于该项目开发的软件都必须开源,并遵循相同的许可证要求。

       总之,开源许可证是开源项目的重要组成部分,它确保了开源项目的自由使用和持续发展,同时也保护了开发者和贡献者的权益。在选择和使用开源许可证时,需要仔细了解其条款和条件,以确保项目符合自己的需求和期望。