- 博客(15)
- 资源 (40)
- 收藏
- 关注
原创 网络编程学习
我们将一个小区比作一台计算机,一台计算机里面跑了很多程序,怎么区分程序呢,用的是端口,就好像小区用门牌号区分每一户人家一样。手机送到小明家了,怎么进去呢?从大门进啊,怎么找到大门呢?门牌号呀。不就相当于从互联网来的数据找到接收端计算机后再根据端口判断应该给哪一个程序一样吗。小明家的入口就可以用小区地址+门牌号进行唯一表示,那么同样的道理,程序也可以用IP+端口号进行唯一标识。那么这个程序的入口就被称作Socket。
2023-09-05 20:12:54 79
原创 计算机组成原理
指针就是通过这种方式将地址赋值给指针,然后指针能快速操作对应数据,而不需要像其他数据一样,使用时还需要先读取,再复制到另一个内存区域,指针直接可以修改该地址的数据,相当于直接给了一把钥匙。页表(Page Table),每次进行虚拟地址到物理地址的映射之时,都需要读取页表,从数学角度来说页表就是一个函数,入参是虚拟页号(Virtual Page Number,简称 VPN),输出是物理页框号(Physical Page Number,简称 PPN,也就是物理地址的基址)。(其实类似于cache!
2023-09-05 20:12:24 88
原创 freertos学习笔记
在 FreeRTOS 中,定义变量的时候往往会把变量的类型当作前缀加在变量上,如 char 型变量的前缀是 c,short 型变量的前缀是 s,long 型变量的前缀是 l,portBASE_TYPE 类型变量的前缀是 x,函数名包含了函数返回值的类型、函数所在的文件名和函数的功能,如果是私有的函数则会加一个 prv(private)的前缀。相比前后台系统中后台顺序执行的程序主体,在多任务系统中,根据程序的功能,我们把这个程序主体分割成一个个独立的,无限循环且不能返回的小程序,这个小程序我们称之为任务。
2023-09-05 20:12:18 103
原创 qt部署1
安装完成之后进入到 Qt 安装目录下,也就是/home/zynq/tools/qt-everywhere-opensource-src-5.9.6/install,进入到该目录下,该目录下包括了Qt头文件所在文件夹include、Qt库文件所在文件夹lib以及Qt插件所在文件夹plugins。然后就是编译进板子,实现进入/opt/pkg/petalinux/2018.3/components/yocto/source/arm/layers/meta-qt5/recipes-qt/qt5。
2023-09-05 20:11:42 235
原创 linux驱动开发3
Linux 阻塞和非阻塞 IO 实验查看应用程序cpu使用率:输入命令行top即可。当应用程序对设备驱动进行输入/输出操作的时候,如果不能获取到设备资源,那么阻塞式 IO 就会将应用程序对应的线程挂起,直到设备资源可以获取为止。对于非阻塞 IO,应用程序对应的线程不会挂起,它要么一直轮询等待,直到设备资源可以使用,要么就直接放弃。(便秘了就直接不去了,不便秘就一直等坑位。)等待队列:Linux 内核提供了等待队列(wait queue)来实现阻塞进程的唤醒工作,如果我们要在驱动中使用等待队列,必须创
2023-09-05 20:11:21 36
原创 linux应用提高
其实设备文件便是各种硬件设备向应用层提供的一个接口,应用层通过对设备文件的 I/O 操作来操控硬件设备,所以设备文件其实是与硬件设备相互对应的。设备文件通常在/dev/目录下,我们也把/dev 目录下的文件称为设备节点。sysfs 文件系统页可以对硬件系统进行操作,sysfs 是一个基于内存的文件系统,同 devfs、proc 文件系统一样,称为虚拟文件系统;它的作用是将内核信息以文件的方式提供给应用层使用。
2023-09-05 20:11:13 26
原创 linux驱动开发2
MIO:多功能IO接口,属于Zynq的PS部分,在芯片外部有54个引脚。这些引脚可以用在GPIO、SPI、UART、TIMER、Ethernet、USB等功能上,每个引脚都同时具有多种功能,故叫多功能。EMIO:扩展MIO,依然属于Zynq的PS部分,只是连接到了PL上,再从PL的引脚连到芯片外面实现数据输入输出gpio驱动代码分析#define GPIOLED_CNT 1 /* 设备号个数 */#define GPIOLED_NAME "gpioled" /* 名字 *//* dtsl
2023-09-05 20:09:19 33
原创 乱七八糟的知识点
静态变量 类型说明符是static。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。文件描述符:文件描述符理解:简称fd,当应用程序请求内核打开/新建一个
2023-09-05 20:09:06 36
原创 自学习笔记-linux驱动开发
返回值就是创建好的设备。同样的,卸载驱动的时候需要删除掉创建的设备,设备删除函数为 device_destroy,void device_destroy(struct class *class, dev_t devt)参数 classs 是要删除的设备所处的类,参数 devt 是要删除的设备号。major:主设备号,Linux 下每个设备都有一个设备号,设备号分为主设备号和次设备号两部分,主设备号代表一类设备,eg:iic下各个设备,其中设备号为32位,高12位为主设备号,低20位为次设备号。
2023-09-05 20:08:48 334
原创 conda 操作学习
conda env listconda activate xxconda install 库conda list(当前虚拟环境下的库)tab自动补全conda info (conda详细信息)conda create --name xx python=3.7(创建3.7版本的环境)conda remove --name xxconda list -n xx查看某个环境下的库conda search xx(查看指定包详情)anaconda search -t conda xx(在源中
2022-03-24 14:11:47 168
原创 ubuntu学习
ubuntu 文件结构/根目录bin 存放二进制可执行文件boot内核启动文件dev设备驱动文件dts设备树文件etc系统配置文件,账号密码等home用户文件夹都在里面lib存放库文件media存放插拔设备文件mntopt可选择存放文件root系统管理员目录sbin与bin类似但是是系统开机过程需要的命令srv服务相关目录如网络服务,serve服务sys内核信息tmp临时目录var存放变换文件,如日志文件usr,不是user缩写,存放系统用户相关文件proc虚拟文件系
2022-03-24 14:10:36 31
原创 petalinux自学笔记
petalinux-boot启动petalinux-build编译petalinux-config配置petalinux-create创建petalinux-package打包每次进入终端都需要配置petalinux环境已经使用替代sptl(source petalinux)启动设计流程:1.搭建vivado工程导出hdf文件(硬件描述文件)2.创建一个petalinux工程3.将hdf导入petalinux工程(将vivado设计应用到petalinux工程中)4.配置petalin
2022-03-24 14:09:42 906
原创 makefile、shell、可执行文件等杂类
ps:makefile文件中必须使用tab千万不能用空格makefile是对大量源文件进行系统编译链接的过程shell就是一个命令解释器负责讲用户的输入解释给操作系统例如要cat log.txt 你要读取log.txt用shell只能去操作系统调用open(),read()等函数只是用来链接人与操作系统。gcc编译过程:main.c预处理得到main.i(展开内部定义的宏并且查找内部定义的库)再编译得到main.s,最后再通过汇编得到main.o,再通过跟其他.o文件链接得到输出的led.elf文件
2022-03-24 14:08:30 110
原创 PCB复习笔记
快捷键:shift+space切换导线走线角度,直接,45度,任意角。tab键一般是现实属性原理图中绘制,选中然后空格旋转,x水平反转,y垂直上下翻转。ctrl m元器件量距shift s图层单层显示shift 加拖拽,复制元器件t a a设置原理图一键标注(百度查)ad工程组成:新建工程,新建元件库(原理图库),新建pcb库,新建原理图(schematic),新建pcb原理图库:元件不一定要完全一致,只需要管脚和标号即可管脚:name为方框内部名字(名字),designa
2022-03-24 14:06:50 77
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人