自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (13)
  • 收藏
  • 关注

原创 深入解析ESP32C3(3)- bootloader启动流程

ESCP32C3引导程序的详细开机流程

2024-02-17 13:20:36 1299 1

转载 【转】WiFi协议名词含义: MSDU,A-MSDU,MPDU,A-MPDU,PSDU,PPDU

答案就是:我们在谈论802.11 MAC(媒体访问控制)和PHY(物理层)。802.11协议只管这两层,而它对外(上层)提供服务的数据接口即MSDU:medium access control (MAC) service data unit -- MAC服务数据单元。每一层的数据包称之为本层的协议数据单元(PDU),它包含了本层所特有(添加)的包头和结尾(如果有)。MSDU,A-MSDU,MPDU,A-MPDU,PSDU,PPDU ... 看这些似曾相识似懂非懂的WiFi各层数据包的缩写,是不是很上头?

2024-01-24 16:21:39 252

原创 深入解析ESP32C3(2)- 存储类型和地址空间

ESP32C3的存储类型和地址空间

2024-01-22 00:03:54 1398

原创 深入解析ESP32C3(1) - 使用ESP-IDF

乐鑫ESP32系列芯片是性价比非常高的嵌入式平台,不仅外设接口丰富,有较多的存储空间,还支持WIFI/BT等无线连接,同时也支持加密和权限管理等安全功能,这大大拓展了芯片的应用领域;本文从使用IDF的角度出发。

2024-01-20 16:21:37 989

原创 串口的空中延展

因此,串口会被频繁使用,但由于串口的打印是实时的,在设备系统没有完全启动之前,串口日志或数据是无法被缓存到设备的存储介质,一旦中途重启或掉电,在缓存区的数据也会丢失。故当前的办法,就是上位机(PC电脑)保持串口线连接,即时保存日志在上位机侧,这样就导致几个问题:1)设备必须放置在上位机旁,距离范围取决于串口线的长度;以上这些因素,也是实现串口空中延展的意义所在, 当然空中延展的串口,本身就能支持数据的无线透传,使用上与普通串口并无区别。注意,串口的收发管脚要与目标设备或PC侧的串口一致。

2023-11-19 18:33:33 94

转载 【转】开源如何盈利?

同那些通过收取软件授权费用盈利的传统厂商相比,开源厂商在开发上采用开放源代码,在传播上采取免费下载、自由分发的方式,这样,他们的研发成本与营销费用都比传统软件企业低得多,并且有利于软件的广泛传播。在开源软件大潮的冲击之下,包括微软在内的商业软件公司,也开始认可开源软件"软件成为服务"的本质。开源软件在发展历程中,已经不仅仅是开放源代码的免费软件。比如著名的开源软件出版商O'Reilly公司,就不遗余力地联系各开源软件权威人士,组织各种开源软件的会议,虽然知识是免费的,但承载知识的书籍却是收费的。

2023-03-30 15:25:22 1517

原创 [网上摘录]Gerber RS274X-CAM文件格式详解

GERBER文件格式详解

2022-11-07 19:31:00 4205

转载 步进电机和伺服电机的区别

就步进电机和伺服电机的使用性能作一一比较。

2022-11-06 14:48:38 5452

原创 关于“八音盒自定义弹奏”的一些想法

设计可自由播放旋律的八音盒

2022-10-17 22:32:50 754

原创 busybox 编译错误-记录

最近交叉编译最新的busybox 1.35源码在OK6410板子上做实验,遇到了些问题,做下总结。1. gcc-linaro-7.5.0-2019.12-arm-linux-gnueabi 该系列高版本工具链不能用于busybox的交叉编译虽然能够编译出来,但系统无法运行,直接提示SIGSEGV段错误,每次重编后的错误日志基本如下,可以看出PC和LR都是错误的,已超出实际内核MMU映射范围,其他寄存器也定位不到代码。[ 2.696508] init: unhandled page fau

2022-05-26 23:36:59 1893

转载 【转】STT_GNU_IFUNC 与 libc.so 的 GNU 扩展类型 ABI 问题

前言在ELF file OS ABI invalid 与 chroot 大法这篇文章中,我描述了 libc.so ABI 的特别之处,它的 ABI 为 GNU 扩展格式而非 System V 格式。在本文中研究下它如此特别的原因。elf.h 中的相关定义系统头文件路径中,与这个 ABI 相关的宏在 /usr/include/elf.h 文件中定义,相关代码摘录如下: 138 #define EI_OSABI 7 /* OS ABI identification */ .

2022-05-23 22:06:21 418

转载 初识ELF格式 ABI,EABI,OABI

尽管每天都在调用linux的elf文件做各种事,但却很少去了解他,最近尝试在orangepi上编译个elf到android手机上运行,因为两个CPU都是ARMv8的.结果运行失败了.遂查找原因.结果挖出这玩意...以下内容大部分为摘抄整理:关于ABI,EABI,OABI:ABI(application binary interface)应用程序二进制接口一般应用程序是要分各种CPU架构的,ABI用于对接.而ABI的不同则是linux内核和glibc的升级导致的规范变化导致的。不同的ABI程序和库

2022-05-23 21:59:55 854

转载 比较:unlocked_ioctl、compat_ioctl

compat_ioctl:支持64bit的driver必须要实现的ioctl,当有32bit的userspace application call 64bit kernel的IOCTL的时候,这个callback会被调用到。如果没有实现compat_ioctl,那么32位的用户程序在64位的kernel上执行ioctl时会返回错误:Not a typewriter 。 如果是64位的用户程序运行在64位的kernel上,调用的是unlocked_ioctl,如果是32位的APP运行在32位的kernel上

2022-04-05 14:56:39 2106

转载 WPA_supplicant/ WPA_cli 使用格式,以及802.11 联结状态码 / 未认证异常码

802.11 Association Status Codes Code 802.11 definition Explanation 0 Successful 1 Unspecified failure For example : when there is no ssid specified in an associatio

2022-03-15 21:27:42 2105

原创 交叉编译 WPA_Supplicant

记录下这个wifi配置工具的编译过程。步骤不少,涉及的开源工具包不少,很有记录的价值。 WPA_Supplicant简介 首先,稍稍介绍下wpa_supplicant,这是一个控制无线网络连接的工具,类似于iw系列,但iw系列已经比较旧了,很多功能都支持不了,这也是我非得费时费力搞的原因。它主要用wpa_supplicant 和wpa_cli两个tools组成。前者是一个daemon角色;后者相应于一个控制器,于daemon通信,故wpa_cli无法单独运行。使用...

2022-03-14 23:35:00 7125 5

原创 BUG:nslookup能通,但ping不通域名

在OK6410开发板上,使用最新版本busybox-1.35重新制作了rootfs。按照readelf命令结果,将交叉工具链中直接以及间接所引用到的动态链接库,通通复制进来。本以为作为基础功能的ping会很顺利,实际了也折腾一天。golden@ubuntu:~/workspace/busybox$ arm-none-linux-gnueabi-readelf -d rootfs/bin/busybox Dynamic section at offset 0x10900c contains 26 e

2022-03-14 18:27:10 4060

原创 编译错误:multiple definition of `yylloc‘

Using .. as source for kernel HOSTLD scripts/dtc/dtc/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined herecollect2: error: ld returned 1 exit statusmake[2]...

2022-03-05 17:29:31 3950 1

转载 【转】MEMS陀螺仪的简要介绍(性能参数和使用)

MEMS传感器市场浪潮可以从最早的汽车电子到近些年来的消费电子,和即将来到的物联网时代。如今单一的传感器已不能满足人们对功能、智能的需要,像包括MEMS惯性传感器、MEMS环境传感器、MEMS光学传感器、甚至生物传感器等多种传感器数据融合将成为新时代传感器应用的趋势。工欲善其事,必先利其器,这里就先以MEMS陀螺仪开始,简要介绍一下MEMS陀螺仪、主要性能参数和使用。传统机械陀螺仪主要利用角动量守恒原理,即:对旋转的物体,它的转轴指向不会随着承载它的支架的...

2021-10-15 16:19:34 9529 1

转载 LWM2M简介

LWM2M简介1.Lightweight M2M基础,谁搞出来的OMA是一家国际组织,因为物联网的兴起,OMA在传统的OMA-DM协议基础之上,提出了LWM2M协议。这个协议基于COAP协议,COAP协议基于UDP协议。2.lwm2m怎么组成,有3个设备(或者叫做逻辑实体),客户端设备,引导服务器,工作服务器LWM2M Server工作服务器LWM2M client客户端负责执行服务器的命令和上报执行结果LWM2M Bootstrap server引导服务器负责...

2021-06-21 17:47:13 1109

转载 GNU编译器“.previous“的解释

12 then 13 rm sramboot.o *bin *exe 14 fi结果:

2021-06-18 11:10:28 636

转载 mbed TLS 介绍

mbedTLS(前身 PolarSSL)是一个由 ARM 公司开源和维护的 SSL/TLS 算法库。其使用 C 编程语言以最小的编码占用空间实现了 SSL/TLS 功能及各种加密算法,易于理解、使用、集成和扩展,方便开发人员轻松地在嵌入式产品中使用 SSL/TLS 功能。mbedTLS软件包提供了如下的能力:完整的SSL v3、TLS v1.0、TLS v1.1和TLS v1.2协议实现 X.509证书处理 基于 TCP 的 TLS 传输加密 基于 UDP 的 DTLS(Datag...

2021-06-15 10:32:48 3889

转载 eMMC的五种操作模式

eMMC的五种操作模式:开机模式、ID辨识模式、中断模式、数据传输模式、无效模式。详情见:https://blog.csdn.net/wangteng12345678/article/details/110311519 开机模式 Boot mode Power ON后,卡若收到CMD0(GO_Idle_State)并带argument(0xF0F0F0F0),此时Card若支持Boot Mode则会进入Boot Mode,否则进入identification m.

2021-06-04 17:52:55 484

转载 linux下的usb抓包以及mon日志分析

原网页地址:http://blog.chinaunix.net/uid-11848011-id-4508834....1 linux下的usb抓包方法1)配置内核使能usb monitor:make menuconfig Device Drivers --> USB Support --> USB Monitor --&...

2021-05-27 13:56:53 731

转载 连接跟踪(conntrack)原理、应用以及Linux内核实现

发现一篇好文章,立即转载了来,原地址:http://arthurchiao.art/blog/conntrack-design-and-implementation-zh/摘要本文介绍连接跟踪(connection tracking,conntrack,CT)的原理,应用,及其在 Linux 内核中的实现。代码分析基于内核4.19。为使行文简洁,所贴代码只保留了核心逻辑,但都给出了代码 所在的源文件,如有需要请查阅。水平有限,文中不免有错误之处,欢迎指正交流。1 引言连接跟踪是许多.

2021-05-11 11:08:57 8248 1

转载 Shell中创建序列和数组(list、array)

这篇文章主要介绍了Shell中创建序列和数组(list、array)的方法,一、seq方法生成:// seq [OPTION]... LAST// seq [OPTION]... FIRST LAST// seq [OPTION]... FIRST INCREMENT LAST[chengmo@centos5 ~]$ seq 1000 //起始默认是 1,间隔默认也是1[chengmo@centos5 ~]$ seq 2 1000 //间隔默认是1[chengmo@centos5 ~]

2021-04-01 16:34:56 4420

原创 Docker常用操作总结

下载Docker镜像:sudo docker pull registry.cn-xxx-image:tag启动Docker镜像: sudo docker run -it -v ~/locationPath:/media/ --name TestName registry.cn-xxx-image:tag 将主机的路径~/locationPath映射给Docker虚拟机的/media,所安装的container命名为TestName查看...

2021-03-22 10:28:30 140

原创 如何定义systemd全局变量,以及systemd介绍

systemd的全局配置项,存在于两个地方: 1.系统进程配置文件:/etc/systemd/system.conf 2.用户进程配置文件:/etc/systemd/user.conf以下是来自archlinux网站文章“systemd/User”的介绍解释, 讲的比较详细systemd 用户实例不会继承类似.bashrc中定义的环境变量。systemd 用户实例有三种设置环境变量的方式:对于有$HOME目录的用户,可以在~/.config/systemd/user....

2021-03-12 10:56:07 5572

原创 移动硬盘上安装Windows 10系统

为什么要在移动硬盘上安装系统呢? 自然是因为笔记本上硬盘SATA接口不够了。笔记本有点坑,只有一个SATA和一个NVME口。手上又有现成的SATA SSD硬盘和硬盘盒,怎么选自然没悬念,优先把IT的机械硬盘安装到电脑上,这样至少可以保证系统和资料都有足够的分区来存储安装。剩下的256GB SSD硬盘,想了下,作为额外的系统盘以及移动硬盘来使用。于是,按正常安装系统盘的方式,给USB移动硬盘安装上了。如果就这样没什么问题了,自然就没必要写这个文章来记录了。所以。。。结果是BIOS选择USB boot

2020-12-21 17:17:55 4307

转载 ubi 数据结构简单分析

测试ubi镜像的方法:sudo modprobe mtdsudo modprobe mtdblocksudo modprobe nandsim first_id_byte=0xec second_id_byte=0xa1 third_id_byte=0x00 fourth_id_byte=0x15#其中fourth_id_byte,含义如下sudo chmod 660 /dev/mtd0*ls -lah /dev/mtd*cat /proc/mtdmtdinfo /dev/mtd0s

2020-12-10 09:42:50 2745

转载 linux select函数详解

原链接:https://blog.csdn.net/lingfengtengfei/article/details/12392449在Linux中,我们可以使用select函数实现I/O端口的复用,传递给select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)...

2020-11-17 15:42:15 636 1

原创 linux用户空间控制gpio的两种方法

1. 架构2. 有两种操作方法2.1 第一种: sysfs接口(旧,已废弃)2.2 第二种: 字符设备接口(新)3. 如何使用sysfs接口控制gpio?3.1 确定要使用的gpio号(怎么知道gpio号呀?)3.2 将gpio号写入文件/sys/class/gpio/export中# echo 333 >/sys/class/gpio/export3.3 将gpio配置为输入还是输出配置为输出示例如下:# echo out > /sys/cl...

2020-07-25 18:14:15 5973

转载 linux中的rootfs/initrd/ramfs/initramfs

From:https://www.cnblogs.com/lidabo/p/5719235.html什么是ramfs?ramfs是空间规模动态变化的RAM文件系统。它非常简单,是用来实现Linux缓存机制(缓存page cache and dentry cache)的文件系统。通常情况下,Linux的所有文件在内存中都有缓存。需要读取的数据页从支撑存储设备(block device)中读取后,缓存于内存。在支撑存储设备中的数据页执行marked as clean操作。当虚拟文件系统需要支撑存储设.

2020-06-12 11:58:38 445

原创 MJPG-Streamer 远程视频工具的使用

源码:git clone https://github.com/Five-great/mjpg-streamer.git安装编译:$sudo apt-get install cmake libjpeg8-dev$ cd~/mjpg-streamer-master/mjpg-streamer-experimental$ make$ sudo make install测试:$ mjpg_streamer -i "input_uvc.so -n -f 10 -r 640x480 -d...

2020-06-01 16:30:19 1104

转载 Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别

找到一篇介紹BT与BLE使用差别的文章, 写的很清晰,看完基本明白了---------------------------------------------------------------------------------------------------------最近在做蓝牙开发,刚接触时傻傻的分不清经典蓝牙和低功耗蓝牙的区别,一直用开发低功耗蓝牙的方法去连接经典蓝牙设备,最...

2020-04-24 10:38:35 2563

原创 交叉编译ffmpeg-4.2.2

最近想弄个USB camera, 测试下视频功能。看到网上推荐使用FFmpeg这个开源工具。FFmpeg: A complete, cross-platform solution to record, convert and stream audio and video.官网地址:http://ffmpeg.org/下载最新的 FFmpeg 4.2.2源码。参考了其他文章,FFmpeg编译...

2020-03-16 15:43:25 4047 5

原创 LINUX交叉编译器的常用调试命令总结:nm,addr2line,objdump,readelf,objcopy,gdb

一、符号列表输出命令:nm文件格式:nm [options] [objfile...] ---- list symbols from object filesoptions: [-A|-o|--print-file-name] [-a|--debug-syms] [-B|--format=bsd] [-C|--demangle[=style]...

2020-02-24 17:28:05 2092

转载 ARM 之五 发展史及各时期内核(ARM1 ~ ARM11 / Cortex)介绍

ARM内核发布时间:ARM 处理器产品分为经典ARM处理器系列和最新的Cortex处理器系列。

2019-10-29 16:18:35 1118

转载 [转]如果你知道自己40岁的时候一定会被裁员,那你会做什么?

版权:来源金融市场部 ID:moneymatrix如果你知道自己40岁的时候一定会被裁员,那你会做什么?甲骨文的这次裁员,并不是因为公司亏损,很可能是政治因素。哪怕你技术能力很再杰出,业绩很好,但整个研发或者部门都不要了,也同样没办法。虽然赔偿不低,但很多已经习惯了舒服的过日子的员工,再重新进入职场,要花上不少时间和精力去重新适应。正文这个问题,我想过很长时间,我是东北人,在9...

2019-10-28 17:37:41 809

转载 Docker详解

详情:https://blog.csdn.net/deng624796905/article/details/86493330Docker是什么?我们在理解docker之前,首先我们得先区分清楚两个概念,容器和虚拟机。可能很多读者朋友都用过虚拟机,而对容器这个概念比较的陌生。我们用的传统虚拟机如VMware,VisualBox之类的需要模拟整台机器包括硬件,每台虚拟机都...

2019-10-22 10:52:28 181

转载 [转]Risc-V简要概括

Risc-V简要概括1.Risc-V硬件平台术语 一个RiscV硬件平台可以包含一个或多个RiscV兼容的核心、其它非RiscV兼容的核心、固定功能的加速器、各种物理存储器结构、I/O设备以及允许这些部件相互连通的互联结构。比如下面的SiFive Freedom U540平台。就包括4个U54 RiscV RV64GC兼容核心,以及一个E51 RV64IMAC核心,DDR3...

2019-09-26 15:57:04 2997 2

飞凌OK6410 uboot-201809 uboot移植源码

移植u-boot-2018.09到飞凌OK6410 ,想了想还是把移植后的源码公布出来,放在电脑里面也只是放着,移植过程可以看我的几篇博客。最后的效果,见博客: https://blog.csdn.net/Golden_Chen/article/details/89077655

2019-11-26

[更新]OK6410 uboot-201809 nand boot.bin

uboot-201809 用于飞凌OK6410 的,支持USB、tftp、MMC、tftp 等 详细想了解,见文章 https://blog.csdn.net/Golden_Chen/article/details/89077655

2019-04-13

OK6410 uboot-201809 mmc boot.bin

uboot-201809 mmc 启动,用于飞凌OK6410 的,支持USB、tftp、MMC、tftp 等 详细想了解,见文章 https://blog.csdn.net/Golden_Chen/article/details/89077655

2019-04-08

OK6410 uboot-201809 nand boot.bin

uboot-201809 用于飞凌OK6410 的,支持USB、tftp、MMC、tftp 等 详细想了解,见文章 https://blog.csdn.net/Golden_Chen/article/details/89077655

2019-04-08

OK6410上基于ucos操作系统的相册浏览

飞凌开发板OK6410上,使用ucos操作系统,MMC卡中读取FAT文件系统顶层目录“picture”的图片, 支持BMP,JPEG两张图片格式。默认自动浏览模式,可以通过按键控制模式,暂停和翻页。 以前花了1个月时间去设计和实现,当时研究jpeg解码、bmp解码、dlmaloc内存分配,温习ucos源码,还有啃读S3c6410手册和飞凌OK6410的原理图,基本是那时及更早期钻研的综合成果,当时也正在看linux,所以启动流程也有linux的影子。 这份最终源码一直放在电脑里,尘封了2年,挺可惜的,分享给那些走在嵌入式道路上的童鞋们

2015-12-01

RT5370 datasheet

其实资料CSDN有,但命名不叫这个,在网上一直找了很久都没有找到,无意中发现的。现在改下名字,方便后面需要的人!

2014-02-10

<万年历>DIY项目原理图PDF

此项目的主要功能有温度采集、RTC时钟支持、数码管显示以及板上配置时间功能,另外加了一颗3mm的黄灯作为了时间配置的指示灯,蜂鸣器提供整点鸣音提醒功能。 演示视频 http://v.youku.com/v_show/id_XNDc4NTc5MjE2.html 详细介绍文档 http://blog.csdn.net/golden_chen/article/details/8213607

2012-11-22

<DIY电子钢琴>原理图PDF

DIY原创的“电子钢琴”项目是使用51单片机模拟钢琴功能的简化设计。现公开此项目的PDF格式原理图. “电子钢琴”演示视频可参看:http://v.youku.com/v_show/id_XNDcwMTc0ODk2.html

2012-11-06

ST7920液晶屏12864的资料

屏5V供电,控制器位ST7920,可串口或并口方式进行刷数据,内部ROM集成了中文字库, 蓝屏白字,像素128*64,配合51开发板。具体资料见附件:ST7920液晶屏12864的资料

2012-10-23

情人节礼物的程序

去年情人节写的一个程序。设计场景:在漫天玫瑰飘洒之下,对尔之祝福姗姗而来。

2012-09-01

CMovePoker

不用MFC框架下,使用windows系统的cards32.dll,显示及操作扑克.-using cards32.dll,display and move 52 pokers without using MFC framework

2009-04-09

<批量修改文件名〉源代码

本软件可以批量给文件命名,是针对于文件量大、命名混乱的情况。使用方法:将指定文件夹下的文件改名为“通用文件名+序号”。

2008-01-04

批量修改文件名的小工具

鉴于类似文件命名混乱,自己开发的,使用方法参看软件界面

2007-11-19

空空如也

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

TA关注的人

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