- 博客(14)
- 资源 (17)
- 收藏
- 关注
原创 ZYNQ AMP双核linux+裸机同时运行
得到的u-boot文件重命名为u-boot.elf,然后将其拷贝到Windows系统的某个目录下,制作BOOT.BIN文件,制作方法跟以前是一样的,在SDK软件中右键单击FSBL工程,选择Create Boot Image菜单,在弹出来的界面当中进行配置。BOOT.BIN文件替换完成之后,将SD卡插入开发板启动,在启动内核之前,我们需要简单地修改 uboot的环境变量,目的是为了让Linux系统只能使用一个CPU,也就是CPU0,不要使用CPU1,把CPU1独立出来运行一个裸机程序;
2021-06-30 00:50:04 4148 2
原创 makefile语法步骤总结
# $(wildcard 指定文件类型) 用于查找指定目录下指定类型的文件# 这条规则表示,找到目录./src下所有后缀为.c的文件,并赋值给变量SRC。命令执行完,SRC变量的值:./src/ask.c ./src/100.cSRC = $(wildcard ./src/*.c)# $(patsubst 原模式, 目标模式, 文件列表) 用于匹配替换# 这条规则表示,把变量 SRC 中所有后缀为.c的文件替换为.o。 命令执行完,OBJ变量的值:./src/ask.o ./src/100.
2021-06-30 00:07:41 4476 3
原创 DSP SRIO接口收发配置
5,6位用于选择Doorbell中断状态寄存器,对于TI DSP的srio包含了四个中断状态寄存器,即DOORBELL[0-3]_ICSR,每个寄存器仅有16位有效,即每个寄存器可以支持16个中断源,所以四个寄存器可以支持64个中断源,在TI Nyquist的4 core DSP中,我们在使用中可以为每个core分别配置一个ICSR寄存器,这样当对应的寄存器的某位置位了,相应core会相应该中断。另一端FPGA或DSP检测到DSP的数据后,进行缓存,检测收到门铃后延迟一段时间并回发收到的数据。
2021-06-15 01:04:49 3469
原创 DSP6748 IIC读写使用
函数对C6748的IIC0模块所在复用引脚的功能配置为IIC引脚。设置SYSCFG0模块的PINMUX4寄存器的PINMUX4_15_12和PINMUX4_11_8字段都为2,则设置了引脚功能为I2C0_SDA和I2C0_SCL。
2021-06-15 00:02:55 1315
原创 DSP UART配置和使用
一,初始化1,给UART模块上电2,执行必要的设备pin多路复用设置(请参阅设备特定的数据手册)。,3通过将适当的时钟除数值写入除数锁存寄存器(DLL和DLH)来设置所需的波特率
2021-06-14 14:10:28 3261
原创 OMAPL138 DSP程序固化
用CCS5 import “NANDWriter_DSPproject”,NANDWriter_DSPproject文件下载网址: https://sourceforge.net/projects/dvflashutils/files/OMAP-L138/v2.40/
2021-06-10 00:20:04 1111
原创 ZYNQ移植RTthread到Microblaze和sdk和vitis
(1)添加src文件夹,include文件夹到rt-thread文件夹下,然后添加libcpu下Microblaze部分内容到rt-thread文件夹下。(2)添加对 Microblaze cpu 的 bsp 文件,该文件在 bsp 路径下的 Microblaze路径下,我们拷贝该路径下的所有.c 和.h 文件到工程中, main 函数所在文件application.c是整个系统的应用部分,所以将该文件从 rt-thread 文件夹中移出到软件工程的根目录(拖动即可)。
2021-06-06 19:41:23 1736 6
原创 ZYNQ ad9226 块设备读取数据
内核分离思想本质:将原先驱动中的硬件和软件撤离分开, 软件一旦写好,将来硬件发生变化,无需改动软件,要改只改硬件部分即可!提高驱动的可移植性!这样驱动开发者的重心放在硬件部分即可,软件一旦写好需要改动! platform_driver_unregister ( &软件节点对象 ); 注册字符设备驱动或者混杂设备驱动,关键是为了给用户提供访问硬件的操作接口采用platform机制实现驱动,也就是将原先驱动中的入口函数所做的事情现在统统移到probe函数中完成(因为probe函数调用)
2021-06-06 11:00:27 3850 1
原创 linux SPI驱动开发
SPI中断的步骤:linux内核分离思想的实现基于platform机制原理第一步:向内核注册SPI总线以及SPI主机控制器;第二步:向内核申请一个SPI主机控制器的空间,注册我们要用的主机控制器;第三步:向内核注册SPI设备,以及构造file_operation结构体;重点关注struct platform_device和struct platform_driver这两个结构体。底层简历连接以后用户空间就可以通过open、write、read、ioctl函数来操作字符设备spidev了。
2021-06-06 01:32:45 1755
原创 ZYNQ petalinux系统使用axi_bram进行PL与PS数据交互
可以用BRAM,在PS和PL之间进行数据的交换。C, 最终sys_mmap调用底层驱动的mmap接口,并且内核将第2步创建这个对象的首地址传递给底层驱动的mmap接口,将来底层驱动的mmap接口可以通过这个对象的指针来获取到用户空闲虚拟内存的属性 (PROT_READ|PROT_WRITE,起始地址,大小,偏移量等等)本质:与其说是将一个文件映射到用户的虚拟地址上不如说是将这个文件对应的硬件的物理地址,映射用户的虚拟地址上,将来用户访问这个用户虚拟地址就是在访问对应的外设的物理地址。
2021-06-05 23:06:24 2060
原创 ZYNQ microblaze boot.bin固化步骤
一,ZYNQ移植软核的原理FPGA规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在开发应用程序的时候就不用直接去写驱动物理硬件的代码,而是直接调用Windows提供的API就行了。
2021-06-05 19:21:25 2026
原创 ZYNQ axi4-full-master和slave总线搭建
AXI4:面向高性能地址映射通信需求,是面向地址映射的接口,最大允许256次的数据突发传输;AXI4-Lite:是一个轻量级的地址映射单次传输接口,占用很少的逻辑单元。AXI4-Stream:面向高速流数据传输;去掉了地址项,允许无限制的数据突发传输规模。axi-full-slave的axi_awready,当满足条件(~axi_awready&&S_AXI_AWVALID &&~axi_awv_awr_flag && ~axi_arv_arr_flag)=1 的时候表示可以进行一次AXI-FULL的 ..
2021-06-05 10:59:19 1740
原创 ZYNQ OCM和DDR核间数据共享速度测试
核间CPU0和CPU1数据共享有两种方式,一是使用DDR的方式,二是使用OCM的方式,然后使用软中断通知彼此。要是CPU处理任务过于繁重,需要启动双核进行任务分配,核间交互的速度决定了ZYNQ处理性能能否够, 核间数据传输的速度是多少资料很少,这里我们用板子测试一下。CPU0同时验证CPU1发送的反馈数据,若反馈数据正确则结束计时,计算处理器数据交互速率;若反馈数据有误,则结束流程并提示数据异常。为保证核间交互速率验证的口靠性, a,b,c中分别都使用SMP架构,AMP架构,openAMP架构,进行速度测试
2021-06-04 23:23:07 2907 2
线程加锁程序,pthread-mutex-t
2022-10-18
基于udp协议的通信模型udpServer.c和udpClient.c
2022-10-18
阻塞IO驱动代码和makefile
2022-10-16
AsynchronousIO,异步IO驱动代码和makefile
2022-10-16
非阻塞IO驱动和makefile
2022-10-16
PL-PS的中断驱动程序,带makefile
2022-10-16
vivado(2014+2016+2017+2018+2019+2020都能使用) SRIO licence
2022-10-16
ZYNQ AD9361的裸机SDK配置代码
2022-10-15
QPSK调制解调代码MATLAB仿真
2022-10-15
BPSK调制解调MATLAB代码
2022-10-15
16QAM 是正交移幅键控调制
2022-10-15
单载波频域均衡(SC-FDE) 的设计
2022-10-15
2PSK调制解调原理,MATLAB代码
2022-10-15
2FSK调制解调实验,MATLAB代码
2022-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人