
嵌入式
文章平均质量分 63
一只很笨很懒的肥猫
这个作者很懒,什么都没留下…
展开
-
关于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 · 1012 阅读 · 0 评论 -
I/O复用select、poll和epoll
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。原创 2021-01-20 10:22:34 · 133 阅读 · 0 评论 -
关于send和recv在UDP的使用
在socket编程中,包括有连接和无连接两种方式,其流程如下:有连接:TCP客户端的流程一般是 socket-【bind】-connect-send/recv无连接:UDP客户端的流程一般是 socket-【bind】-sendto/recvfromsend与sento相比,没有提供对方的地址,在有连接模式中, 连接已经事先建立好,当然不需要每次都提供对方地址。但是,即使在无连接模式中,...原创 2020-07-20 19:42:11 · 2558 阅读 · 0 评论 -
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 · 2258 阅读 · 0 评论 -
线程定时任务和对应屏蔽方式
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 · 248 阅读 · 0 评论 -
ubuntu16.04安装可编译32位可执行文件链接库
$sudo apt-get install lib32readline6-dev然后 编译时加上 -m32如:gcc a.c -m32原创 2019-11-29 09:04:39 · 642 阅读 · 0 评论 -
关于/dev/mem学习
/dev/mem,通过mmap可以将物理地址映射到用户空间的虚拟地址上,在用户空间完成对设备寄存器的操作,/dev/mem是物理内存的全映像,可以用来访问物理内存,一般用法是open("/dev/mem",O_RDWR|O_SYNC),接着就可以用mmap来访问物理内存以及外设的IO资源,这就是实现用户空间驱动的一种方法。关于mmap原理映射就是建立一种一一对应关系,在这里主要是指硬盘上文件的...原创 2019-09-07 10:50:25 · 701 阅读 · 0 评论 -
新塘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 · 561 阅读 · 0 评论 -
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 · 3903 阅读 · 0 评论 -
互斥锁--死锁与线程安全
一、典型的两种死锁情形:(一)线程自己将自己锁住一般情况下,如果同一个线程先后两次调用lock,在第二次调⽤用时,由于锁已经被占用,该线程会挂起等待占用锁的线程释放锁,然而锁正是被自己占用着的,该线程又被挂起而没有机会释放锁,因此 就永远处于挂起等待状态了,于是就形成了死锁(Deadlock)。(二)多线程抢占锁资源被困又如线程A获 得了锁1,线程B获得了锁2,这时线程A调用lock试图获...原创 2019-09-07 10:43:09 · 188 阅读 · 0 评论 -
select函数应用
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式...原创 2019-09-05 10:42:58 · 129 阅读 · 0 评论 -
MQTT学习
QTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备...原创 2019-09-04 14:37:40 · 1085 阅读 · 0 评论 -
SVN学习
SVN简介Subverson(SVN)是一个开源的版本控制系统,也就是说Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。SVN的一些概念repository(源代码库):源代码统一存放的地方Checkout(提取)...原创 2019-08-17 16:01:42 · 107 阅读 · 0 评论 -
线程互斥量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 · 314 阅读 · 0 评论 -
linux 系统的&号和管道符号|
看看如何使用 & 号将下面这个命令放到后台运行:cp -R original/dir/ backup/dir/这个命令的目的是将 original/dir/ 的内容递归地复制到 backup/dir/ 中。虽然看起来很简单,但是如果原目录里面的文件太大,在执行过程中终端就会一直被卡住。所以,可以在命令的末尾加上一个 & 号,将这个任务放到后台去执行:cp -R origi...原创 2019-08-14 18:09:27 · 1022 阅读 · 0 评论 -
字符串数据转换为十六进制
/********************************************************** 函数说明:从字符串数据转换为十六进制数据* 入口参数:Hex_str 字符串指针 len 字符串长度* 出口参数:Hex_data 十六进制数据首地址* 返回值 :0 : 成功 1:失败 * 修改时间:2018.7.20* 修改人 :ZZH********...原创 2019-08-14 18:08:22 · 732 阅读 · 0 评论 -
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 · 674 阅读 · 0 评论 -
嵌入式web服务器--GoAhead
GoAhead Web Server是为嵌入式实时操作系统(RTOS)量身定制的Web服务器。它的目标也许不在于目前的WEB服务器市场,而是面向当嵌入式系统深入我们的工作与生活的明天,那时,它也许会成为使用最广泛的WEB服务器。原创 2019-08-04 19:10:47 · 1518 阅读 · 0 评论