Linux 嵌入式开发
_charles_
永不止步
展开
-
GPS模块数据分析 -- linux
GPS模块的数据格式对GPS模块的数据处理本质上还是串口通信程序设计,只是GPS模块的输出遵循固定的格式,通过字符串检索查找即可从模块发送的数据中找出需要的数据,常用的GPS模块大多采用NMEA-0183 协议。NMEA-0183 是美国国家海洋电子协会(National Marine Electronics Association)所指定的标准规格,这一标准制订所有航海电子仪器间的通讯标转载 2015-07-23 14:50:44 · 4299 阅读 · 0 评论 -
Linux下更改目录及其下的子目录和文件的访问权限
想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。例如:[root@localhost ~]# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx[root@localhost ~]# chmod -R 777 /home/user 注:表示将整个/hom转载 2014-05-26 17:09:53 · 902 阅读 · 0 评论 -
Linux设备驱动开发详解-Note(9) --- 环境变量的增加/修改/获取-linux
getenv(取得环境变量内容)相关函数putenv,setenv,unsetenv表头文件#include定义函数char * getenv(const char *name);函数说明getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回转载 2014-05-21 11:12:12 · 1057 阅读 · 0 评论 -
readelf 编译文件使用什么工具编译
例子:$ cat a.cint main(void){ return 0; }$ gcc a.c$ readelf -wi a.out$ gcc a.c -g $ readelf -wi a.outContents of the .debug_info section: Compilation Unit @ offset 0x0: Length:原创 2014-04-15 13:19:54 · 1213 阅读 · 0 评论 -
大端和小端区别-linux
Little-Endian:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。Big-Endian:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。记忆方法:小端:低地址存放低位;大端高地址存放低位。先解释一下?高地址、低地址:这个很明显,地址大则是高地址,地址小则是低地址。低位、高位:从int型分析:0x00 12 34 56;从数据大小来判断,从左到右分别是高位到低位。例如1000元,1当然是高位,0当然是低位。由于这个int型是以十六进制表示的,0x6则表示一个十六原创 2013-11-28 10:01:20 · 5234 阅读 · 0 评论 -
linux下杀死进程全权讲解
经过搜集和整理相关的linux杀死进程的材料,在这里本人给大家推荐本篇文章,希望大家看后会有不少收获。1. kill作用:根据进程号杀死进程用法: kill [信号代码] 进程ID举例:[root@localhost ~]# ps auxf |grep httpd注意:kill -9 来强制终止退出举例 [root@localhost ~]# ps aux |gre转载 2014-03-13 14:25:10 · 911 阅读 · 0 评论 -
linux中的信号处理(signal和alarm)
信号是unix中所使用的进程通信的一种最古老的方法.系统使用它来同志一个或多个进程异步事件的发生.linux系统库bits/signum.h对信号名作了定义:linux的大多数信号是提供给内核的,仅有少数几种信号可以在信号间发送..SIGHUP 当终止一个终端时,内核就把这种信号发送给该终端所控制的所有进程..SIGINT 当一个用户按下中断键(ctrl+c)后,内核就向该转载 2013-12-19 13:27:26 · 1420 阅读 · 0 评论 -
网络IP地址转换、主机字节顺序、网络字节顺序的转换 -- linux
Linux下网络IP地址的转换,主机字节顺序和网络字节顺序的转换。网络IP地址本是用32位二进制来表示的,为了记忆的方便可以用点分十进制来表示IP地址,同时,网络IP地址在网络传输和计算机内部的存储方式也不同,需要用函数来进行转换。1.将点分十进制字符串转换成十进制长整型数:in_addr_t inet_addr(const char *cp); in_addr_t 即转载 2014-12-09 20:15:52 · 2217 阅读 · 0 评论 -
mac地址第一字节为何要求为偶数 -- linux
在TCP/IP的架构中,MAC地址扮演着非常重要的角色。在通信中,由MAC地址标识的主机网卡,作为主机身份的硬件地址。每块网卡被生产出来后,都会有一个全球唯一的编号来标识自己,不会重复,这个编号就是MAC地址,也就是网卡的物理地址。MAC地址是由48位的二进制数组成,即6个字节。在通信中是用16进制表示的。前24位是由生产厂家向IEEE标准组织申请的厂家代码,是固定的,但是它的第八位一转载 2014-12-15 14:28:00 · 4790 阅读 · 0 评论 -
学习笔记2 -- libcurl
代理 什么是代理?Merrian-Webster的解释是:一个通过验证的用户扮演另一个用户。今天,代理已经被广泛的使用。许多公司提供网络代理服务器,允许员工的网络客户端访问、下载文件。代理服务器处理这些用户的请求。 libcurl支持SOCKS和HTTP代理。使用代理,libcurl会把用户输入的URL提交给代理服务器,而不是直接根据URL去访问远程资源。转载 2014-09-01 20:05:39 · 1168 阅读 · 0 评论 -
libcurl基本使用 -- libcurl
前段时间写了个linux下的多线程下载工具, 使用到了强大的libcurl库. 现将libcurl的使用总结如下:关于libcurl的文章网络上很多, 这里不再描述. 以下是如何使用libcurl的例子.一、常用函数 1) libcurl的全局初始化及释放 CURLcode curl_global_init(long flags)转载 2014-09-01 18:58:43 · 1315 阅读 · 0 评论 -
学习笔记1 -- libclurl
这是一篇介绍如何使用libcurl的入门教程。文档不是逐字逐句按原文翻译,而是根据笔者对libcurl的理解,参考原文写成。文中用到的一些例子,可能不是出自原文,而是笔者在学习过程中,写的一些示例程序(笔者使用的libcurl版本是:7.19.6)。出现在这里主要是为了更好的说明 libcurl的某些api函数的使用。许多例子都参考libcurl提供的example代码。原文example中的提供转载 2014-09-01 19:50:14 · 966 阅读 · 0 评论 -
编译Ralink SDK时碰到的奇怪错误(undefined reference to `main')的解决办法
编译到RT288x_SDK/source/user/iptables-1.4.10出错:libtool: link: /opt/buildroot-gcc342/bin/mipsel-linux-uclibc-gcc libiptc/.libs/libip4tc.so extensions/libext4.a ./.libs/libxtables.so -lm/opt/buildro转载 2014-11-11 18:20:15 · 1974 阅读 · 0 评论 -
curl命令详解、实例 -- libcurl
linux curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。 一,curl命令参数,有好多我没有用过,也不知道翻译的对不对,如果有误的地方,还请指正。查看 复制 打印 ?-a/--append 上传文件时,附加到目标文件 -A/--user-agent转载 2014-12-15 10:29:14 · 3434 阅读 · 0 评论 -
curl_slist_append增加http header -- curl
CURL的中文资料比较少,下面是实际工作中用到,摸索出来的,记录之。1、增加HTTP Header curl_slist *plist = curl_slist_append(NULL, "Client-Key:m-5be02cd9ddfb11dcaf9700142218fc6e"); curl_slist_append(plist, "username:winter_44转载 2014-09-01 19:07:55 · 21452 阅读 · 0 评论 -
libcurl基本知识、post、get请求 -- libcurl
1、为什么要使用libcurl,(1)作为http的客户端,可以直接用socket连接服务器,然后对到的数据进行http解析,但要分析协议头,实现代理…这样太麻烦了。#也就是socket连接然后发post、get协议包,自己组包和拆包。(2)libcurl是一个开源的客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,支持Windows,Unix,Linux等平台,简单易用,且库文件占用空间不到200K。#我觉得curl库是原创 2014-12-15 12:02:39 · 13218 阅读 · 0 评论 -
pthread_cancel() 能结束哪些线程-linux
最近测试linxu下线程的关闭,发现如下问题.测试使用函数: pthread系列函数, 创建 pthread_create ,关闭使用的是 pthread_cancel ,这是2个主要函数,其他都是相关线程属性的设置函数.测试OS: FC8 在pc机测试 和 一个嵌入式linux平台,此内核为2.6.XX .测试结果:以下是描述进程P 拥有3个线程,A,B,C情况1: 线程转载 2013-12-16 14:31:22 · 1430 阅读 · 0 评论 -
pthread_cancel引起线程死锁-linux
说明:本文由【2,3】整理而得。这篇文章主要从一个 Linux 下一个 pthread_cancel 函数引起的多线程死锁小例子出发来说明 Linux 系统对 POSIX 线程取消点的实现方式,以及如何避免因此产生的线程死锁。目 录:1. 一个 pthread_cancel 引起的线程死锁小例子2. 取消点(Cancellation Point)3. 取消类型(Cancella转载 2013-12-16 14:30:30 · 1997 阅读 · 0 评论 -
ssize_t与size_t-linux
ssize_t: signed size_t [注释:signed 有符号]size_t: 标准C库中定义的,应为unsigned int [注释:unsigned 无符号]一、size_t 增强移植性:[注释:不同的系统上,定义size_t可能不一样,便有了size_t,它是为了方便系统之间的移植而定义的]32位系统上:定义为 unsigned int 也就是说在32位系统上是32位无符号整形64位系统上:定义为 unsigned long 也就是说在64位系统上是64位无符号整原创 2013-09-02 14:26:00 · 2012 阅读 · 0 评论 -
目录解释-linux
/bin:bin是binary(二进制)的缩写。这个目录是对UNIX系统习惯的沿袭,存放着使用者最经常使用的命令。例如:cp,ls,cat。 /boot:这里存放的是启动LINUX时使用的一些核心文件。 /dev:dev是device(设备)的缩写。这个目录下是所有LINUX的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在LINUX中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘。 /etc:这个目录用来存放所有的系统管理所需要的配置文件和子原创 2013-09-02 10:26:20 · 1293 阅读 · 0 评论 -
获取系统时间的方法--linux
一、 localtime 函数获取(年/月/日/时/分/秒)数值。1、感性认识#include<time.h> //C语言的头文件#include<stdio.h> void main(){time_t now; //实例化time_t结构struct tm *timenow; //实例化tm结构指针time(&now);//time函数读取现在的时间(国际标准时间非北京时间),然后传值给nowtimenow =原创 2013-08-08 20:11:11 · 1419 阅读 · 0 评论 -
动态库*.so制作-linux
在linux下制作动态库*.so。1、linux下动态库的制作//so_test.h#include "stdio.h"void test_a();void test_b();void test_c();//test_a.c#include "so_test.h"void test_a(){printf("this is in test_a...\n");}//test_b.c#include "so_test.h"void test_b(){printf("this原创 2013-08-19 10:13:24 · 1870 阅读 · 0 评论 -
Linux多线程 互斥锁与条件变量使用
2013/6/7 caichengyu如果你认真看下去,必将学习到不少知识,如有错还希望您提出来~一、互斥锁为什么要使用锁?linux下,锁的种类很多,包括互斥锁,文件锁,读写锁······其实信号量说白了也是一种锁。互斥量从本质上说就是一把锁, 提供对共享资源的保护访问。1. 初始化:线程的互斥量数据类型是pthread_mutex_t,使用之前要初始化。原创 2013-06-07 13:26:03 · 1705 阅读 · 0 评论 -
TR069协议--学习(二)
6.TR069协议的RPC函数(或称RPC方法) 如上所述ACS与CPE之间通过TR069协议特有的RPC方法进行互操作。 CPE函数由ACS调用,用来对CPE进行管理如:设置CPE参数、获取CPE参数、硬件升级、重启设备等; ACS函数由CPE调用,用来向ACS上报状态信息,请求硬件镜像文件下载(用来升级硬件)等等。 这些方法中有些是必须的有些是可选的转载 2013-07-30 16:35:23 · 3847 阅读 · 0 评论 -
程序获取linux的root权限
文件读写操作需要进入不同的目录,如果不是root权限下很多目录是不被允许操作的。例子一、获取root权限#include #include #include #define BUFFSIZE 1024 /* * usually euid is the uid who run the program * but when stick is s原创 2013-07-24 14:13:28 · 1673 阅读 · 0 评论 -
fedora linux命令setup进入后无法进入network configure
问题: setup进入后无法进入network configure[root@linux ~]# setupTraceback (most recent call last):File "/usr/sbin/system-config-network-tui", line 20, in from netconfpkg import NC_functionsFile "/usr/原创 2013-07-24 10:00:13 · 2249 阅读 · 0 评论 -
字节,比特,字符,位,单位换算
字节(Byte):一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间. 英文标点2占一个字节,中文标点占两个字节. 1字节(Byte) = 8位(bit) 比特(Bit):亦称二进制位。新港台:位元 比特指二进制中的一位,是二进制最小信息单位。 1比特就是1位 字节: 字节(Byte)是通过网络传输信息(或在硬盘或内存中存储信息)的单位。字节是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制。在ASCII码中,一个英文字母(不分原创 2013-08-26 09:01:58 · 14775 阅读 · 3 评论 -
栈/入栈/出栈顺序(c语言)-linux
说明: 1、栈底为高地址,栈顶为低地址。2、入栈顺序:从右到左。原创 2013-11-17 16:54:41 · 4071 阅读 · 0 评论 -
ftp-window与linux文件传输(0A,0D 0A)-linux
【废话】为了ciscoteam的出题,顺便学习了一下FTP的ASCII和BINARY(什么?你原来不知道?嗯嗯,原来我就是这么无知,不要BS偶...)平时用FTP拉文件,下载上传都挺畅的,根本没care过ASCII或BINARY的模式问题——好像用哪种都一样有效。直到那天Promise开个FTP让我连接,发现List出来的中文是乱码,在CuteFTP也找不到使用Unicode编码的选项,才想起转载 2013-12-16 14:32:22 · 3733 阅读 · 0 评论 -
设置connect超时-linux
在Linux平台下,可以通过在connect之前设置SO_SNDTIMO来达到控制连接超时的目的。简单的写了份测试代码:[cpp] view plaincopy#include #include #include #include #include #include #include转载 2013-12-11 08:01:18 · 1204 阅读 · 0 评论 -
printf颜色设置-linux
颜色是通过添加专用序列来选择的 -- 基本上是夹在 "\e["和 "m" 之间数字值。如果指定一个以上的数字代码,则用分号将它们分开。echo -e "\e[31;40m"第一个数字(31)为前景颜色(红色);第二个数字为(40)背景颜色(黑色)echo -e "\e[0m"我们需要使用 "\e[0m" 序列将颜色重新设置为正常值。\033[30m -- \033[37m 设置转载 2013-11-25 13:11:10 · 3870 阅读 · 0 评论 -
函数inet_addr和inet_ntoa-linux
inet_addr 将"数字+句点"的格式的IP地址转换到unsigned long中,返回值已经是按照网络字节顺序的相反inet_ntoa把类型为struct in_addr的数据转化为"数字+句点"的形式的字符串typedef u_int32_t in_addr_t;struct in_addr{ in_addr_t s_addr;};#in转载 2013-11-25 10:32:39 · 2988 阅读 · 0 评论 -
鱼还是熊掌:浅谈多进程多线程的选择
关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。 经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更转载 2013-11-21 08:24:46 · 1277 阅读 · 0 评论 -
TR069协议--学习(一)
您也可以到以下地址下载:http://download.csdn.net/source/993034 1.为什么需要TR069 随着VoIP、IPTV等越来越多IP终端设备的普及(尤其在家庭中的普及),大量设备的配置和维护变得越来越困难,大大提高了网络产品运营商的成本,传统的基于SNMP的网管系统面对众多的终端设备时显得力不从心,限制了宽带接入市场的发展速度和规模。TR转载 2013-07-30 16:09:02 · 4538 阅读 · 0 评论