自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (17)
  • 收藏
  • 关注

原创 linux内核中断机制及中断驱动

1, 计算机为什么有中断机制? 由于外设的处理速度远远慢于CPU的处理速度 为了保证CPU和外设的数据通信正确,一般呢首先可能考虑使用轮询机制(轮询就是死等),如果轮询的时间过程长,会大大降低CPU的利用率(CPU不能干其他的事情,只能等待当前这个硬件)此时还可以考虑使用中断机制,当CPU发现设备没有准备就绪, CPU干其他的事情(比如做一个算法)一旦外设准备好了,外设会给CPU发...

2020-03-28 19:58:47 1295

原创 线扫激光算法原理

一:线扫激光算法原理激光器发出的激光束经准直聚焦后垂直入射到物体表面上,表面的散射光由接收透镜成像于探测器的阵列上。光敏面于接收透镜的光轴垂直。如图:当被测物体表面移动x,反应到光敏面上像点位移为x’。a为接收透镜到物体的距离(物距),b为接收后主面到成像面中心的距离(一般取焦距f),θ为激光束光轴与接收透镜之间的夹角。D为激光光束轴到透镜中心的距离。接收透镜的焦距为f,其余的参数如下图:...

2020-03-12 00:17:07 14842 9

原创 ZYNQ petalinux系统启动文件固化到FLASH

首先明确:petalinux启动文件从FLASH启动系统,也就是将启动文件放入FLASH中。1,vivado配置:2,导入硬件后配置petalinux source /opt/Xilinx/Vivado/2017.4/settings64.sh source /opt/pkg/petalinux/settings.sh petalinux-create --type...

2020-03-10 23:54:53 7799 4

原创 ZYNQ使用AXI_Ethernet编译系统扩展多网口

1,使用内核版本4.9:linux-xlnx-xilinx-v2017.4(1)petalinux-create --type project --template zynq --name lwip 进入lwip文件夹执行:petalinux-config --get-hw-description your_wapper.hdf ,导入硬件。...

2020-03-10 00:33:18 11174 5

原创 linux内核字符设备驱动开发

前言:1, 设备驱动定义和内容 (1)一个驱动一定要操作硬件;(2)驱动将操作硬件过程进行封装,给应用程序访问; 一切(用户要向访问的一切硬件)皆文件(本质就是在访问对应的文件) 字符设备文件的访问必须利用系统调用函数明确:应用程序访问设备文件本质就是在访问硬件 以第一个UART为例: int fd = ...

2020-03-28 21:21:13 772

原创 嵌入式系统启动文件及其流程的理解

(3)内核启动以后,运行到最后,根据bootloader传递过来的参数,内核根据此参数,去到 “某个地方”找根文件系统rootfs,找到以后,执行根文件系统rootfs中的第一号进程init,最后init第一号进程创建一个子进程来运行sh程序(shell),接收和处理用户输入的命令,例如ls,cd,mkdir等,至此linux系统运行完毕!说明:将内核从Nand的5M开始,读5M到内存的 0x50008000地址,然后再利用bootm命令从内存的0x50008000启动内核,内核就开始玩命的运行了。

2020-03-27 23:56:31 1840 1

原创 一维距离像时域合成算法

合成一维距离像数据之前,需要对下变频DDC后的进行数据截取:截取之前输入数据为(1)输入DDC处理后和通道的IQ数据N点(2)指示系统提供的目标距离(3)距离波门大小(4)当前工作波形脉冲宽度一维距离相合成的的输入内容包括:(1)截取后和通道的IQ数据M点(2)DDC处理后子脉冲数据率(3)工作载频(4)子脉冲的脉宽,带宽及数量(5)子脉冲的脉冲重复频率(6)波束中心相对于地面的速度(7)波门大小(8)距离波门的起始时刻

2020-03-27 15:51:03 2782

原创 zedboard低版本编译生成linaro系统启动文件

3、修改include/configs/zynq-common.h文件,把sdboot参数修改成如下,即删除了读取ramdisk的操作,并把bootm的第二个参数修改成“-”,表示无ramdisk。下载u-boot源代码 ,官网是https://github.com/Xilinx/u-boot-xlnx.git,直接通过git下载,或者下载zip压缩包。下载系统的链接:https://releases.linaro.org/archive/12.09/ubuntu/leb-panda/

2020-03-26 15:49:01 631

原创 QT 4.8.6安装和交叉编译

一,QT4.8.6安装ARM版本这个是qt目录,ARM的1,替换qmake.confg./configure-embeddedarm-xplatformqws/linux-arm-gnueabi-g++-little-endian-opensource-host-little-endian-confirm-license-nomakedemos-nomakeex...

2020-03-26 15:32:10 3929

原创 ZYNQ 使用AMP实现双核裸机并重启CPU1复位

这个函数的第三个参数是CPU号,但要注意CPU号不是简单的0、1、2等,而是每一位指代一个CPU号,可以参考UG585寄存器表mpcore中ICDIPTR的解释,0bxxxxxxx1指向CPU0,0bxxxxxx1x指向CPU1,因此本程序中设置CPU1号的值为 0x2。在程序中,需要CPU0唤醒CPU1,可以在UG585文档看到相关解释,第一步是向0xffffffff0地址写入CPU1的访问内存基地址,在本实验中也就是0x20000000,第二步是通过SEV指令唤醒 CPU1 并且跳转到相应的程序。

2020-03-26 01:45:27 4330 1

原创 ZYNQ PS PETALINUX程序开机自己启动配置

2,建立shell脚本文件的app工程:petalinux-create -t apps --template install -n startup --enable。进入 test_autostart/project-spec/meta-user/recipes-apps/startup中修改startup.bb文件。进入test_autostart/project-spec/meta-user/recipes-apps/startup中修改startup.bb文件。

2020-03-25 01:32:11 3796 1

原创 ZYNQ 免IIC驱动读写MCP4661T继电器

读写地址是不一样的,寄存器地址后四位是写0x00读0x0C,严格来说应该是后3位,最后一位是数据位的最高位,这个无关紧要,一般不适用最高。数字电位器 50k 欧姆 2 电路 257 抽头 I²C 接口 16-QFN,MCP4661T-503E/ML。零件编号:MCP4661T-503E/MLTR-ND - 卷带(TR)MCP4661T-503E/MLCT-ND - 剪切带(CT)电阻 - 触点 (欧姆)(典型值):75。供应商器件封装:16-QFN(4x4)工作温度:-40°C ~ 125°C。

2020-03-23 00:20:30 4964 1

原创 使用TFTP和NFS windows和arm之间传文件

先连网线上最近主控程序的那张主控板,确认能从电脑ping通主控;然后在电脑某个盘新建tftp文件夹,这里C盘为例,把归档库、配置文件、主控及测试程序、拷进tftp文件夹根目录(注意不能有文件夹存在),打开tftp工具,分别点击Tftp→Configure(配置)→Browse tftp -g 192.168.1.12 -r 123.txt 具体操作:在开发板输入下面命令传文件到电脑tftp -p 192.168.1.10 -l 245.txt请将 PC 下的防火墙关闭或将

2020-03-22 15:31:32 1736

原创 ZYNQ 裸机和petalinux扩展CAN接口

CAN总线使用两根线来连接各个单元:CAN_H和CAN_L,CAN 控制器通过判断这两根线上的电位差来得到总线电平,CAN 总线电平分为显性电平和隐性电平两种。Frame[2]是8字节数据的前四个,frame[3]是8字节数据的后四个,如果长度不足8的不用管后面的数据,不用填0进去;标准格式和扩展格式的主要区别是仲裁段中帧ID的长度,标准帧的帧ID长度是11位,扩展帧的帧ID长度是29位。Frame[0]对应仲裁段,frame[1]对应控制段,frame[2]和frame[3]对应数据段。

2020-03-20 00:21:52 5151 1

原创 ZYNQ配置IIC接口读取eeprom和iictool使用

1,对于pl_iic_original.v,读写地址WRITE_READ_ADDR,写数据WRITE_DATA是在程序中固定的读开始,写开始,这两个信号是从按键PL_KEY1,PL_KEY2获得,读数据直接以PL端LED来显示。其中slv_reg0,slv_reg1,slv_reg2,slv_reg3分别在SDK软件中设置读写地址,写数据,写开始,读开始信号,这些数据设置好之后送往 AXI 总线。pl_iic_original.v,iic.v是当前要打包成AXI4 IP的新文件。

2020-03-19 21:25:11 3654 3

原创 将本地文件通过终端上传到linux阿里云服务器

进程间通信方式(1)文件(2)信号(3)管道(4)共享内存(5)消息队列(6)信号量集(7)网络(重点)使用信号量集实现进程间的通信1 ,基本概念(1)什么是信号量?信号量本质就是一种计数器,用于控制同时访问同一个共享资源的进程个数/线程个数(2)什么是信号量集?信号量集本质就是信号量的集合,也就是由若干个信号量组成的集合,主要用于控制多种共享资源各自同时被访问的进程/线程个...

2020-03-19 00:14:54 1600

原创 嵌入式linux进程间通信七种方法

通信方式(1)文件 (2)信号(3)管道(4)共享内存(5)消息队列(6)信号量集(7)网络其中(4)(5)(6)统称为 XSI IPC通信方式一,文件的管理文件的基本操作:C语言中文件操作函数有:fopen()/fclose()/fread()/fwrite()/fseek()unix中文件操作函数有:open()/close()/read()/write()/...

2020-03-18 23:44:40 1004

原创 滤波器本质和举例

一种去掉偶尔产生不规则极端数值点的滤波方法。滤波器实质上就是选频,所以首先要在频域角度理解,但在日常使用中我们无法直接在频域进行操作,只能在时域操作。伟大的傅里叶告诉我们时域频域是有某种关联的,也就是傅里叶变换。通俗一点就是我们要在时域进行操作,而这种操作对应频域就是一个曲线,通过与信号频域相乘既可选频,选频部分的曲线值大,其他部分值小。这也就是著名的卷积。而卷积正是滤波器核心。数字滤波器的本质就是通过计算来模拟滤波器的时频特性,以达到你想要的信号效果,比如去除噪声等。

2020-03-18 23:16:45 1852

原创 复旦微开发过程中遇到的问题总结(一)

启动时候qspi不可以串行io访问,如果可以的话,那就bin就可以超过16MB。但是先下载PL把JLINK打通然后用JLINK下载到QSPI程序,第一次没问题(在这次之前都可以正常烧录),但是JLINK把这个下载完后,再次烧录的时候,发现JLINK灯红绿闪烁并下载失败无法连接。十三,7045程序跑起来以后,有什么办法通过串口给ps发指令,然后通过pl jtag在线加载bit,加载完成后通知ps继续运行,ps程序裸跑,不重新加载,也就是能随时在线跟新PL bit程序运行而又不影响PS程序造成死机?

2020-03-18 22:54:42 11250

原创 脉冲式激光测距机原理

激光测距设计:大致流程:1,基本原理和关键:激光脉冲测距与雷达测距在原理上是完全相同的。在测距点激光发射机向被测目标发射激光脉冲,光脉冲穿过大气到达目标,其中一小部分激光经目标反射后返回测距点,并被测距机上的探测系统接收。测出从激光发射时刻到反射光被接收时刻之间的时间间隔t,根据已知光速,公式:S=Ct/2(S距离;C激光空气中速度;t发射和接收回波的时间差。脉冲式激光测距技术、干涉法激光测距技术、反馈法激光测距、三角法激光测距技术、相位式激光测距技术。最常用的是脉冲激光测距方案和关键...

2020-03-12 00:41:59 17504 2

原创 嵌入式线激光测距传感器

一:分步说明:摄像头的标定(Small Camera Calibration)1: 准备标定图片标定图片需要使用标定板在不同位置,不同角度,不同姿态下拍摄,最少需要3张,以10—20张最好。标定板需要是黑白相间的矩形构成的棋盘格图,制作精度要求要高。标定采用的是22*22大小1mm/格误差在1um内的棋盘格。2 :对每一张图片提取角点信息需要使用findChessboardCo...

2020-03-12 00:09:48 1949 7

原创 ZYNQ axi_uartlitle IP核扩展232或者422

嵌入式Linux系统中,串口被看成终端设备(tty),包括3个结构体:uart_driver/uart_port/uart_ops定义在文件 include/serial_core.h中,实现一个uart驱动程序要实现返3个结构体即可。因为串口fifo只有16字节,所以,发送函数先关中断,接着将数据写入fifo中,最后开中断,发送完毕会触发中断,中断函数根据NumBytes、fifo状态和已发送字节数,继续关中断,发送数据,开中断,触发中断,如此循环,直到所有数据都发送完。1,生成 Bit 文件。

2020-03-11 00:48:35 4858 1

原创 ZYNQ在linux通过AXI_GPIO操作灯

在project-spec/meta-user/recipes-bsp/device-tree/files/pl.dtsi。|gpiochip*|该目录下保存系统中GPIO寄存器信息:每个寄存器控制引脚的起始编号base,寄存器名称,引脚总数||edge|设置GPIO口输入时触发方式:“none”, “rising”, “falling”, or “both”||value|GPIO为输出时可设置GPIO口电平,"0"为低电平;|direction|配置GPIO口输方面,"in"为输入;

2020-03-10 00:57:21 6194 1

原创 ZYNQ petalinux将系统启动文件固化到EMMC

2.根据分区,修改petalinux-config ---> u-boot Configuration ---> u-boot script configration。ubuntu20.04安装后没有wifi,网卡为intel AX201,删除/usr/lib/firmware中的iwlwifi-ty-a0-gf-a0.pnvm。然后将image.ub使用cp指令拷贝进 /mnt/mmcFat即可,也就是把uImage 拷贝到 /dev/mmcblk1p1;--可以设置为128MB。

2020-03-08 21:32:08 10312 2

首次使用HS3内置JTAG,需要用批处理一下,最好在cmd下去运行

首次使用HS3内置JTAG,需要用批处理一下,最好在cmd下去运行

2023-11-28

decode-video-h264-h265

能解H264和H265视频格式

2023-03-31

subomb programFlash-tcl

subomb programFlash_tcl,一键式固化程序

2023-03-31

OMAPL138中DSP的UPP接口代码

OMAPL138中DSP的UPP接口代码

2022-10-18

串口在线升级代码,PS操作的

update,uart

2022-10-18

C语言指针原理用法和代码

一级二级指针,各种字符串函数用指针实现,传参,指针函数相关

2022-10-18

线程加锁程序,pthread-mutex-t

pthread_mutex_t mutex; pthread_mutex_init(&mutex,NULL); pthread_mutex_lock(&mutex); pthread_mutex_unlock(&mutex); pthread_mutex_destroy(&mutex);

2022-10-18

基于udp协议的通信模型udpServer.c和udpClient.c

服务器: (1)创建socket (2)通信地址 (3)绑定socket和通信地址,使用bind函数 (4)监听,使用listen函数 (5)响应客户端的连接请求,使用accept函数 (6)进行通信 (7)关闭socket

2022-10-18

阻塞IO驱动代码和makefile

//向系统注册一个字符设备 cdev_add(&bio_dev.cdev, bio_dev.devno, 1); //MIO_PIN_50申请GPIO口 ret = gpio_request(MIO_PIN_50, "key"); //将原子变量置0,相当于初始化 atomic64_set(&bio_dev.state, 0);

2022-10-16

AsynchronousIO,异步IO驱动代码和makefile

//指定信号SIGIO,并绑定处理函数 signal(SIGIO,aio_async_func); //把当前线程指定为将接收信号的进程 fcntl(fd,F_SETOWN,getpid()); //获取当前线程状态 fcntl(fd, F_GETFD); //设置当前线程为 FASYNC 状态

2022-10-16

非阻塞IO驱动和makefile

在linux中常见IO复用的方法有select、poll和epoll。可以使用selectpoll和epoll中的任何一种,对于高并发的场合只使用epoll这一种。另外有别于阻塞IO,非阻塞IO的查询与读取是分开的,即先查询再读取,只有查询阶段是非阻塞的

2022-10-16

PL-PS的中断驱动程序,带makefile

#已经编译过的内核源码路径 KERNEL_DIR = /home/kernel export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- #当前路径 CURRENT_DIR = $(shell pwd) MODULE = interrupt

2022-10-16

vivado2017.4 扩展多网口多串口

vivado2017.4 扩展多网口axi_ethernet+DMA 和 多串口axi_uartlittle

2022-10-16

88E151X 芯片手册,phy配置

phy配置,88E151X 芯片手册

2022-10-16

vivado(2014+2016+2017+2018+2019+2020都能使用) SRIO licence

vivado licence with SRIO function+ISE licence; ISE,Vivado2016 2017 2018 2019 2020都能使用。

2022-10-16

ZYNQ AD9361的裸机SDK配置代码

ad9361_get_en_state_machine_mode(ad9361_phy, &ensm_mode); ad9361_get_en_state_machine_mode(ad9361_phy, &ensm_mode); ad9361_get_en_state_machine_mode(ad9361_phy, &ensm_mode);

2022-10-15

QPSK调制解调代码MATLAB仿真

[~,bo]=max(cor_abs(1:length(cor_abs)/2)); index_s=bo-N+1; index_e=index_s+len_frame-1; out_signal=signal(index_s:index_e);

2022-10-15

BPSK调制解调MATLAB代码

m=length(connections);%移位寄存器的级数 %其他位等于前边的寄存器值加上连接值乘寄存器最后一位 end registers=new_reg_cont; seq(i)=registers(m);%经过一次循环寄存器输出一位得到m序列的其他位

2022-10-15

16QAM 是正交移幅键控调制

16QAM 是正交移幅键控的一种调制方式,有很高的频道利用率。正交移幅键控信号 是一种载波键控信号,它有同相和正交两路载波,以幅度键控方式独立地传送数字信息。

2022-10-15

单载波频域均衡(SC-FDE) 的设计

多载波调制本质上是一种频分复用技术。频分复用(FDM)技术早在 19 世纪以前就已 经被提出,它把可用带宽分成若干相互隔离的子频带,同时分别传送一路低速信号,从而 达到信号复用的目的。

2022-10-15

全数字QAM调制解调收发代码

1. 理解 QAM 调制的一般原理 2. 掌握数字调制的一般流程 3. 掌握全数字接收机的设计方法 4. 理解同步的概念

2022-10-15

2PSK调制解调原理,MATLAB代码

相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。在 2PSK 中,通常用初始相位为 0 和π分别表示二进制‘1’和‘0’。

2022-10-15

2FSK调制解调实验,MATLAB代码

2FSK 信号常用的解调方法是采用相干解调和非相干解调。其解调原理是将2FSK信号 分解为上下两路 2ASK 信号分别进行解调,然后进行判决。

2022-10-15

2ASK调制解调实验,数字信号的键控调制

2ASK又称为二进制启闭键控(On-Off Keying),它是以单极性不归零码来控制载波的开启和关闭,而其频率和初始相位保持不变。

2022-10-15

极速PDF阅读器reader

极速PDF阅读器,fast PDF reader

2022-09-28

.vimrc,对ubuntu中格式进行配置

在虚拟机中对ubuntu中格式进行配置的.vimrc,五颜六色的。

2022-09-28

网口速度测试,数据保存软件

网口速度测试,和数据按不同端口保存软件

2022-05-04

串口助手和网口助手下载

串口网口助手自己选择,常用的版本

2022-05-04

windows 64位向日葵服务端2022版下载

电脑远程协助,远程开机,远程控制,windows 64位向日葵服务端2022版下载

2022-05-04

windows 64位向日葵客户端2022版

电脑远程协助,远程开机,远程控制,windows 64位向日葵客户端2022版下载

2022-05-04

xilinx_axidma.zip

AXI_DMA petalinux官方驱动配置文件

2021-08-09

insert_imaginary_data.v

中间传输模块

2021-08-02

ad7606.v模块verilog代码

FPGA AD7606 300K 8路采集,AXI传输数据

2021-08-02

PL_ad7606_vivado.zip

vivado2017.4工程,ZYNQ PL采集AD7606,做FFT

2021-04-07

mqtt_client.exe

mqtt_client.exe 上位机,GO语言写的

2021-03-10

emqx-windows-4.2.7.zip

emqx-windows-4.2.7.zip,mqtt服务器

2021-03-10

mqtt-demo-linux-embed.tar.gz

mqtt 应用程序交叉编译

2021-03-10

paho.mqtt.-master.tar.gz

编译mqtt使用的库

2021-03-10

logger.zip

logger_->info logger_->error logger_->warn 在linux C++中logger日志的用法

2020-04-28

axidma.zip

AXI_DMA在传输数字,图片的测试程序和驱动程序,在petalinux下编译,然后拷贝到sd卡insmod axidma.ko

2020-03-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除