随笔分类 -  c语言

摘要:在一个多任务嵌入式系统中,有一个CPU可直接寻址的32位寄存器REGn,地址为0x1F000010,编写一个安全的函数,将寄存器REGn的指定为反转,其他bit不变!void bit_reverse(uint32_t nbit){ *((volatile uns... 阅读全文
posted @ 2018-02-27 16:01 gluo-dreamer 阅读(489) 评论(0) 推荐(0)
摘要:刚看到一道面试题:用C语言实现一个数组中char A[n]每个字节内部8bit数据高低调转!在嵌入式中常用蝶式交换算法实现!其中还有查表法(比较占用内存)!蝶式交换算法:data = (data > 4);data = ((data > 2)&0x33);data =... 阅读全文
posted @ 2018-02-16 21:59 gluo-dreamer 阅读(962) 评论(0) 推荐(0)
摘要:__attribute__基本介绍: 1. __attribute__ 可以设置函数属性、变量属性和类型属性。 2. __attribute__ 语法格式为:__attribute__ ((attribute-list)) attribute-... 阅读全文
posted @ 2017-11-21 18:11 gluo-dreamer 阅读(124) 评论(0) 推荐(0)
摘要:在嵌入式开发中一些设备如WiFi、蓝牙......都会通过串口进行主机与从机间通信,串口一般以每次1bit位进行传输,效率相对慢。 在linux系统下串口的编程有如下几个步骤,最主要的是串口初始化! 1.打开串口 open(“/dev/XXXX”,... 阅读全文
posted @ 2017-09-27 23:51 gluo-dreamer 阅读(552) 评论(0) 推荐(0)
摘要:v4l2的学习建议和流程解析: http://www.cnblogs.com/silence-hust/p/4464291.html补充:枚举设备所支持的image format: VIDIOC_ENUM_FMTstruct v4l2_fmtdesc fmtd... 阅读全文
posted @ 2017-09-23 19:42 gluo-dreamer 阅读(189) 评论(0) 推荐(0)
摘要:根据apue讲述: 标准的IO例程可能从它们各自的内部数据结构的角度出发,是以线程安全的方式实现的!但在线程中,如果标准 IO例程都获取它们各自的锁,那么在做一次一个字符的IO时就会出现严重的性能下降!在这种情况下,需要对每 一个字符的读写操作进行... 阅读全文
posted @ 2017-09-12 20:05 gluo-dreamer 阅读(258) 评论(0) 推荐(0)
摘要:jpeg库下载地址: http://www.ijg.org/交叉编译三部曲: A ./configure --host=arm-linux-gcc --prefix=/home/flying/jpeg-install B make C ma... 阅读全文
posted @ 2017-09-09 23:20 gluo-dreamer 阅读(1476) 评论(0) 推荐(2)
摘要:select函数简解: selct 称之为多路复用IO,使用它可以让程序阻塞在select上,而非实际IO函数上. int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *except... 阅读全文
posted @ 2017-08-17 16:28 gluo-dreamer 阅读(1893) 评论(0) 推荐(0)
摘要:以下载链接“http://www.boa.org/boa-0.94.13.tar.gz”为例:断点续传实验大概步骤:=====================1,使用gethostbyname()获取站点“www.boa.org”的IP地址2,以“boa-0.94.1... 阅读全文
posted @ 2017-08-16 20:04 gluo-dreamer 阅读(403) 评论(0) 推荐(0)
摘要:需求分析: 1.需要Linux c 网络编程基础, 2.需要了解 http 协议 3.需要天气信息相关api(可以从阿里云上购买,很便宜的!) 4.需要cJSON解析库(因为获取到的天气信息一般是用cJSON 封装,有的是用xml封装... 阅读全文
posted @ 2017-08-15 17:05 gluo-dreamer 阅读(450) 评论(0) 推荐(0)
摘要:#include #include #include #include #include #include #include "my_err.h"static void err_doit(int, int, const char *, va_list);void er... 阅读全文
posted @ 2017-08-09 20:35 gluo-dreamer 阅读(134) 评论(0) 推荐(0)
摘要:/***********************************************************************************************相关函数: #include #include ... 阅读全文
posted @ 2017-08-07 13:10 gluo-dreamer 阅读(1074) 评论(0) 推荐(0)
摘要:linux下我们可以调用fork函数创建子进程,创建的子进程将会得到父进程的数据空间、堆、栈......副本(采用写时复制机制),子进程将会继承父进程的信号掩码、信号处理方式、当前工作目录、会话id、组id......。当子进程退出时父进程应当及时获取子进程退... 阅读全文
posted @ 2017-08-05 14:53 gluo-dreamer 阅读(264) 评论(0) 推荐(0)
摘要:/**************************************************相关函数: #include int pthread_cancel(pthread_t thread) 成功... 阅读全文
posted @ 2017-08-04 20:49 gluo-dreamer 阅读(406) 评论(0) 推荐(0)
摘要:popen函数是标准c提供的一个管道创建函数,其内部操作主要是创建一个管道,调用fork创建子进程,关闭不需用的文件描述符,调用exec函数族执行popen的第一个参数。然后等到关闭。也就是说我们可以传递一个命令(ls -l......)或一个可执行程序。于p... 阅读全文
posted @ 2017-08-02 19:33 gluo-dreamer 阅读(900) 评论(0) 推荐(0)
摘要:/*********************************************** 管道(pipe)是Linux上进程间通信的一种方式,其是半双工(数据流只能在一个方向上流动(还需要经过内核),及要么是接收,要么是发送),并且只能在父子进程 或 具有公... 阅读全文
posted @ 2017-08-01 20:02 gluo-dreamer 阅读(721) 评论(0) 推荐(0)
摘要:C语言中 typeof 关键字是用来定义变量数据类型的。在linux内核源代码中广泛使用。下面是Linux内核源代码中一个关于typeof实例:#define min(x, y) ({ \ typeof(x) _min1 = (x)... 阅读全文
posted @ 2017-02-27 12:56 gluo-dreamer 阅读(1481) 评论(0) 推荐(1)