- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 va_list 使用总结
va_list 使用总结前言可变参数函数是什么?示例分析参数 param_num 的作用获取第一个可变参数获取第二个可变参数获取第三个可变参数小总结va_list的常用方式分析小总结前言在可变参数函数中,经常可以看到va_list、va_start、va_arg、va_end的使用。可变参数函数是什么?C语言中,printf函数,就是一个可变参数函数, 传入的参数数量是不确定的,可以传入多个。printf函数原型:int printf(const char *format, ...)其中 .
2022-07-22 00:13:44
1029
2
原创 Makefile实现编译时间统计
熟悉/proc/uptime里面参数的含义。可以不用/proc/uptime来获取时间戳,可以用date+%s获取当前时间戳,代替熟悉date命令的时候,获取时间戳、格式化获取日期。仔细观看Makefile实现的小知识,这里面涉及到很多细节内容,建议反复观看。Makefile中的target依赖问题,仔细观看target所在位置。Makefile中$`符号``与$$符号```的区别。......
2022-07-18 23:51:57
4076
7
原创 printf函数缓冲区问题
最近执行的一份代码,使用printf的时候,忘记加\n了, 结果一直没打印。 反复查看程序配置与逻辑,都没问题。浪费了半天时间,最终发现是踩进了坑。。,特此记录一下该情况。下面的代码,如果不加 或不会显示printf的结果。 或者修改为 才会显示打印结果。还可以把 去掉,程序执行完成也可以刷新printf的缓冲区,把结果打印出来。这与printf的缓冲区有关系。..................
2022-06-24 10:08:44
873
原创 pthread多线程应用介绍
pthread多线程使用前言pthread API相关介绍pthread_create()1、pthread_t *thread --> 线程句柄 or 编号2、const pthread_attr_t *attr --> 线程属性设置3、void *(*start_routine) (void *) --> 回调函数4、void *arg --> 线程传入参数pthread_join()pthread_exit()代码实现代码编译总结前言一个进程,想要并行处理不同的事情,就可
2022-05-20 00:14:27
1010
原创 <linux> busybox制作rootfs
busybox制作rootfⅠ、下载busyboxⅡ、修改busybox支持中文字符Ⅲ、选择配置基于defconfig上选择一些基本配置1. 选择动态库编译busybox2. 选择vi支持命令行3.取消simplified modutils4. 选择mdev5.选择unicode,支持中文Ⅳ、交叉编译工具配置Ⅴ、编译busybox,输出到指定文件夹Ⅰ、下载busybox本次实验在ubuntu环境下进行。busybox的官方链接https://busybox.net/找到某个版本的busybox,点击
2022-05-17 23:56:04
1533
原创 UART相关知识总结
推荐一篇博文,文章对UART协议的解析非常棒!:https://blog.csdn.net/update7/article/details/112852158Ⅰ、简介UART ==> 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)UART是一个全双工的通信协议。(1)UART的传输速率(以下内容摘自https://blog.csdn.net/ss343fd/article/details/54880037)RS232:
2022-04-13 01:41:50
8087
转载 【WI-FI 6】什么是WI-FI6--如何测试WI-FI 6的吞吐量
【WI-FI 6】什么是WI-FI6--如何测试WI-FI 6的吞吐量一、Wi-Fi 6 的定义电气电子工程师学会为其定义的名称为IEEE 802.11ax,负责商业认证的Wi-Fi联盟为方便宣传而称作Wi-Fi 6,该标准解决了“大量设备”连接到网络出现的网络拥塞和容量问题。相比WiFi 5,WiFi 6网络带宽提升4倍,并发用户数提升4倍,网络时延从平均30ms降低至20ms。无线接入点(AP)能同时处理多达12个的WiFi流。主要提升了多用户及物联网接入,抗干扰能力提升,带宽1200M以上;
2022-04-06 09:38:32
4202
原创 <linux> vmlinux、uimage、zimage的关系
uimage、zimage分析vmlinux、image、zimage的关系vmlinux、image、zimage的关系其关系如下图所示:#mermaid-svg-7Wi8NoyoKny2Llt8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7Wi8NoyoKny2Llt8 .error-icon{fill:#552222;}#mermaid-svg-7Wi8N
2022-03-31 22:32:19
579
原创 <linux> uimage头部信息详解
uimage头部信息详解一、uboot中的源码展示二、实例分析1、ih_magic(魔术字)2、ih_hcrc(头部crc32校验)3、ih_time(时间戳)4、ih_size(镜像大小)5、ih_load(解压地址)6、ih_ep (启动地址)7、ih_dcrc(镜像crc32校验)8、ih_os (镜像操作系统类型)9、ih_arch(架构类型)10、ih_type(镜像类型)11、ih_comp(镜像压缩类型)12、ih_name(镜像名称)三、总结一、uboot中的源码展示随便找一个主线ubo
2022-03-31 22:31:13
2161
原创 <C> C语言哈希表使用
C语言哈希表使用实例一、头文件#include "uthash.h"二、API结构体形式struct HashTable_t { int key; int value; UT_hash_handle hh;}key的类型可以为char *、char []、int、void* 四种, value可以为任意类型。UT_hash_handle 结构体为hash API使用,可以不用关注。HASH_ADD_INT()添加int参数至哈希表,HASH_ADD_INT(hash, ke
2022-03-18 17:57:02
2438
原创 <linux> linux与uboot添加新的nor flash支持
linux与uboot添加新的nor flash支持linuxubootlinux以3.18内核为例子在内核源码中找到路径为drivers/mtd/spi-nor/spi-nor.c的文件打开后找到flash支持表。 内核启动过程会对比表中的INFO()里面的参数,即flash JEDEC ID,匹配到后,按照后面的 64 * 1024等参数初始化flash的设置。/* NOTE: double check command sets and memory organization when you
2022-02-15 15:56:55
1224
原创 <linux> linux内核源码目录简介
linux内核源码目录简介简介linux内核目录简介简介了解了linux内核源码个目录的功能,就可以更好对linux内核进行功能添加、修改、移植与编译。linux内核目录简介目录开发关注度描述存放功能arch5⭐即architecture,意为架构的意思, 常见的一些架构有mips、x86、arm。 适配一款芯片的linux内核,首先需要知道芯片属于什么架构dts、内存管理,系统调用,动态调频,主频率设置、库文件等block4⭐block,意为块,与块设备相关
2022-01-11 22:36:23
701
原创 <git> 记一次windows下修改git账号与密码
windows修改git账号与密码windows下的机制与linux 系统下不太一样,git clone输入账号与密码后,假设输入错误了,仍会存储到系统的凭据上,导致再次clone,就会一直报密码错误,又无法修改。需要到windows的凭据下修改正确到账号与密码,或者删除后重新输入打开控制面板找到凭据管理器修改或删除账号信息修改正确后 ,重新clone即可。...
2021-12-31 00:45:21
2054
原创 <mysql> mysql 基本命令学习
mysql 基本命令登陆mysql -u username -p参数解析:-u 指定登陆账号-p 指定需要登陆密码,输入命令后,按回车键,就会出现密码输入界面mysql -u root -pEnter password:需要注意的是: 登陆完成,才进入mysql的命令终端,进入mysql的命令终端后,后续的语法都需要用;作为结束。查看数据库查看所有列表,所以databases是复数形式show databases; # 需要分号+--------------------+
2021-12-21 10:52:39
100
原创 <ARM> uboot之异常向量表学习
ARM架构异常向量表异常向量的种类总结异常向量的种类arm异常向量的种类共有8种,如下:偏移地址异常名称常用代表符号触发条件0x0000 0000复位异常Reset触发复位(如按下硬件复位按键)时进入的异常0x0000 0004未定义指令异常Undefined Instruction系统运行过程,调用到未定义的指令0x0000 0008SVC 异常Supervisor Call假如修改底层寄存器的值是特权级操作,而用户想要修改其数值,这时就可以通过
2021-12-14 22:32:01
628
原创 <IXM6ULL芯片学习记录> 汇编配置C语言环境点亮LED
汇编配置C语言环境点亮LED灯前言ARM架构之处理器运行模式(CPSR)配置SP指针前言熟悉汇编配置C语言环境,跳转到main函数中,执行C语言代码,实现功能。ARM架构之处理器运行模式(CPSR)需要注意的是,该寄存器不属于IMX6ULL,而是属于ARM,对应的需要查找ARM的手册,而不是IMX6ULL的寄存器手册。CPSR,全称为Current Program Status Register ,Coretex-A7处理器的CPSR可以配置处理器工作在9种不同的模式种,不同模式下,对应的R0-R
2021-10-19 23:20:52
347
原创 <IMX6ULL芯片学习记录> 汇编点亮LED灯
IX6MULL之汇编点亮LED灯一、原理分析1、查看原理图2、配置GPIO复用3、配置GPIO的电气特性一、原理分析IX6MULL是恩智浦公司的一款Coretex-A7系列的芯片,主频800M。LED点亮,其实就是最简单的GPIO控制的表现结果。对于GPIO的初始化,通常来说都有以下的过程:查看原理图,查找对应的GPIO序号查寄存器手册,配置GPIO复用为普通GPIO配置GPIO的电气特性,如输入/输出、速率、输出方式(推挽/开漏等)、默认上拉/下拉配置GPIO的电平1、查看原理图从原
2021-10-12 22:53:36
649
原创 网络协议学习之Ethernet II协议(二层)
网络协议学习之Ethernet II协议简介一、协议1、协议结构2、二、抓包分析总结简介 Ethernet II协议位于五层OSI模型中的第二层,属于链路层的协议。一、协议1、协议结构前导包目的mac地址(DMac)源mac地址 (SMac)类型(Type)数据(Playload)校验(CRC)6 Byte 目的地址6 Byte 源地址2 Byte46 ~ 1500 Byte2、二、抓包分析总结..
2021-07-23 23:00:58
12869
5
原创 <记录> windows“ping“设备指定端口
tcping工具的使用简介一、安装tcping二、tcping的使用总结简介 windows平台下只支持ping操作来检验是否可以到达指定设备。 例如我们有一个路由器网关192.168.1.1,使用cmd命令ping 192.168.1.1,可以查看我们的电脑能否与其连通。 但在一些特殊情况下,我们需要测试设备某个端口是否可以到达,比如我们有一个web服
2021-06-02 22:14:27
5013
原创 <Linux> 记录:lnmp框架搭建Discuz论坛
Linux下采用lnmp服务器架构搭建Disscuz论坛简述准备一、安装mysql二、安装php三、nginx环境搭建1、安装nginx四、下载Discuz软件包五、搭建论坛1、拷贝论坛upload文件到nginx根路径2、配置nginx设置3、安装论坛补充: 论坛管理功能总结简述ubuntu环境下,基于lnmp架构搭建的Disscuz论坛。准备1.ubuntu配置环境,具备linux系统、设置好共享文件夹、替换国内源,完成apt更新。2.nginx3.mysql4.php5.65.Diss
2021-04-27 22:36:48
387
原创 <mysql> 记录:windows通过Navicat访问vmware下的mysql
windows通过Navicat访问vmware下的mysql前提记录一、安装Navicat二、安装windows版本mysql1、下载2、安装三、配置ubuntu下的mysql四、Navicat登录到vmware下的mysql总结前提1.ubuntu安装好mysql,并可以正常进入数据库2.windows可以ping通ubuntu的网关地址记录一、安装Navicat安装的为试用版。http://www.navicat.com.cn/products安装完成打开如下图二、安装window
2021-04-24 17:27:12
441
原创 linux下简单的Socket+Http服务
C语言体验Socket Http服务代码部分实验结果实验总结代码部分socket监听80端口,接收到访问数据,返回简单的Http页面#include <stdio.h>#include <string.h>#include <unistd.h>#include <arpa/inet.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/i
2021-03-27 11:54:40
542
原创 <Linux>使用quilt工具制作补丁(patch)文件
Linux使用quilt工具制作补丁文件前言一、安装quilt工具二、一个需要被打补丁的文件三、quilt new命令创建初始补丁文件四、quilt add命令添加目标文件五、修改目标文件代码内容六、quilt refresh命令生成补丁文件七、测试结果总结前言 patch是Linux项目编程下常用的工具。例如: 一份有Makefile管理的驱动代码文件,每次编译时会有Makefile规则从指定目录下解压到固件目录下,此时在驱动代码中添加了一
2020-12-01 20:43:54
3249
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人