- 博客(13)
- 收藏
- 关注
原创 条件编译
ifdef#ifdef 定义了啥#define 就执行这个#else #define 其他的就执行这个#endififdef:判断某个宏是否被定义,若已定义,执行随后的语句ifndef#ifndef #define 如果没定义啥就定义啥#endififndef:与ifdef相反,判断某个宏是否未被定义,没被定义就执行啥。...
2020-05-17 19:54:47 176
原创 杂乱知识
逗号表达式例:(a+b,a,b)假如a=1,b=2,则逗号表达式值为2。逗号表达式的值为最后一个参数的值。标识符标识符只能由字母,数字和下划线三种符号组成,且第一个字符必须是字母和下划线。持续更新...
2020-05-17 19:45:02 158
原创 循环体执行顺序
for表达式执行顺序for(表达式1;表达式2;表达式3)//表达式2非零则1{ 循环体;}执行顺序:表达式1,表达式2,循环体,表达式3。while循环while…do…循环while(表达式1){ 循环体;}执行顺序:先判断表达式1再执行循环体。2. do…while…循环{ 循环体;}while(表达式1)执行顺序:先执行循环体再进行判断。循环体至少执行一次。...
2020-05-17 19:38:36 757
原创 c语言文件由.c文件编译成执行文件的步骤
c语言文件由.c文件编译成执行文件的步骤预处理:把源代码中的宏展开并把包含文件的源代码插入程序的元代码中。编译:把源代码编译成二进制的目标文件。汇编:这一步主要是处理源代码中的汇编代码。链接:把目标代码和二进制的庫文件以及其他内容合并成最终的可执行文件。最近面试了一些公司,觉得自己平常只顾着学习技术,忽视了基础,所以要学习一些基础的c语言基础。...
2020-05-17 19:25:03 448
原创 2020-05-03
前++和后++前++为运算后输出,后++为输出后再运算例:a=1;b=2;c=0;c=++a+b++;运算后c=4,b=3,a=2
2020-05-03 15:53:57 179 1
原创 同一网段的概念以及计算
同一网段的概念以及计算同一网段的概念同一网段指的是IP地址(ip)和子网掩码(mask)相与得到相同的网络地址。想在同一网段,必须做到网络标识相同。同一网段的计算以我自己电脑上的ip地址和子网掩码做例子ip地址: 192.168.43.42子网掩码: 255.255.255.01.首先将ip地址和子网掩码转换为二进制ip地址转换为二进制为:11000000 101...
2020-04-20 19:27:35 14703
原创 杂项设备GPIO框架
杂项设备GPIO框架GPIO框架主要分为三个部分:注册设备;注册驱动;生成设备节点。注册设备设备注册在平台文件中注册,主要分为三步:配置Kcnfig文件;在menuconfig里面对内核进行剪裁;编译内核,烧写进开发板。注册驱动下面以模块化的方式进行驱动注册,主要是方便调试模块加载和模块卸载函数module_init(gpio_init);module_exit...
2020-04-19 22:48:09 265
原创 开发板直连电脑,实现开发板、PC和虚拟机三者PING通
背景:由于我没有拉网线,没有路由器,想要实现tftp下载,所以用网线直接连接电脑。虚拟机和pc先ping通虚拟机、pc和开发板三者ping通虚拟机和pc先ping通虚拟机和pc之间一般是没啥问题的,如果ping不通大多数是没关防火墙,在control找到防火墙关闭,虚拟机使用桥接方式关闭防火墙,win+R打开命令行,输入control,选择系统和安全,然后选择防火墙在防火墙中关闭...
2020-04-19 16:55:22 2748 1
原创 动态注册字符GPIO驱动框架
模块加载和模块卸载函数module_init(init);module_exit(exit);初始化函数和卸载函数static int init(void){ int ret = 0,i; dev_t num_dev; alloc_chrdev_region(&num_dev,minor,num,name); major = MAJOR(num_dev); mycla...
2020-04-13 21:24:54 176
原创 SPI驱动框架
SPI驱动框架概述详细讲解论述为什要写这个博客呢,主要有两个原因:第一,记录自己对SPI驱动的理解;第二,网上很多讲解SPI驱动都是自上而下地讲解,比较难理解,现在我将从下而上地进行详细讲解。在阅读驱动程序是不能够从上而下读的,而是应该找到入口函数,一一连接起来。大部分的驱动都是这三个步骤:注册设备,注册驱动,生成设备节点。详细讲解模块加载和模块卸载module_init(sp...
2020-03-21 15:43:12 227
原创 GPS模块
GPS模块的使用GPS代码结构GPS模块的使用主要代码分为3部分:1. 设置串口2. 读取数据3. 解析数据串口的设置代码int set_com_config(int fd,int baud_rate,int data_bits,char parity,int stop_bits) { struct termios new_cfg,old_cfg; //term...
2020-03-16 21:53:29 3414 1
原创 几个排序算法以及二分查找
几个排序算法以及二分查找冒泡排序void bubblesort(int *a,int len){ int i,j,temp; for(i=1;i<len;i++) { for(j=0;j<len-i;j--) { if(a[j]>a[j+1]) //从小到大排序 { temp = a[j]; a[j] = a[j+1];...
2020-03-14 19:46:37 222
单链表和双向链表
单链表和双向链表链表和数组的优缺点 **数组:** 优点:可以通过数组索引很快地访问数据元素,可以通过数组下标随机访问 缺点:删除和插入元素比较麻烦 **链表:** 优点:删除和插入元素方便快捷 缺点:只能够顺序访问,不能够随机访问 所以在需要可以随机访问元素的时候选择数组,而在需要经常删除和插入操作的时候 使用链表。另外数据存放数据时需要知道元素的个数,但是链表能够动态进行存...
2019-12-24 22:48:05 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人