- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 Makefile脚本文件
0.缘由 多文件编程 主文件(main函数所在的文件)往往只包含一些函数的调用。结构体的定义,函数的实现通常在不同的文件中,这时就需要主文件包含一些头文件,标准c库的头文件不用多说,如果是自己定义了头文件,函数的实现过程放到对应的.c文件中,这时候想要编译生成可执行文件,必须和对应头文件的.c文件一起编译。后期如果修改某些文件,还要全部编译,不利于维护。 1.概述 通常来说,一个工程中的源...
2020-02-28 20:42:12
2777
8
原创 ubuntu软件源之source.list文件内容
1.备份source.list文件 sudo cp /etc/apt/sources.list /etc/apt/sources1.list 2.修改source.list文件 #网易的源 deb http://mirrors.163.com/ubuntu/ raring main universe restricted multiverse deb-src http://mirrors.163...
2020-03-21 12:45:52
658
原创 zigbee之OSAL操作系统
概述 OSAL(Operating System AbstractionLayer),即操作系统抽象层。 OSAL是一种基于事件驱动的轮询式操作系统,所提供的管理功能有: (1)任务登记、任务初始化、任务触发 (2)任务间消息传递 (3)任务同步 (4)中断处理 (5)计时器 (6)内存分配 **osal_run_system()**不断轮询遍历所有任务事件,事件被置位后就会被调度执行该任务:...
2020-03-20 22:29:22
1732
原创 网络分层结构
网络模型分四层和七层模型。 七层模型 应用层:指的是具体的应用程序 表示层:将计算机能识别的数据转换成人能识别的数据 会话层:识别网络的中通信链路,确保网络链接正常 传输层:负责端口的数据封装与解封装,识别的端口,进程和进程间的通信 网络层:负责IP数据的包的封装与解封装,识别IP地址,主机和主机之间的通信 数据链路:负责帧数据的收发,识别网卡地址,设备和设备通信(帧数据:能在网络中独立传输的...
2020-03-18 22:16:32
684
原创 c指针和c++引用
指针和引用的区别 指针是一个实体,而引用仅是个别名; 引用使用时没有 * ,指针使用时需要取地址中的内容 * ; 引用只能在定义时被初始化一次,之后不可变 、指针就是指向一块地址空间,初始化后可以改变指向;(即引用的底层实现是常量指针) 引用没有只不只读的区分,指针有(const 修饰),其中又分为修饰自身类型和指向性类型; 引用不能初始化为空,指针可以; “sizeof 引用”得到的是所指向...
2020-03-16 21:00:57
280
原创 bool类型之C语言不支持之解决方法
bool类型可以通过枚举自定义,枚举变量默认从0开始自加。 typedef enum {flase,true} bool; //假为0,真为1,所以这样设置比较人性化 eg: typedef enum {flase,true} bool; int main(int argc, char *argv[]) { bool flages = flase; printf("flages = %d...
2020-03-12 18:01:07
2800
1
原创 SQLite数据库之SQL语句提高
接着上一篇SQL数据库。 1.函数和聚合 SQL语句支持利用函数来处理数据,函数一般是在数据上执行的,它给数据的转换和处理提供了方便。 常用的文本处理函数: length() 返回字符串的长度 lower() 将字符串转换为小写 upper() 将字符串转换为大写 select * upper(addr) from person; //保存大写地址 select id,lengt...
2020-03-09 22:27:28
333
原创 SQLite数据库
1.SQLite数据库简介 SQLite 是一个开源的、内嵌式的关系型数据库,第一个版本诞生于 2000 年 5 月,目前最高版本为 SQLite3。 学习网站:http://www.runoob.com/sqlite/sqlite-tutorial.html 安装方法:( 我用的是ubuntu12.04) 字符界面: sudo apt-get install sqlite3 图形界面: s...
2020-03-08 12:29:22
2260
原创 网络通信之大小端、字节序转换函数
在上篇文章中我们提到了UDP,TCP有关函数,并知道了一个重要的结构体struct sockaddr。想要实现通信首先要知道通信端的地址,所以首先了解一下IPv4套接字地址结构体。 //IPv4 套接字地址结构体,用来存放地址信息 struct sockaddr_in //此结构体大小是16字节 { sa_family_t sin_family; //2 字节 协议族(AF_INE...
2020-03-06 21:05:20
2959
原创 TCP、UDP有关函数
首先看一下上一篇三次握手四次挥手文章中提到的原理图。 其中的read对应的就是recv函数,write对应的就是send函数。 步入正题,函数的使用: 1.TCP客户端 socket : 创建套接字 函数原型:int socket(int family,int type,int protocol); 功能:创建一个用于网络通信的socket套接字(描述符) 参数: @family :...
2020-03-05 21:48:50
2019
原创 TCP之C/S模型之三次握手四次挥手
0.了解两种开发模型 C/S模型 client/server<------->客户端/服务器:QQ、微信 重心在客户端和服务器上,用户群固定,安全系数高。 有连接的过程:建立连接---->使用连接----->释放连接 (类似于电话) B/S模型 browser/server<---------->浏览器/服务器:webQQ、移动开发 重心在服务器上,用户群...
2020-03-04 08:14:59
784
2
原创 strlen和sizeof的区别
首先看个例子: void fun() { //首先定义三个字符数组 char str1[16] = "guanzhu woya"; char str2[] = "guanzhu woya"; char str3[] = "guanzhu\0woya"; printf("%d\n",sizeof(str1)); //16 printf("%d\n",sizeof(str2)); //...
2020-03-02 14:31:31
376
原创 gcc编译器
在 windows 操作系统,通常情况下用带有集成开发环境的软件编译。 在 Linux 操作系统,没有很好的集成环境让我们用,用的编译器是 gcc。 编译过程 gcc编译过程分为4个阶段:预处理、编译、汇编、链接。 预处理:头文件包含、宏替换、条件编译、删除注释 gcc -E main.c -o main.i 编译:主要进⾏行行词法、语法、语义分析等,检查⽆无误后将预处理理好的⽂文件编译成...
2020-02-29 19:29:36
1613
1
原创 设备树基本概述
1.设备树 设备树(Device Tree)是一种描述硬件的数据结构。 作用:提供设备信息。 时间:在操作系统引导阶段进行设备初始化的时候,数据结构中的硬件信息被检测并传递给操作系统。 设备树源文件(xxxx.dts) DTC编译 设备树二进制文件(xxxx.dtb) 2.设备树基本语法 设备树的基本单元是节点(node),这些node被组织成树状结构,除了root node...
2020-02-27 22:48:51
5951
2
原创 platform总线
1、什么是platform总线? 相对于USB、PCI、I2C、SPI等物理总线来说,platform总线是一种虚拟、抽象出来的总线,实际中并不存在这样的总线。那为什么需要platform总线呢?其实是Linux设备驱动模型为了保持设备驱动的统一性而虚拟出来的总线。因为对于usb设备、i2c设备、pci设备、spi设备等等,他们与cpu的通信都是直接挂在相应的总线下面与我们的cpu进行数据交互的,...
2020-02-26 19:24:39
2522
1
ubuntu更新源.docx
2019-12-21
数据库SQL语句和c编程基础.doc
2020-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅