自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TECH_PRO的博客

Hello,world!

  • 博客(103)
  • 资源 (3)
  • 收藏
  • 关注

原创 嵌入式Linux环境变量分区制作

嵌入式Linux环境变量分区制作嵌入式环境变量分区准备一个存放环境变量的文本文件制作环境变量的工具制作环境变量分区镜像制作嵌入式环境变量分区在做嵌入式linux系统开发的时候,为了方便bootloader的管理,有时需要将bootloader本身和环境变量分开来保存,这样更方便管理。那么如何来制作一个环境变量的镜像呢?之前有在网上搜索,但是没有找到完整切详细的制作环境变量镜像的文章或者教程,因此我这边打算详细的写一个制作环境变量的教程(以uboot为例)。准备一个存放环境变量的文本文件准备一个文本文

2020-11-14 09:15:18 903 1

转载 vim打开多窗口、多文件之间的切换

https://blog.csdn.net/derkampf/article/details/72629875

2018-08-29 21:38:39 5828

转载 UltriEdit常用快捷键

https://blog.csdn.net/wonder233/article/details/51881914

2018-08-10 11:09:39 543

转载 Error in `appstreamcli': double free or corruption (fasttop): 0x0000000002122000

https://blog.csdn.net/taosera/article/details/78148845

2018-05-13 18:41:02 574

原创 Tiny4412从零搭建linux系统之从SD卡启动

    https://blog.csdn.net/tech_pro/article/details/80269751这篇文章讲了一下如何从emmc中启动系统,本文来说一下如何从SD卡中启动系统。一、对SD卡进行分区并格式化SD卡    首先从emmc中启动系统,然后执行如下命令来对SD卡进行分区和格式化:fdisk -c 1 320 2057 520fatformat mmc 1:1ext3...

2018-05-10 21:02:00 2892

原创 Tiny4412从零搭建linux系统之从emmc启动

一、基本开发环境交叉编译工具链版本为4.5.1u-boot为友善之臂提供:https://github.com/friendlyarm/uboot_tiny4412linux内核版本为3.5,友善之臂提供busybox版本为1.17.2,去官网下载linux下的dnw工具:https://download.csdn.net/download/tech_pro/10405993PC机版本为:Ubun...

2018-05-10 18:19:47 3723 1

转载 Tiny4412开发板光盘自带的uboot只显示OK问题解决方法

http://blog.sina.com.cn/s/blog_16690f5880102wsxu.html

2018-05-05 17:16:41 795

转载 移植Linux内核自带LCD驱动程序到JZ2440开发板

https://blog.csdn.net/babyzhaoshu521/article/details/58605817

2018-05-04 20:34:10 612

转载 详解CentOS7安装配置vsftp搭建FTP

http://blog.51cto.com/11728495/2057661?utm_source=oschina-app

2018-05-01 18:39:07 905

原创 虚拟摄像头驱动vivi的简单实现

一、vivi摄像头驱动基本框架    分配一个video_device结构体变量    设置这个结构体变量    注册这个结构体变量二、vivi摄像头驱动数据的获取过程    请求分配缓冲区    查询缓冲区,并为缓冲区分配空间    将缓冲区放入队列    启动摄像头    通过poll机制来对查询是否有数据,如果有数据可以通过定时器或者内核线程来唤醒它    将数据从缓冲区中取出,并将这个缓冲...

2018-03-15 20:08:46 1785

转载 U-Boot启动过程完全分析

写的很好的一个总结:http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html

2017-09-25 22:52:50 395 1

转载 编译Linux内核时生成的映像文件vmlinux uImage与zImage的区别

http://www.cnblogs.com/pigeon84/articles/2212404.htmlhttp://blog.csdn.net/ultraman_hs/article/details/52838989http://www.cnblogs.com/achsnw/p/4025312.html

2017-09-25 14:03:45 2104

原创 分苹果(C语言实现)

1、题目描述果园里有堆苹果,N(1<N<9)只熊来分。第一只熊把这堆苹果平均分为N份,多了一个,它把多的一个扔了,拿走了一份。第二只熊把剩下的苹果又平均分成N份,又多了一个,它同样把多的一个扔了,拿走了一份,第三、第四直到第N只熊都是这么做的,问果园里原来最少有多少个苹果?示例和说明如下:2、解题思路我的方法很简单就是从最小的可能的数开始,一个一个尝试,满足了测试的要求之后

2017-09-21 11:36:22 4285

原创 翻转数组(C语言实现)

1、题目描述给定一个长度为n的整数数组a,元素均不相同,问数组是否存在这样一个片段,只将该片段翻转就可以使整个数组升序排列。其中数组片段[l,r]表示序列a[l], a[l+1], ..., a[r]。原始数组为a[1], a[2], ..., a[l-2], a[l-1], a[l], a[l+1], ..., a[r-1], a[r], a[r+1], a[r+2], ..., a[n

2017-09-20 18:26:33 4415

原创 电话号码分身(C语言实现)

1、题目描述继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"),然后随机打乱这些字母,所生成的字符串即为电话号码对应的分身。具体示例如下图:

2017-09-19 12:00:43 1779

原创 (十二)数据结构之快速排序算法实现

1、快速排序方法采用分而治之的方法:从待排序元素随机找到一个,以它为中间点,将所有比它大的放在一边,所有比它小的放在另一边,然后每一边在执行和上面相同的步骤。选取中间点(pivot)很关键,如果碰到和pivot相同的元素则停下来交换。如果数据规模较小:小规模数据的快速排序可能还没有简单排序快,所以可以在程序中设定一个cutoff(阈值),大于它用快速排序,小于它则用简单排序方法比如插入排序

2017-09-18 10:20:39 960

原创 (十一)数据结构之归并排序算法实现

1、递归归并排序具体实现如下:/* 递归排序 */void Merge_sort_r( ElementType A[], int N ){ ElementType *TmpA; TmpA = malloc( N * sizeof( ElementType ) ); if ( TmpA != NULL ) { MSort_r( A, TmpA, 0, N-1 ); f

2017-09-18 10:14:23 696

原创 (十)数据结构之希尔排序算法实现

1、希尔排序希尔排序是对插入排序的一种改进,插入排序的实现可以参考这篇文章http://blog.csdn.net/tech_pro/article/details/78016096。希尔排序具体实现如下:/* 原始希尔排序 */void Shell_sort( ElementType A[], int N ){ int D, P, i; ElementType Tmp; fo

2017-09-18 10:09:36 740

原创 (九)数据结构之简单排序算法实现:冒泡排序、插入排序和选择排序

1、冒泡排序/* 冒泡排序,按照由小到大顺序进行排序 */void Bubble_Sort( ElementType A[], int N ){ int P, i; int flag = 0; /* 定义一个flag来判断带排序序列是否有序或局部有序,提高算法效率 */ for ( P=N-1; P>=0; P-- ) { flag = 0; for( i=0; i<P;

2017-09-18 10:03:28 1160

原创 (八)数据结构之最大堆的简单实现

1、什么是堆?堆是一种优先队列。特殊的队列,取出元素的顺序是按照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。堆的两个特性:a、结构性用数组表示的完全二叉树b、有序性任一结点的关键字是其子树所有结点的最大值(或最小值)2、最大堆的实现2.1 基本数据结构/* 定义最大元素的界限 */#define MAXDATA 10000/* 创建基本的数

2017-09-18 09:56:24 761

原创 (七)数据结构之搜索二叉树的简单实现

1、搜索二叉树的简单定义二叉搜索树(BST, Binary Search Tree), 也称二叉排序树或者二叉查找树。定义:a、是一颗二叉树,可以为空,也可以不为空。b、非空左子树的所有键值小于其根结点的键值c、非空右子树的所有键值大于其根结点的键值。d、左、右子树都是二叉搜索树。2、具体实现搜索二叉树是特殊的二叉树,所以这里只实现搜索二叉树特殊的操作,基本操作可以

2017-09-17 19:00:56 500

原创 (六)数据结构之二叉树的简单实现

1、基本数据结构/* 二叉树的基本数据结构的定义 */typedef char ElementType;typedef struct TreeNode *BinTree;typedef BinTree Position;struct TreeNode{ ElementType Data; BinTree Left; BinTree Right;};采用链式存储方式来存储二叉

2017-09-17 18:45:34 550

原创 (五)数据结构之静态查找的简单实现:顺序查找和二分查找

1、查找的定义根据某个给定关键字K,从集合R中找出关键字与K相同的记录。查找分为动态查找和静态查找:动态查找,集合中内容是动态变化的;静态查找,集合中内容是固定不变的。本文主要来介绍最基本的静态查找的方法:顺序查找和二分查找。2、具体的实现2.1 基本数据结构/* 定义查找相关数据结构 */#define TABLE_LENGTH 10typedef int ElementTy

2017-09-17 18:36:49 1914

原创 (四)数据结构之线性表的简单应用:多项式求和

1、基本思路采用不带头结点的单向链表,按照指数递减的顺序排列各项。算法思路:a、两个指针P1和P2分别指向这两个多项式第一个结点,不断循环:i、P1->expon == P2->expon : 系数相加,如果结果不为0,则作为多项式对应项系数,同时,P1和P2都分别指向下一项。ii、P1->expon > P2->expon : 将P1的当前项存入多项式,并让P1指向下一项

2017-09-17 18:24:56 2216

原创 (三)数据结构之线性表的简单实现:队列

1、队列的简单定义队列:具有一定操作约束的线性表;只能在一端插入,在另一端删除;先进先出:First In First Out(FIFO)。2、队列的顺从存储实现队列的顺序存储结构通常由一个一维数组和一个记录队列头元素位置的变量front以及一个记录队列尾元素的位置变量rear组成。为了不造成存储空间上的浪费常定义位循环队列。2.1 基本数据结构/* 定义队列的基本数据结果 *

2017-09-17 18:13:49 514

原创 (二)数据结构之线性表的简单实现:堆栈

1、堆栈的定义具有一定操作约束的线性表,只在一端(栈顶,Top)做插入、删除操作。堆栈的基本操作主要有两类:a、插入数据:入栈(Push);b、删除数据:出栈(Pop)。2、栈的顺序存储实现2.1 栈的基本数据结构/* 定义堆栈的数据结构 */#define MaxSize 10typedef int ElementType;typedef struct _Stack{

2017-09-17 18:02:31 430

原创 (一)数据结构之线性表的简单实现:链表

1、线性表的定义线性表(Linear List):由同类型的数据元素构成的有序序列的线性结构:表中元素个数称为线性表的长度,线性表没有元素时,称为空表,表起始位置称表头,表结束位置称为表尾。2、链表的顺序存储的实现2.1 数据结构表示利用数组的连续存储空间顺序存放线性表的各元素。首先定义链表的基本数据结构如下所示:/* 定义List的基本结构 */ #define MAXSI

2017-09-17 17:42:47 700

原创 单例模式的Java编程简单实现

一、懒汉模式 具体如下:/* Create a Singleton class */class Singleton { public static Singleton getInstance(){ return instance; } private static final Singleton instance = new Singleton(); private

2017-09-09 10:57:40 391

原创 单例模式的C++简单实现

一、懒汉模式具体例子如下:/** * 懒汉式单例模式 */#include using namespace std;/* 定义Singleton类,用来表示单例模式 */class Singleton{public: static Singleton *getInstance();private: Singleton(); Singleton(const

2017-09-09 09:55:18 268

原创 如何在Android源码编译系统中添加一个Java项目

一、编译Java文件和Android.mk文件Java文件Yl_hello.java实现了一个简单的Hello,world!功能,具体实现如下:public class Yl_hello { public static void main(String args[]) { System.out.println("Hello, world!"); }} Android系统编译

2017-09-08 17:02:21 1021

原创 如何在Android源码编译系统中添加一个C项目

在编译Android系统时,可以增加一些C或者C++的工具程序,从而可以在目标系统的shell命令下使用该工具。本文来简单演示一下如何在Android编译系统中添加一个C项目,并对其进行编译然后在Android系统中通过adb shell来运行。一、编写C文件和Android.mk文件在Android系统的frameworks/testing目录下建立一个hello的子目录,在这个子目录下

2017-09-08 16:41:55 3163 2

转载 classpath、path、JAVA_HOME的作用及JAVA环境变量配置

http://www.cnblogs.com/xwdreamer/archive/2010/09/08/2297098.html

2017-09-08 10:23:21 302

原创 Linux应用编程基础之多路复用:select和poll的简单使用示例

一、基本原理在linux编程基础中,select和poll的I/O多路转接复用模式是处理I/O复用的一个高效的方法。它可以具体设置程序中每一个所关心的文件描述符的条件、希望等待的时间等,从select()和poll()函数返回时,内核会通知用户已准备好的文件描述符的数量、已准备好的条件等。通过使用select()和poll()函数的返回结果,就可以调用相应的I/O 处理函数。在这种模型下,如果

2017-09-03 10:17:19 741

原创 基于嵌入式linux的freetype矢量字体简单显示的实现

一、freetype简介FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,可以非常方便我们开发字体显示相关的程序功能。它支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。关于freetype的详细信息可以参

2017-06-18 20:35:25 3039 1

原创 基于嵌入式Linux的LCD液晶点阵显示的基本实现

本文以嵌入式Linux为板载系统。写一个测试LCD液晶点阵的小例子,在这个小例子当中主要实现液晶点阵的中文和英文实现。一、前期准备工作1、基本开发环境PC机 : Ubuntu9.10gcc版本 : gcc version 4.3.2板载系统 :Linux(kernel version Linux-3.4.10)2、字体文件的准备因为本测试程序要实现液晶点阵的中英

2017-06-16 07:07:04 3717

转载 关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L

http://www.cnblogs.com/wanghao111/archive/2009/05/25/1488816.html

2017-06-15 06:31:17 297

转载 字符编码笔记:ASCII,Unicode和UTF-8

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

2017-06-15 06:23:55 277

原创 循环队列操作之一:循环队列的表示和实现(C语言版本)

队列(Queue)是一种操作受限的线性表,队列(Queue)只能在表的一端进行插入操作,在另一端进行删除操作。其中,允许插入的一端叫着队尾(tail),允许删除的一端叫做队头(front)。循环队列是对队列的一种改进,它比队列适用的范围更广,例如Linux内核当中的环形缓冲区就是基于循环队列来设计的。本文主要任务是通过C语言来实现一个循环队列的数据结构,以及对循环队列的基本操作。1、循

2017-06-12 13:23:02 5683 5

原创 堆栈的简单实现之二:进制转换方面的简单应用(C语言实现)

十进制数和其他进制数之间通常有很多种转换方式,本文通过对堆栈的使用来实现十进制数和其他进制数之间的转换。如下图所示是十进制转二进制:从上图可以看出十进制数150经过转化后变成二进制数10010110,对结果进行分析可以看出当商为0时,把余数按照倒序组合之后就是转换的二进制数,通过分析发现这点和堆栈的后进先出的工作方式很想。可以想象,通过对给定的十进制数进行转换,把每次的余数压到堆栈

2017-06-08 18:32:23 2363

原创 堆栈的简单实现之一:基本操作(C语言实现)

堆栈(Stack)是一种操作受限的线性表,堆栈的插入和删除操作只能在一端进行。堆栈遵循着先进后出或者叫后进先出的原则。在堆栈中,允许插入和删除的一端叫着栈顶(Top),另外一端叫着栈底(Bottom)。栈的基本操作包括:栈的初始化,栈的插入和删除,以及判断栈是否为空或者是否为满等。根据上面所说,来实现一个自己定义的堆栈的基本表示和实现。1、定义堆栈结构本文定义的堆栈采用链式存储

2017-06-08 18:07:45 6822

linux下dnw工具

在linux系统中,可以通过dnw工具来下载文件到linux嵌入式开发板当中,方便开发者来更新系统的启动代码、内核、根文件系统等。

2018-05-10

虚拟摄像头驱动vivi的基本实现

这是一个基于linux-2.6.31.14内核的VIVI虚拟摄像头驱动的简单实现,只实现了摄像头驱动的核心代码,亲测可以使用,其他版本的linux内核稍加修改就可以使用。

2018-03-15

LCD液晶点阵显示中英文例程

基于嵌入式Linux设备开发的LCD液晶点阵显示程序,主要用来实现液晶的中英文字符的点阵显示的实现。

2017-06-15

空空如也

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

TA关注的人

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