自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 设备树编译与反编译

1.将设备树文件拷贝到内核源码arch/*(处理器平台)/boot/dts/*(厂家)/目录下,执行make dtbs。

2023-11-27 16:56:51 112

原创 可使用内存大小

堆:32位和64位下2G和无限(一般不会用到16T)

2023-11-27 16:55:51 60

原创 大小端区别

非单字节类型变量(如short、int)的存储模式。小端:低地址存储低字节;大端:低地址存储高字节。

2023-11-27 16:55:09 53

原创 ZYNQ系统移植

命令bootz有三个参数,addr是Linux zImage镜像文件在DRAM中的位置,initrd是initrd文件在DRAM中的地址,这个其实就是前面给大家提到的INITRAM根文件系统的在内存中的地址,如果不使用initrd的话使用‘-’代替即可,fdt就是设备树文件在DRAM中的地址。interface为接口,比如mmc,dev是设备号,part是分区,addr是要写入的数据在DRAM中的起始地址,filename是写入的数据文件名字,bytes表示要写入多少字节的数据。

2023-11-27 16:54:15 966

原创 vim命令

s/from/to/gc 将当前行中所有from替换成to,但每次替换之前都会询问请求用户确认此操作。:10,20s/from/to/g 将10至20行中所有from替换成to。:1,$s/from/to/g 将1至最后一行中所有from替换成to。:1,.s/from/to/g 将1至当前行中所有from替换成to。:33s/from/to/g 将33行中所有from替换成to。:.s/from/to/g 将当前行中所有from替换成to。:s/from/to/g 将当前行中所有from替换成to。

2023-11-27 16:53:09 154

原创 ubuntu终端命令行

ctrl + k 删除此处至末尾的所有内容。ctrl + u 删除此处至开始的所有内容。Alt + F10 窗口最大化和还原。ctrl + f 向前移动光标。ctrl + b 向后移动光标。ctrl + r 查找历史命令。ctrl + a 到行首。ctrl + e 到行尾。

2023-11-27 16:52:19 18

原创 Qt快捷键

整行移动 ctrl+shift+↓或↑。同名之间的.h和.cpp的切换F4。字体缩放 ctrl+鼠标滚轮。查找关键字 ctrl+f。自动对齐 ctrl+i。

2023-11-27 16:51:31 27

原创 Makefile

^ 表示所有的依赖文件。$< 表示第一个依赖文件。

2023-11-27 16:50:29 114

原创 linux设备驱动开发

startup_32() /arch/i386/boot/compress/head.S 设置一个基本的运行环境(如堆栈)后清除BSS段 >linux设备驱动的调试(开发环境、GDB、内核调试方法(printk、/proc、Oops、strace、kgdb、仿真器))drivers:设备驱动程序,每个不同的驱动占用一个子目录,如char、block、net、mtd、i2c等。linux设备驱动的移植(可移植的设备驱动、巧借类似代码、2.4/2.6内核驱动移植、linux与其他系统间的驱动移植)

2023-11-27 16:49:34 277

原创 gdb-arm使用

取消指定编号的display设置或所有display设置,编号从1开始递增。//端口号任意,与宿主机保持一致,test为要调试的程序。info locals(查看当前stack frame局部变量)3.(gdb)break file:line (打断点)删除指定编号断点或删除所有断点,断点编号从1开始递增。4.(gdb)continue (test运行)1.执行 arm-linux-gdb test。执行一行代码,此行代码有函数调用,则进入该函数。执行一行代码,此行代码有函数调用,也一并执行。

2023-11-27 16:48:09 220

原创 CPP概要

公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是何以通过调用基类的公有和保护成员来访问。取而代之,C++11就删除了原来的用法,改为了自动推导变量。在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。保护继承(protected):当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。

2023-11-27 16:47:15 429

转载 fflush 后怎么调用 fsync

如果想要在使用fflush后调用fsync,可以先使用fflush将缓存区数据写入到内核中,然后再使用fileno函数获取文件描述符,最后再使用fsync将所有文件描述符对应的文件刷入磁盘中。fflush和fsync都是用于将缓冲区的数据刷新到磁盘上,但它们的调用方式有所不同。fflush函数是将缓冲区的数据刷新到内核中,而fsync函数是将内核中所有文件的数据都刷新到磁盘上。以上示例代码在向文件写入数据之后,调用了自定义的。获取文件描述符,并通过该文件描述符来调用。函数刷新缓冲区,在调用。

2023-11-13 17:22:37 148

原创 cpp-httplib 解读

滑动验证页面滑动验证页面。

2023-08-03 17:34:17 139

原创 C知道测试

在STM32中,写入Flash通常会使用特定的函数或指令来完成,例如HAL库中的HAL_FLASH_Program函数。它运行在处理器的内置BootROM之后,负责初始化Zynq SoC的硬件,并准备好后续的引导过程。一种常见的做法是,在程序的初始化阶段或特定的操作时暂停程序执行,执行Flash写入操作,然后再恢复程序的执行。在配置内核时,需要选择适合你的ARM平台的配置选项,如处理器类型、内存管理方式等。需要注意的是,在某些特殊情况下,可能存在一些特殊的写入方式或特定的芯片支持同时运行和写入Flash。

2023-08-02 16:35:45 5986 2

原创 tcp三次握手

https://www.cnblogs.com/tl542475736/p/8609974.html

2023-03-16 09:02:26 70

原创 Linux中如何使用信号驱动式I/O?

Linux中如何使用信号驱动式I/O?-电子发烧友网

2022-03-24 17:40:01 281

原创 linux 信号编程

【Linux】信号编程(signal)竟能这样做?涨姿势 - 知乎

2022-03-22 14:45:02 272

原创 gdb-arm

宿主机IP:192.168.1.151目标板IP:192.168.1.108目标板: 执行 gdbserver 192.168.1.151:6666 test //端口号任意,与宿主机保持一致,test为要调试的程序宿主机: 1.执行 arm-linux-gdb test 或 arm-linux-gdb (gdb)file test 2.(gdb)target remote 192.168.1.108:6666 3.(...

2022-02-10 15:43:51 430

原创 开发者分享 | Petalinux 工程中设备树的介绍

本文转载自:XILINX开发者社区微信公众号本文来自XILINX嵌入式产品应用工程师 Terry Ni设备树是 Petalinux kernel 的关键组件,接下来以 2020.1 版本为例,为大家介绍一下在Xilinx Petalinux 工程中的设备树是如何产生,配置以及修改的。Petalinux 工程中设备树的位置当我们创建了一个 petalinux 工程后(以zcu102为例),在编译的时候,会自动生成对应的设备树文件。这些设备树的描述信息通常在以下2个工程路径下。第一.

2021-07-19 12:06:50 4071 1

转载 [错误总结] 结构体成员赋值,报错expected ‘=‘, ‘,‘, ‘;‘, ‘asm‘ or ‘__attribute__‘ before ‘.‘ token

如下一段代码:#include "stdio.h"struct str { int a; float b; char c[10];};struct str student;student.a = 4;int main(){ return 0;}执行之后会报错,Error expected '=', ',', ';', 'asm' or '__attribute__' before '.' token造成这种情况的原因是,结构体初始化是.

2021-06-28 16:07:47 3210

原创 linux c tcp传输图片

https://www.cnblogs.com/zkfopen/p/9441797.html

2021-06-04 16:02:13 735

转载 libstdc++.so.6 找不到 解决方案

解决方案: petalinux-config -c rootfs

2021-06-04 11:32:12 954

转载 ZYNQ Linux 移植:包含petalinux移植和手动移植debian9

问题:1.ZYNQLinux启动流程:BOOTROM→FSBL→Uboot→Kernel→RootFS环境:虚拟机ubuntu16.04petalinux2018.3vivado2018.3开发板:小熊猫z7020前言使用ZYNQ大概率会用到Linux。这里就对linux移植的整个流程做一个记录。移植有两种方式:(1)使用petalinux工具链进行移植。虚拟机需要装petalinux,自动化程度相对高。(2)手动移植,需安装SDK移植环境或者...

2021-06-01 17:43:16 1599 2

转载 send返回值

在Unix系统下,如果send、recv、write在等待协议传送数据时,socket被shutdown,调用send的进程会接收到一个SIGPIPE信号,进程对该信号的默认处理是进程终止。此种情况应用就很难查出处理进程为什么退出。SIGPIPE信号:对 一个已经收到FIN包的socket调用read方法,如果接收缓冲已空,则返回0,这就是常说的表示连接关闭.但第一次对其调用write方法 时,如果发送缓冲没问题,会返回正确写入(发送).但发送的报文会导...

2021-06-01 17:32:24 2581

原创 程序执行时的内存分配

一、在程序执行期间,变量存储空间有三种:1、静态存储区。内存在程序编译的时候就已经分配好了,这块内存在程序执行期间都存在,存储全局变量和静态变量。2、栈存储区。内存是在程序执行期间才分配的,函数内局部变量及函数参数的存储单元,当函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率高但容量小。3、堆存储区。在程序执行时由程序员用malloc或new申请的内存,程序员自己负责何时用free或delete释放分配的内存。频繁的分配和释放不同大小的堆内存将会产生堆内碎...

2021-01-15 09:35:16 3280

原创 ubuntu Qt 找不到 -lGL

sudo apt-get install libqt4-dev

2020-10-25 19:21:39 545

原创 vimrc config

"关闭 vi 兼容模式set nocompatible"自动语法高亮syntax on"显示行号set number"突出显示当前行set cursorline"打开状态栏标尺set ruler"设定 << 和 >> 命令移动时的宽度为 4set shiftwidth=4"使得按退格键时可以一次删除 4 个空格set softtabstop=4"设定 tab 长度为4set tabstop=4"覆盖文件时不备份set nobackup

2020-09-24 15:02:00 110

原创 交叉编译第三方库(srt例)

**1.交叉编译器**从 https://www.linaro.org/downloads/ 下载 与开发板平台对应的 交叉编译器的二进制文件 压缩包解压后可直接使用**2.在上位机使用交叉编译器编译srt源码**从https://github.com/Haivision/srt下载srt源码压缩包解压压缩包生成srt-master文件夹~$cd srt-masterSRT模块交叉编译之前,需要先configure,configure时必须的两个参数分别是:“--prefix”和“--w

2020-07-31 15:48:30 2023 2

原创 github源码使用(srt例)

下载源码后**1.三部曲**./configuremakemake install(需给足够权限)**2.make 后生成的库文件和头文件一般在/usr/local/lib 和 /usr/local/include内****3.调用api时需要**库文件 把在/usr/local/lib/*.so库文件 软连接到/usr/lib ln -s /usr/local/lib/*.so /usr/lib/*.so (加-s为软连接,不加为硬连接)头文件 头文件需加...

2020-07-31 15:43:38 520

原创 Qt5.14.0源码交叉编译

1. 下载qt源码和交叉编译器qt源码下载地址http://download.qt.io/archive/qt/交叉编译器下载地址https://www.linaro.org/downloads/2. 解压qt源码包并配置,编译和安装configure 参数配置-xplatform <target> .. Select target mkspec when cross-compiling [PLATFORM]指定的路径为/qt-everywhere-src-5....

2020-06-20 10:41:36 2559

空空如也

空空如也

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

TA关注的人

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