解决方法:建工程的时候不要选择empty application,而是选择hello world,里面会自动包含platform.c,platform.h等。 另外,常用的xgpio.h头文件有时候需要自己添加路径(Paths and Symbols):比如我的在 D:\vivado\vivado2 Read More
1.终端中输入gedit hello.c ,然后输入程序; 2.使用gcc编译器,编译出在PC上运行的hello可执行程序:gcc ./hello.c -o hello-pc; 3.使用arm-xilinx-linux-gnueabi-gcc编译器,编译出在ARM上运行的hello可执行程序:arm Read More
1.一个简单的异步复位例子: 综合结果如下: 我们可以看到,FPGA的寄存器都有一个异步清零端(CLR),在异步复位设计中,低电平有效的rst_n复位信号就可以直接连在这个端口上。(如果是高有效的复位,综合时会把它取反后接在这个端口上) 2.一个同步复位的例子: 综合结果如下: 我们可以看到,该电路 Read More
一、分析 由于是异步FIFO的设计,读写时钟不一样,在产生读空信号和写满信号时,会涉及到跨时钟域的问题,如何解决? 跨时钟域的问题:由于读指针是属于读时钟域的,写指针是属于写时钟域的,而异步FIFO的读写时钟域不同,是异步的,要是将读时钟域的读指针与写时钟域的写指针不做任何处理直接比较肯定是错误的, Read More
驱动程序myled.c编写完成之后,需要对其进行编译,为了方便编译程序,需要编写一个Makefile文件 其中fd=open就是打开myled这个设备,val是输出到led的值,最后通过write将其值写入到led寄存器 Read More
FIFO是一种先进先出的数据缓存器,他与普通存储器相比: 优点:没有外部读写地址线,这样使用起来非常简单; 缺点:只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。 根据FIFO工作的时钟域,可以将FIFO分为同步 Read More
目标:ZedBoard上运行linux系统。 需要什么:图中上色部分。 应该做哪些工作:上色部分之前的所有步骤。 由上图得知,为了顺利在zedboard上构建嵌入式Linux操作系统,我们一般需要如下工具: 1.Xilinx Vivado套件; 2.虚拟机软件VMware; 3.Ubuntu系统镜像 Read More
如果使用make menuconfig的方式配置内核,又碰巧系统没有安装ncurses库(ubuntu系统默认就没有安装此库),就会出现错误,错误信息大体上如下: ncurses库是字符终端下屏幕控制的基本库,可能很多新开发的程序都不使用了,不过如果要编译一些老程序,还经常用到。 Read More
由DTS文件生成DTB 文件,DTB是U-BOOT用来传递给LINUX内核的参数的一种文件形式。 DTB:device tree blob 1,在内核中寻找:arch/arm/boot/dts/digilent_zed.dts2,生成EXT3 文件系统的设备树 ./scripts/dtc/dtc - Read More
Linux 编译:1,首先解压缩内核。2,make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- digilent_zed_defconfig(或者xilinx_zynq_defconfig) [注2] 3, make ARCH=arm CROSS Read More