自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 资源 (1)
  • 收藏
  • 关注

原创 xml 解析

xml使用

2022-10-15 15:42:54 595 1

原创 连接模块办法

linux系统调试时,需要进入终端调试或者文件导入导出动作。下面介绍常用方法。

2022-10-15 15:07:33 1245

原创 perl 脚本

perl语言1. 基本语法perl 语言是用于文本处理语言,它代表实用提取和报告语言,可在各种平台运行(windows unix等)1.环境搭建与使用安装perl 软件perl -v # 检查版本信息从官网下载perl 软件后,直接将程序添加到环境变量即可。注意事项(链接:https://www.perl.org/get.html):Perl 在 Window 平台上有 ActiveStatePerl 和 Strawberry Perl 编译器。ActiveState Perl和 St

2022-05-19 10:40:57 12228

原创 短信基础-pdu分析

短信pdu 格式介绍本文主要记录下短信的pdu格式PDU串共有2类,分别是SUBMIT-PDU,DELIVER-PDU一. 发送pdu格式-SUBMIT-PDUSCA 短信中心信息sca len: sca type+sca addr 总长度,占用一个字节,如果值为0 则表示没有指定SCA信息,使用CSCA 中配置的信息。sca type: 用于表示短信服务中心号码的类型,可能取得值有:0x91(国际型),0x81(未知类型),0xA1(国内型),占用一个字节sca addr:用于存储短信服务

2021-11-29 11:23:10 987

原创 shell函数与read命令

shell函数与read命令本文主要介绍三个知识点,shell函数的封装,read命令是使用,突出打印echo -e的使用。一. shell 函数我们知道shell脚本 执行是从文件上执行到下 但是脚本文件中的函数是不会执行的shell函数封装[ function ] funname [()]{ action; [return int;]}eg:#!/bin/bashfunction func_ret_test(){ a=7; #b=$[a+1

2021-11-13 17:10:12 1508

原创 shell表达式与基本语句

shell表达式与基本语句一.shell 表达式expr,let,awk常用命令或者( [] 执行基本的算数运算result=$[a+b])算数运算a=10b=20val=`expr $a + $b`echo "a + b : $val"val=`expr $a - $b`echo "a - b : $val"val=`expr $a \* $b`echo "a * b : $val"val=`expr $b / $a`echo "b / a : $val"val=`e

2021-11-13 16:50:35 1084

原创 Linux 开发常用知识杂谈(2)

Linux 开发常用知识杂谈(1)一.gdb调试需要带参数如何调试gdb demo.binset args --device /dev/ttyUSB1 --baut 460800 -A accountCfg.inir直接gdb跑 挂了之后 敲bt二. adb fastboot 使用adb shell 进系统adb push 导入文件adb pull 下载文件adb devicesadb reboot-bootloaderfastboot devicesfastboot

2021-09-19 11:06:47 199

原创 域套接字-多客户端实现

域套接字-多客户端实现我们在linux 应用开发中,如果需要实现进程间通信的多客户端接口,就需要引入select 和epoll 相关机制了,本文介绍下epoll的功能的实现。多客户端使用场景,比如我们需要开发一个库接口,提供给客户调用,那么使用域套接字实现进程间通信,就必须在service端引入多路复用,否则库功能就只能被一个进程使用了。代码实现:service端#include<stdio.h>#include<stdlib.h>#include<sys/soc

2021-03-21 12:19:35 521

原创 ipc 通信介绍

ipc 通信介绍linux应用开发中,进程中通信的使用是不可能避免的,本文介绍常用的进程间通信方式。有名管道,消息队列,域套接字。一,有名管道管道文件,可以由任意进程访问,打开管道就可以指定读写方式通过文件IO操作,内容在内存中,读写端全部关闭就释放,使用时注意,读端打开是会阻塞,写端打开时才运行,写端存在但是不写数据,读端也会阻塞,可以使用open read write进行读写,一但读到文件末尾,需要关闭,否则一直读到“”,返回为0。代码实现:#include<stdio.h>#

2021-03-20 13:26:51 907

原创 linux线程中如何控制子线程退出

linux线程中如何控制子线程退出一.相关接口介绍1.线程的创建-pthread_create使用man 3 查询函数使用int pthread_create(pthread_t *thread, //线程id const pthread_attr_t *attr, //线程属性,一般为空 void *(*start_routine) (void *), //线程处理函数 void *

2020-11-15 08:10:02 1284

原创 linux 编程基础知识小结

linux 编程基础知识小结一.编译linux .c文件编译成可执行文件,需要经过预处理,编译,汇编,链接的过程,我们现在分别介绍每个过程,我们一般说的编译就是这四个过程的统称。1.预处理命令:gcc -E test.c -o test.i在源文件中,我们把以#开头的叫做预处理命令,也就是说预处理就是处理文件中#开头的一些命令,他包括头文件包含#include,宏定义#define,条件编译,在linux开发过程这一步我们可以做许多应用。检查功能宏的定义,没有定义可以让预处理阶段就报错报,或者检

2020-10-18 15:33:17 407

原创 关于wav amr音频分析

关于wav amr音频分析从事嵌入式开发过程中,如果遇到播放wav 和 amr格式音频的话,我们就必须要对这两种音频格式的数据有所了解,今天就简单介绍下这两种音频文件。1.WAV文件咋们先贴一张WAV文件的二进制数据图。WAV文件=wav头+ 音频数据先介绍下wav音频数据的头分析地址/大小描述00H 4 bytesRIFF04H 4 byte...

2020-04-19 13:54:31 848

原创 LTE语音业务-VOLTE(一)

LTE语音业务-VOLTE(一)、本文简单记录下volte相关知识与其注册流程一.volte 处理流程1.终端用户与网络都需要了解对方的volte能力,这个我们以前lte 附着时已经介绍过来,相关信息在attach req中。2.建立IMS承载,在建立lte默认承载之后,需要建立IMS专用承载,apn为ims3.向IMS域发起注册。4.注册成功后,进行相关业务流程了。这里贴出相关lo...

2020-04-05 17:49:31 2061

原创 lte语音业务-CSFB

lte语音业务-CSFB一 相关概念我们知道,2g网络存在ps域 与cs域分别为 GPRS GSM网络,3g没有区分ps cs,4g的域变成了IMS 和 EPClte网络语音解决方案有如下几种方案特点双通双待两套收发器,分别驻留lte网络和2g/3g网络CSFB回落到2g或者3g网络volteims域,4g高清语音ott类似微信的语音通信方式...

2020-03-29 14:32:35 2435 1

原创 Linux 开发常用知识杂谈(1)

Linux 开发常用知识杂谈1.如何使用命令的方式确定进程命令解释:ps -ef 查询系统进程| 管道符 输出作为输入grep -v grep 排除带grep字符串的进程wc -l 统计函数2.如何查询linux 文件或者目录大小 - du3.内存占用情况-df4.十六进制显示文件内容-hexdump5.在程序中如何调用且有输出结果command 为命令fp ...

2020-03-21 13:05:32 185

原创 linux Posix定时器介绍

linux Posix定时器介绍在linux应用编程中,定时器的使用是不可或缺的部分,本文介绍下linux

2020-03-08 17:36:51 801

原创 lte网络注册流程(3)

lte网络注册流程(3)本文介绍下下lte网络注册的附着和建立默认承载的过程之中消息分析.1.attach request消息中主要包括:EPS attach type 数据业务附着类型EPS Mobile identity 终端用户标识(IMSI or GUTI)UE Network Capbility 终端支持哪些加密和完整性保护算法Tracking Area...

2020-03-08 16:35:50 5840

原创 lte网络注册流程(2)

lte注册流程(2)本文说说lte系统信息吧,分为Mib和sib,sib系统信息存在sib1-sib12,主要介绍下mib,sib1 sib2 sib3 sib4 sib4的作用。mib:mib包含了非常重要的系统信息,包括小区标识(PCI),频率,当前系统帧号,发射天线个数及小区带宽,phich信道配置。sib1信息sib1也是重要的系统信息,终端附着到lte网络必不可少的,包含如p...

2020-03-01 20:32:32 2109

原创 lte网络注册流程 (1)

lte网络注册流程(1)最近在学习lte网络相关内容,并做些简单记录,并且结合高通平台的qxdm log做简要分析。首先,介绍下lte注册的总体流程,后续再完善整体结构,至于lte注册信令流程,网上搜索就有一堆的资料,笔者就不再上传了。1.设备开机,plmn 选择,小区选择plmn = mcc+mnc过程如下,开机后,先从设备sim卡中获取上次注册的plmn,如果获取不到,则需要进行全频...

2020-03-01 19:09:12 5384 4

原创 嵌入式开发一些衍生知识

嵌入式开发一些衍生知识一.ubuntu samba服务器搭建sudo apt-get install samba配置vim /etc/samba/smb.conf在最后添加#用户名[colin] comment = server3 zichar browseable = yes #共享目录 path = /home/colin/ writabl...

2019-12-27 20:36:48 410

原创 esp8266 nvs应用

esp8266 nvs应用一个芯片,做成一个产品,都会需要在断定的时候对一些数据进行保存,以esp8266为例,需要连接网络,所以设备必须能够保存ssid,password,否则设备如何联网,本文就结合上篇文章at命令的开发,通过at命令将ssid,password调用nvs接口,将数据保存起来,设备开机,直接读取后进行联网操作。1.增加at命令方法1.at命令增加到列表atcmd_tab...

2019-12-21 16:58:02 1146

原创 esp8266 at命令开发

esp8266 at命令开发无论哪个平台,我感觉at命令开发是及其重要的,本文介绍下如何依赖于串口通信实现at命令开发。**1.和前面添加功能模块一样,先创建一个at命令处理任务。`void app_main(void){//modify cdb 2019-12-19// printf(“SDK version:%s\n”, esp_get_idf_version());// Ini...

2019-12-21 12:59:13 562

原创 esp8266 基于sntp协议更新系统时间

esp8266 基于sntp协议更新系统时间我们esp8266设备,如何然他具有准确的系统时间呢?那就要依赖于sntp协议,一般芯片都集成了sntp协议,我们只需要使用就可以了。1.创建一个sntp任务sntp_example_task更新网络时间到本地void app_main(void){ //modify cdb 2019-12-19 // printf("SDK ve...

2019-12-19 18:11:53 918

原创 esp8266 gpio 控制(led与key使用)

esp8266 gpio 控制(led与key使用)现在介绍上个工程添加led控制与key控制,必须学会如何控制led,和key,我们才能把他应用到我们的想做的项目中去。。关系到gpio,则需要看硬件原理图:由上图可知,我们需要想操作led或者key,只需要配置gpio 0 ,gpio1即可。现在先创建一个gpio 处理任务void app_main(void){ //modi...

2019-12-19 16:12:27 1650

原创 esp8266自定义工程框架

esp8266自定义工程框架如何再起官方rtos sdk中规范的建立一个工程了,现在我们基于上一篇博客-esp8266对接阿里云平台做下规范。首先将user_main.c中mqtt连接部分分离出来,写入user_mqtt.c中,分离是注意头文件包含,及一些全局变量设置。user_main.c/* This example code is in the Public Domain (o...

2019-12-19 14:22:58 999

原创 esp8266对接阿里云平台

esp8266对接阿里云平台上面几篇博客已经介绍了esp8266的开发环境搭建和自己的工程创建问题,本文开始介绍这个wifi模块的应用—对接阿里云平台。后面再此基础上再优化其他功能。1.创建自己的工程sdk根目录创建project,后面将ESP8266_RTOS_SDK-3.1.1/examples/get-started/project_template拷贝到project中,后面就能够基...

2019-12-19 10:52:23 1963

原创 esp8266 sdk 3.1.1软件bug

esp8266 sdk 3.1.1软件bug在调试mqtt连接时,需要使用lwip debug,打开LWIP_DEBUG debug调试#ifdef LWIP_DEBUG#ifndef LWIP_PLATFORM_DIAG#error "If you want to use LWIP_DEBUG, LWIP_PLATFORM_DIAG(message) needs to be define...

2019-12-18 16:17:51 390

原创 esp8266入门总结

esp8266入门总结结合上面两篇博客1.编译环境搭建2.esp8266 rtos sdk示例工程总结,建议使用ubuntu 18.04系统,按照上述进行环境搭建与编译测试。笔者自己重新安装了ubuntu18.04 后,重新搭建环境并且测试。1.安装一些依赖软件#建议逐一安装sudo apt-get install git autoconf build-essential gper...

2019-12-18 10:57:01 312

原创 esp8266 rtos sdk示例工程

esp8266 rtos sdk示例工程上一篇文章说明了使用ubuntu 14.04搭建esp8266编译环境,搭建成功后,在使用其sdk 用户示例工程partitions_singleapp工程编译测试成功,生成了三个主要的bin文件。一.程序烧录他们路径分别是:bootloader.bin,partitions_singleapp.bin,project_template.bin,其实还...

2019-12-17 20:52:14 1014

原创 esp8266开发环境搭建

esp8266开发环境搭建买了一块esp8266物联网开发板,笔者准备使用一周的时间来玩一玩,这个物联网模块。某宝上就能购买,其给的学习sdk是ESP8266_NONOS_SDK-3.0,我觉得没有任何意义,直接不用,准备自己从其官网下载带系统rtos的sdk学习,并且移植到开发板中。笔者使用的sdk软件为:ESP8266_RTOS_SDK-3.2,有此需求的自行去其官方网站下载。一.编译环...

2019-12-17 15:48:17 1442

原创 postman介绍用与使用

postman介绍用与使用(可用于设备对接http服务器调试)在物联网设备开发过程中,有些设备需要和服务器进行信息交互,利用postman工具进行调试必不可少的一种方法,当然,网上也有许多在线调试工具可以使用(postjson)。下面我们先在windows系统中利用hfs服务器模拟http服务器,使用postman做个简单测试,介绍下其使用方法。...

2019-11-20 14:50:56 308 1

原创 ubuntu gcc与g++版本更新问题

ubuntu gcc版本更新问题近期使用ubuntu编译mt7628 openwrt源码,编译报错。checking whether x86_64-linux-gnu-g++ supports C++11 features by default... nochecking whether x86_64-linux-gnu-g++ supports C++11 features with -...

2019-11-09 13:38:51 892

原创 tftp64工具使用

tftp64工具使用嵌入式软件开发时,如果嵌入式设备支持tftp协议,我们嵌入式就能够通过tftp与pc进行数据交换。现在无嵌入式设备,使用ubuntu来测试。首先,设备tftp64—tftp服务器设置:然后,ubuntu环境配置打开ubuntu,下载tftp应用。sudo apt-get install tftp后面进行使用tftp下载一个文件(ubuntu从pc机下载)ubu...

2019-11-08 15:24:45 8514 1

原创 mqtt协议分析

mqtt协议分析一.mqtt报文mqtt报文包括,固定报头,可变报头,有效载荷(消息体)。1.固定报头mqtt control packet type:flagsspecific to each mqtt control packet type:dup:客户端与服务器消息重发时,此标志被置1qos:消息质量等级,最多一次 (QoS0),至少一次 (QoS1),有且仅有一次 (Q...

2019-11-06 20:41:01 1652

原创 使用c语言单向链表实现简单学生成绩管理系统(3)

使用c语言单向链表实现简单学生成绩管理系统现在这个简单系统不能保存数数据,不能退出,本文使用lo操作将链表中维护的数据保存到文件中,即退出保存,重新运行再从文件中提取数据。#include<stdio.h>#include<stdlib.h>#include<string.h>#include <sys/types.h>#include...

2019-11-05 17:57:39 679 2

原创 使用c语言单向链表实现简单学生成绩管理系统(2)

使用c语言单向链表实现简单学生成绩管理系统本文优化整个代码框架结构,完善用户可以对系统信息的修改。本例中,使用一系列c语言知识,有利于巩固c语言语法,具体包括结构体,枚举,while循环,switch语句,还有数据结构等内容。基于上一个内容(使用c语言单向链表实现简单学生成绩管理系统(1))作如下修改。修改1:实现基于姓名对数据进行修改和删除简单解释下节点的删除代码实现//链表中删除...

2019-11-05 09:21:20 788

原创 使用c语言单向链表实现简单学生成绩管理系统(1)

使用c语言单向链表实现简单学生成绩管理系统链表是一种基本的数据结构类型,可以实现对信息的管理,实现此系统,需要定义一个管理信息的数据类型结构体,然后对数据信息进行增删改查即可。本文定义一个个人成绩结构体,用于存储个人信息。struct grade_msg{ int chinese; int math; int english; .... }struct student_ms...

2019-11-04 16:40:40 4039 1

原创 单片机的BOD功能

单片机的BOD功能先看看百度百科对bod功能的介绍:对于单片机5V系统,设置BOD电平为4.0V;对于3V系统,设置BOD电平为2.7V。然后允许BOD检测。这样,一旦单片机的供电电压低于BOD电平,单片机进入RESET(不执行程序了)。而当电源恢复到BOD电平以上,单片机才正式开始从头执行程序。保证了系统的可靠性!当电压跌至2.5V,系统程序还能工作。这时有2个可怕的现象可能出现:1、...

2019-10-31 19:29:03 2949

原创 结构体copy问题

结构体copy问题c语言中,结构使用是非常频繁的,操作结构体时,我们一般使用memcpy对结构体进行copy赋值,其实我们忽略了一点,同一种类型结构体是可以直接进行赋值的。另外,本文介绍下使用memcpy copy结构体时的一些注意事项。一.结构体内存对齐使用memcpy对结构体进行内存copy,首先要知道结构体的大小计算,最简单的方法使用sizeof(结构体类型)进行计算。当然,本文也介绍...

2019-10-29 19:28:02 8624 1

原创 物理地址介绍

物理地址介绍在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址(Physical Address),又叫实际地址或绝对地址。计算(此类计算可直接使用计算机进行计算,总结来说就是进制之间的转换):地址(字节编址)1024 2^10b 1KB 10000000000 1K...

2019-10-25 11:34:43 4456 2

project.rar

本资源是esp8266开发板开发实例,就esp8266_rtos_sdk_3.1.1(具体看笔者的esp8266有详细介绍)开发,实现的功能包括,联网,连wifi,led操作,key操作,at命令开发,sntp更新系统时间,对接阿里云平台,nvs(保存用户数据),如下载此资源,建议结合我博客一块阅读,记录了我完成此工程的全部过程。

2019-12-21

空空如也

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

TA关注的人

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