自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (5)
  • 收藏
  • 关注

原创 QNX资源管理器

需要注意的是,resmgr_attach()接口只是将函数指针拷贝到resmgr_connect_func_t和resmgr_io_funcs_t结构中,而不是拷贝整个结构。open,处理客户端的open()/fopen()/sopen()等请求,消息子类型包括_IO_CONNECT_COMBINE, _IO_CONNECT_COMBINE_CLOSE, _IO_CONNECT_OPEN等;这个结构的使用与resmgr_connect_funcs_t一样,对应到客户端的不同请求,及消息类型。

2023-07-07 19:56:13 1086

原创 博客摘录「 Linux内核-中断知识汇总(重温)」2023年6月6日

5.2.5 中断处理程序设备驱动分为两半,上半部用于快速处理中断,到下半部的调度工作在之后处理。上半部快速处理中断很重要,因为上半部运行在中断禁止模式(irq_disable mode),会推迟新的中断产生,如果运行的时间太长,就会造成延时问题。下半部可以作为tasklet或者动作队列,之后由内核线程调度。

2023-06-06 20:20:02 69

转载 qnx 资源管理器一(转载)

qnx 资源管理器

2023-02-21 09:20:09 642

原创 makefile

推荐一篇makefile管理文档https://www.cnblogs.com/aaronLinux/p/8242552.html

2021-11-19 10:58:47 172

原创 关于timer产生pwm出现一个周期异常波形分析(Linux)

1、问题描述:在调整占空比中,发现在缩小占空比过程中有概率出现闪屏问题,从示波器抓取图像如下2、原因分析:异常波形(如下图)中,timer匹配中断没有触发电平翻转,导致timer溢出中断被忽视,直到下次timer匹配中断触发电平翻转3、 timer产生pwm原理:TLDR决定PWM的频率,TCRR决定PWM的占空比,TCLR决定周期的起始电平4、得出结论:设置TCRR值过程中,需要把握好设置的时机,如果现在TCRR的值小于原本TCRR且刚好定时器计数值刚好在这两个TCRR..

2021-08-28 14:32:41 858

原创 IO内存

IO内存一、什么是IO内存外设的SFR(特殊功能寄存器)编址与内存的编址是同一个地址空间,叫做IO内存。cat /proc/iomem原因:Linux 内核运行后,开启了 MMU(内存管理单元),所以不能直接访问 CPU 的物理地址,也就是说,不能直接使用物理地址访问系统的 IO 内存。必须将物理地址转换为虚拟地址,内核通过虚拟地址来访问系统的 IO 内存。有MMU的芯片:x86、ARM9以上的CPU无MMU的芯片:单片机、ARM Cortex-M系列二、IO内存的使用方法安装驱动:申请

2021-02-02 15:11:27 510

原创 I/O复用select、poll和epoll

在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。

2021-01-20 10:22:34 92

原创 C语言编写用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。(采用循环链表)

// 用户输入M,N值,从1至N开始顺序// 循环数数,每数到M输出该数值,// 直至全部输出#include <stdio.h>#include <stdlib.h> // 节点#if 1typedef struct Node node;struct Node{ int data; node *next; }; #elsetypedef struct node{ int data; node* next;}node;#endif..

2021-01-19 10:25:42 886

原创 linux常用的shell编程例子

模板一:ip配置#!/bin/shifconfig eth0 192.168.1.xxx netmask 255.255.255.0 up >/dev/null 2>&1/sbin/route add default gw 192.168.1.1模板二:Samba挂载#!/bin/shmount -o nolock 192.168.1.xxx:/nfs /mn...

2020-07-21 09:12:15 202

原创 关于send和recv在UDP的使用

在socket编程中,包括有连接和无连接两种方式,其流程如下:有连接:TCP客户端的流程一般是 socket-【bind】-connect-send/recv无连接:UDP客户端的流程一般是 socket-【bind】-sendto/recvfromsend与sento相比,没有提供对方的地址,在有连接模式中, 连接已经事先建立好,当然不需要每次都提供对方地址。但是,即使在无连接模式中,...

2020-07-20 19:42:11 2296

原创 32位编译程序在64位操作系统下运行报error while loading shared libraries: libpng12.so.0: wrong ELF class: ELFCLASS64

问题描述:32位编译程序在64位操作系统下运行报error while loading shared libraries: libpng12.so.0: wrong ELF class: ELFCLASS64解决方法:使用ldd命令查看执行程序例如:提示没有libpng12.so.0,需要把 libpng12.so.0动态库复制到**/usr/lib32/**系统目录下...

2020-07-20 19:29:36 2109

原创 pthread_sigmask使用

pthread_sigmask 用于多线程 ; 新线程拥有一份pthread_create那个线程的屏蔽信号拷贝;每个线程均有自己的信号屏蔽集(信号掩码),可以使用pthread_sigmask函数来屏蔽某个线程对某些信号的响应处理,仅留下需要处理该信号的线程来处理指定的信号。实现方式是:利用线程信号屏蔽集的继承关系(在主进程中对sigmask进行设置后,主进程创建出来的线程将继承主进程的掩...

2020-07-20 19:13:28 2430

原创 字库文件读取和显示

一、原理HZK16字库是符合GB2312国家标准的16×16点阵字库,HZK16的GB2312-80支持的汉字有6763个,符号682个。其中一级汉字有 3755个,按声序排列,二级汉字有3008个,按偏旁部首排列。我们在一些应用场合根本用不到这么多汉字字模,所以在应用时就可以只提取部分字体作为己用。 HZK16字库里的16×16汉字一共需要256个点来显示,也就是说需要32个字节才能达到显示...

2020-07-20 19:12:41 2178 1

原创 线程定时任务和对应屏蔽方式

void mtimer_init(void){ mtimer_list_head_init(); init_sigaction(); init_time();}static void init_sigaction(void) { struct sigaction tact; tact.sa_handler = timer_action; ...

2019-12-13 13:16:50 204

原创 关于保留最近三天文件的shell脚本

#!/bin/sh day=$(/bin/date +%Y-%m-%d);count=`/usr/bin/find /home/LEDscr/backup -mtime +1 | wc -l`;/usr/bin/find /home/LEDscr/backup/* -mtime +1 -delete;echo $day - $count;

2019-12-03 16:17:49 1205

原创 一个比较通用Makefile模板

模板一CC:=/opt/mainline_toolchain-master/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc#CC:=gccRM:= rm -rfINC:= -I./include/LIBS:= -L./ -lmosquitto -pthreadTARGET:=...

2019-12-03 16:04:14 90

原创 ubuntu16.04安装可编译32位可执行文件链接库

$sudo apt-get install lib32readline6-dev然后 编译时加上 -m32如:gcc a.c -m32

2019-11-29 09:04:39 583

原创 C切割割字符串并转换为整形

C切割割字符串并转换为整形1、strstr函数使用2、atoi函数使用3、标准文件IO操作#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/stat.h>#include <sys/types.h>#include <fcn...

2019-11-07 19:54:46 224

原创 内核模块--module学习

一、内核模块

2019-09-13 15:00:58 690 1

转载 转载CSDN博客方法

                                 &...

2019-09-13 13:10:05 65

原创 嵌入式linux系统的启动过程

一、启动过程上电---->向执行U-boot---->加载内核到内存,并启动内核---->挂载根文件系统---->执行脚本、应用程序,进入shell命令行

2019-09-13 13:00:16 765

原创 关于/dev/mem学习

/dev/mem,通过mmap可以将物理地址映射到用户空间的虚拟地址上,在用户空间完成对设备寄存器的操作,/dev/mem是物理内存的全映像,可以用来访问物理内存,一般用法是open("/dev/mem",O_RDWR|O_SYNC),接着就可以用mmap来访问物理内存以及外设的IO资源,这就是实现用户空间驱动的一种方法。关于mmap原理映射就是建立一种一一对应关系,在这里主要是指硬盘上文件的...

2019-09-07 10:50:25 586

原创 新塘ARM开发板杂记

#define ETH “eth0”/sys/class/net/“ETH”/address等同于/sys/class/net/eth0/address08:19:07:12:17:08系统MAC设置ifconfig eth0 downifconfig eth0 hw ether 08:19:07:12:17:08ifconfig eth0 up获取电脑MACsprintf(f...

2019-09-07 10:47:00 511

原创 vsnprintf()用法

int vsnprintf (char * s, size_t n, const char * format, va_list arg );描述:将格式化数据从可变参数列表写入大小缓冲区,如果在printf上使用格式,则使用相同的文本组成字符串,但使用由arg标识的变量参数列表中的元素而不是附加的函数参数,并将结果内容作为C字符串存储在s指向的缓冲区中 (以n为最大缓冲区容量来填充)。如果结果...

2019-09-07 10:43:58 3557

原创 互斥锁--死锁与线程安全

一、典型的两种死锁情形:(一)线程自己将自己锁住一般情况下,如果同一个线程先后两次调用lock,在第二次调⽤用时,由于锁已经被占用,该线程会挂起等待占用锁的线程释放锁,然而锁正是被自己占用着的,该线程又被挂起而没有机会释放锁,因此 就永远处于挂起等待状态了,于是就形成了死锁(Deadlock)。(二)多线程抢占锁资源被困又如线程A获 得了锁1,线程B获得了锁2,这时线程A调用lock试图获...

2019-09-07 10:43:09 143

原创 线程互斥量pthread_mutex_t

struct mt { int num; pthread_mutex_t mutex_com_write; pthread_mutexattr_t mutexattr_com_write;};为什么使用线程锁在多线程应用程序中,当多个线程共享相同的内存时,如同时访问一个变量时,需要确保每个线程看到一致的数据视图,即保证所有线程对数据的修改是一致的。如下两种情况不存在...

2019-09-07 10:42:30 250

原创 JN516x的DIO控制

JN516x单片机有20DIO引脚,分别为DIO0-DIO19,每个IO引脚可以设置为输出或者输入模式,当然它们也作为复用引脚,例如ADC、UARTs、Timers、SI、SPI,PWM,RF、COMP等...

2019-09-06 21:05:06 685

原创 select函数应用

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式...

2019-09-05 10:42:58 97

原创 MQTT学习

QTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备...

2019-09-04 14:37:40 979

原创 SVN学习

SVN简介Subverson(SVN)是一个开源的版本控制系统,也就是说Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。SVN的一些概念repository(源代码库):源代码统一存放的地方Checkout(提取)...

2019-08-17 16:01:42 76

原创 linux 系统的&号和管道符号|

看看如何使用 & 号将下面这个命令放到后台运行:cp -R original/dir/ backup/dir/这个命令的目的是将 original/dir/ 的内容递归地复制到 backup/dir/ 中。虽然看起来很简单,但是如果原目录里面的文件太大,在执行过程中终端就会一直被卡住。所以,可以在命令的末尾加上一个 & 号,将这个任务放到后台去执行:cp -R origi...

2019-08-14 18:09:27 953

原创 字符串数据转换为十六进制

/********************************************************** 函数说明:从字符串数据转换为十六进制数据* 入口参数:Hex_str 字符串指针 len 字符串长度* 出口参数:Hex_data 十六进制数据首地址* 返回值 :0 : 成功 1:失败 * 修改时间:2018.7.20* 修改人 :ZZH********...

2019-08-14 18:08:22 669

原创 register.asp相关解析

<html><!- Copyright (c) Go Ahead Software Inc., 2000-2010. All Rights Reserved. -><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Lo...

2019-08-08 20:37:36 612

原创 嵌入式web服务器--GoAhead

GoAhead Web Server是为嵌入式实时操作系统(RTOS)量身定制的Web服务器。它的目标也许不在于目前的WEB服务器市场,而是面向当嵌入式系统深入我们的工作与生活的明天,那时,它也许会成为使用最广泛的WEB服务器。

2019-08-04 19:10:47 1332

原创 JN-AN-1216-IOT-ControlBright-UserGuide学习笔记

A.2. 消息特点协议保留小于0x10的字节值作为特殊字符使用(Start和结束字符)。因此,为了允许包含这些保留值的数据被发送,使用了一个称为“字节填充”的过程。这包括标识一个属于保留字符范围的要发送的字节,首先发送一个转义字符(0x02),然后与0x10异或例如,如果发送一个值为0x05的非特殊字符:•发送转义字节(0x02)XOR 0x10一起发送的字节(0x05 异或 0x10 =...

2019-08-03 19:26:51 137

原创 JN5169 zigbee3.0协议栈----消息队列

消息队列节点上的应用程序任务之间的通信是通过消息队列实现的。应用程序可以为特定的通信通道创建专用的消息队列在zigbee协议栈中关于队列相关相关函数如下和队列加入消息和读取消息流程图PUBLIC void ZQ_vQueueCreate (tszQueue *psQueueHandle, const uint32 uiQueueLength, const uint32 uiItemSize,...

2019-06-15 11:39:46 901 2

原创 ucosIII任务管理

多任务操作系统最主要的就是对任务的管理,包括任务的创建、挂起、删除和调度等,ucosiii是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制,它提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等一、ucoIII启动和初始化1.调用OSInit()初始化ucosiii2.创建任务,一般我们在main()函数中创建一个start_task任务,其他任务都是start_task...

2019-05-01 20:12:25 210

原创 嵌入式实时操作系统UCOSIII

5.6任务调度和切换任务调度和切换就是让就绪表中优先级最高的任务获得CPU的使用权,UCOSIII是可

2019-05-01 20:12:01 955

原创 TI zigbee 2007协议栈学习笔记

ZigBee协议栈进行开发的基本思路可以概况为如下三点:1、用户对于ZigBee无线网络的开发就简化为应用层的C语言程序开发,用户不需要深入研究复杂的ZigBee协议栈2、ZigBee无线传感器网络中数据采集,只需要用户在应用层加入传感器的读取函数即可3、如果考虑到节能,可以根据采集周期进行定时,定时时间到了就唤醒ZigBee的终端节点,终端节点唤醒后,自动采集传感器数据,然后将数据发送给路...

2019-04-30 22:12:25 917

Linux驱动学习资料总结

linux驱动学习入门

2021-12-18

rcf_test.7z

rcf通信测试例程

2021-08-11

setup-x86_64.exe

Cygwin-x86_64位

2021-06-16

QNX_audio_wav.docx

qnx的音频处理常见接口函数

2021-06-16

Downloads.7z

Download PuTTY: latest release (0.75) for 64-bit x86

2021-06-02

空空如也

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

TA关注的人

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