自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 6 makefile

6 makefile案例:上位机给下位机发送命令,实现开关灯和开关蜂鸣器交叉编译:一个一个编译 问:如果上面的程序只要一修改,那就重新编译,重新链接,重新去皮,交叉编译的过程及其繁琐,如何优化编译过程呢?学习资料:>作为工具书来用答:只需一个小小的Makefile文件即可搞定明确:Makefile功能:让程序的编译变得简单化明确: Makefile语法规则:目标

2018-01-15 22:42:36 235

原创 5 UART续

5 UART续1、CPU发送数据的流程:1)CPU软件上以地址指针的形式将数据放到发送缓冲区2)发送缓冲区硬件上自动将数据拷贝到发送移位器中3)发送移位器根据波特率产生器给定的波特率(速率)然后将数据一位一位的放到TX数据先上。4)问题:CPU软件上以指针的形式将数据放到发送缓冲区的速度要远远快于发送移位器将数据放到TX数据线的速度,如果CPU仅仅是发一字节数据,没问题,但是如

2018-01-15 21:32:02 448

原创 4 UART串口(RS232)相关内容

4 UART串口(RS232)相关内容1、首先交代:计算机中,硬件层面仅仅包括CPU和外设只要一上电,CPU核一天到晚都在跟外设进行数据的交互。既然CPU核和外设要进行数据交互,明确常见几种数据通信方式:GPIO通信方式(输入或者输出):例如:LED灯或者蜂鸣器或者按键等;UART串口通信方式:例如:BT,GPRS,GPS等;I2C总线通信方式:例如:LM77温度传感器,MMA

2018-01-15 19:29:05 4517 2

原创 3 led程序编写和交叉编译器

3 led程序编写和交叉编译器1、明确:下位机运行的软件类型嵌入式软件分两类:裸板程序和基于操作系统程序裸板程序的特点:单文件:可执行程序只有一个单任务: 运行的程序就一个运行环境不是基于操作系统(例如:linux/winodows/ios等)不允许使用标准C库的内容(例如:printf)切记:裸板程序的编程框架void abc(void) {xyz_i

2018-01-15 13:18:54 1024

原创 2 第一个嵌入式程序

2 第一个嵌入式程序1、下位机要完成的工作:1)准备一个TF卡2)将已有的uboot二进制文件烧写到TF卡上烧写在上位机完成3)将TF卡插入下位机4)下位机TF卡的uboot运行5)利用uboot的tftp命令从上位机下载uboot到内存,然后再内存烧写到EMMC上注意:tftp命令不能直接烧写到EMMC上6)将TF卡拔出,重启上电,EMMC上的uboot运行7

2018-01-15 09:12:15 2332 1

原创 1 嵌入式学习入门

1 嵌入式学习入门1、提出三个要求:建议安装纯linux系统,比如:ubuntu,fedora,kali(黑客最爱)     2、建议安装必要软件:明确linux系统安装软件方法:网络安装和本地安装。网络安装:自动从网络下载所有的软件包进行安装;               优点:自动检查软件之间的依赖,会自动安装依赖文件;

2018-01-13 20:41:12 581

原创 栈(C语言)

栈是一种数据结构。栈可以用来存放数字,这些数字有前后顺序,先进入栈的数字在前,后进入的数字在后。每次从栈里获得的数字一定是最后一个放到栈里的数字(也就是最后的数字)。这种获得数字的顺序叫后进先出。实现栈的时候需要提供一个叫做push的函数,这个函数负责向栈里加入数字。实现栈的时候还需要提供一个叫做pop的函数,这个函数负责从栈里获得数字。/* * 栈stack.h *

2018-01-10 19:26:07 304

原创 折半查找(C语言)

如果所有数字按照某种顺序排列好就可以每次用中间位置的数字和要查找的数字做对比,这样一次可以排除一半的数字。不断重复这个过程就可以很快找到目标数字的位置。/* * 折半查找 * */#include int *half_search(const int *p_start, constint *p_end, int num){ const int *p_start1

2018-01-09 22:06:11 625

原创 快速排序(C语言)

采用先确定数字然后找位置的方法。从需要处理的数字两端选择一个作为基准数字。每次把基准数字和另一端的数字进行顺序调整,直到和所有其他数字都进行过顺序调整。每次调整过顺序后就把非基准数字排除在外。 查找算法可以从一组数字中找到某个数字所在的位置/* * 快速排序 * */#include void quick_sort(int *p_num, int size)

2018-01-09 22:05:13 185

原创 插入排序(C语言)

采用先确定数字然后找位置的方法。每次把最前面或最后面的没有排好序的数字插入到已经排好序的数字中间合适的位置上。不断把选择好的数字和相邻的数字做顺序调整,直到它被放在合适的位置上。/* * 插入排序 * */#include void insert_sort(int *p_num, int size){   int num = 0, num1 = 0, tmp =

2018-01-09 22:04:16 219

原创 选择排序(C语言)

采用先确定位置然后找数字的方法。选定位置或者在最前或者在最后。 把选定位置上的数字和所有其他数字做顺序调整直到把合适数字放在选定位置上。/* * 插入排序 * */#include void insert_sort(int *p_num, int size){   int num = 0, num1 = 0, tmp = 0;   for (num = 1;

2018-01-09 22:03:00 248

原创 冒泡排序(C语言)

通过先确定位置然后找数字的方法。把一个数字放在合适位置上,这个选择的位置可以是最前面的位置,也可以是最后面的位置。通过不断对两个相邻数字进行顺序调整,最终把合适的数字放在选定的位置上。/* * 冒泡排序*/#include void bubble_sort(int *p_num, int size){   int num = 0, num1 = 0, tmp =

2018-01-09 22:00:23 167

原创 进程间的通信方式

# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共

2018-01-09 21:43:08 166

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除