自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (49)
  • 收藏
  • 关注

转载 如何编写让别人能读懂的代码?

作者:richieyang网址:http://www.cnblogs.com/richieyang/p/4840614.html随着软件行业的不断发展,历史遗留的程序越来越多,代码的维护成本越来越大,甚至大于开发成本。而新功能的开发又常常依赖于旧代码,阅读旧代码所花费的时间几乎要大于写新功能的时间。我前几天看了一本书,书中有这么一句话:“复杂的代码往往都是新

2016-05-30 13:09:47 744

转载 编程需要知道多少数学知识?

英文: Al Sweigart译者: 伯乐在线 - 唐小娟网址: http://blog.jobbole.com/19348/下面是我在Reddit的子论坛 r/learnprogramming 看到的几个帖子:“要成为一个优秀的程序员需要学习多少数学?”“我应该重新学习数学吗?”“这可能是我提问过

2016-05-30 13:07:44 587

转载 为什么寄存器比内存快?

原文: Mike Ash译者: 阮一峰网址: http://www.ruanyifeng.com/blog/2013/10/register.html点击“阅读原文”,加入伯乐在线作者团队计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。同样都是晶体管存储设备,为什么寄存器比内存

2016-05-30 13:06:15 645

转载 相似图片搜索的原理

2011年,Google把“相似图片搜索”正式放上了首页。你可以用一张图片,搜索互联网上所有与它相似的图片。点击搜索框中照相机的图标。一个对话框会出现。你输入网片的网址,或者直接上传图片,Google就会找出与其相似的图片。下面这张图片是美国女演员Alyson Hannigan。上传后,Google返回如下结果

2016-05-30 10:49:24 395

转载 视觉直观感受 7 种常用的排序算法

1. 快速排序介绍:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决

2016-05-30 10:46:29 580

原创 基于FS4412嵌入式系统移植(8) linux内核调试之printk

以下内容主要摘录自《Linux安全体系分析与编程》1、基本原理(1)在UBOOT里设置console=ttySAC0或者console=tty1这里是设置控制终端,tySAC0 表示串口, tty1 表示lcd(2)内核用printk打印内核就会根据命令行参数来找到对应的硬件操作函数,并将信息通过对应的硬件终端打印出来!2、printk及控制台的日志级别函数

2016-05-26 08:59:32 2808 2

原创 基于FS4412嵌入式系统移植(7) sqlite3交叉编译与移植

这节我们来分享一下sqlite3的交叉编译和移植过程。先来简单介绍一下sqlite3.SQLite3是一个非常强大的小型开源数据库软件,特别嵌入到一些软件中存储数据,当然,移植到嵌入式系统上也是非常有必要的。众所周知的Symbian,Android, IOS这几大移动平台都是使用的sqlite作数据存储,使用SQLite的厂商包括Adobe, Airbus, Apple, Dropbox,

2016-05-22 20:31:26 2591

原创 基于FS4412嵌入式系统移植(6) glib库的交叉编译与移植

今天和大家分享一下glib库的交叉编译过程和如何对程序进行编译以及运行。glib库的移植资料比较少,比较零散,这里我就写一下亲自移植的过程,和大家分享一下。按照我的过程移植应该是不会有问题,如果遇到了问题可以留言联系我,一起讨论研究。这里需要强调一下:libc、glibc、glib是不同的库!glibc和 libc 都是 Linux 下的 C 函数库,而glib是GTK+的基础

2016-05-22 09:30:06 4940 1

原创 基于FS4412嵌入式系统移植(5) 内核移植

这一节中我们进行内核的移植,在课上同样是按照实验手册进行试验,同样不知道是为什么要那么做,所以这里就不细讲了。实验手册中有一些错误,我自己改过来上传共同学们参考。实验手册修正版下载地址:FS4412系统移植实验手册-内核移植实验中使用的内核版本是3.14.0,因为我的上传限制是70M,所以内核没办法上传。这里提供官方地址自行下载吧:https://www.kernel.org/在实验中还有

2016-05-21 23:38:26 1704

原创 基于FS4412嵌入式系统移植(4) u-boot移植与指令添加

这一节我们进行uboot的移植。移植的版本是u-boot-2013.01,在上课的时候老师主要带着分析了一下uboot的启动流程,而没有重点说uboot移植中进行修改的内容,修改也仅仅是按照实验手册进行,绝大多数的修改完全不知道为什么,而且实验手册上还有一些错误,如果不知道修改的原因一旦出现错误完全不知道从何下手。这里我把移植时需要的文件和我更改过的文档上传共同学们使用,我修改的文档主要是

2016-05-21 17:20:11 1438

原创 基于FS4412嵌入式系统移植(3) eMMC加载系统启动linux体验

上一节中体验了一下如何通过tftp加载内核和设备树,并挂载nfs文件系统启动linux,这样的方法很时候调试阶段,可以把需要的执行的代码或者镜像文件放在虚拟机上就可以了,不需要每次都烧写到开发板中。但是在开发完成后不可能一直在使用一台电脑来给开发板加载系统使用,所以今天我们就学习一下如何将系统文件烧写到eMMC中,并让开发板上电后从eMMC中加载系统文件。这一节中的内容相比与上一节就要少很多:

2016-05-19 21:06:48 3919 3

原创 基于FS4412嵌入式系统移植(2) NFS文件系统启动linux体验

这一节目标有两个:1、将uboot拷贝到emmc中,并在emmc中启动uboot2、调试tftp,能够通过uboot使用tftp从linux的tftp共享文件夹中拷贝数据到开发板内存中。3、设置uboot启动配置,达到能够从服务器中加载内核和设备树,并挂载nfs文件系统。1、将uboot拷贝到emmc中连接串口和板子,运行串口通信程序,这里如何配置就不在多讲了。

2016-05-19 00:09:56 6267

原创 基于FS4412嵌入式系统移植(1) 基本环境搭建

FS4412开发板是华清远见培训机构使用的嵌入式ARM开发板。FS4412采用的处理器使用Samsung最新的ARM Cortex-A9四核CPU的Exynos4412。三星公司的Galaxy S III手机便是搭载的这颗处理器,经过验证,可以流畅运行android4.3系统。下面以及以后的调试都是在虚拟机环境下,ubuntu 12.10系统下进行操作。首先在开始正式进行linux

2016-05-18 22:45:04 6752

原创 Glib学习(10) 关系和元组 Relations and Tuples

说明文档网址:http://web.mit.edu/barnowl/share/gtk-doc/html/glib/glib-Relations-and-Tuples.html关系:类似数据库,不过目前只限两个字段元组:也类似数据库,不过只是关系返回的每条记录结构体:GTuplestypedef struct { guint len;} GTupl

2016-05-17 18:40:57 831 1

原创 Glib学习(9) 平衡二叉树 Balanced Binary Trees

平衡二叉树(Balanced Binary Tree)又被称为AVL树且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法 平衡二叉树的常用算法有红黑树、AVL、Treap等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci数列,1

2016-05-17 10:23:14 1672

原创 Glib学习(8) 动态字节数组 Byte Arrays

先上说明文档网址:http://web.mit.edu/barnowl/share/gtk-doc/html/glib/glib-Byte-Arrays.html动态字节数组和前两个动态数组一样,只不过是用来存储字节数据的,这个数组的功能很像strings,和他的区别就是这个字节数组有处理二进制数据的能力,strings一般用来处理ascii字符,所以字节数组并不会以0作为结尾,这个特

2016-05-16 23:50:48 2902

原创 Glib学习(7) 动态指针数组 Pointer Arrays

先上说明文档网址:http://web.mit.edu/barnowl/share/gtk-doc/html/glib/glib-Pointer-Arrays.html没有什么可以多说的,因为他和动态数组太像了,如果已经会使用动态数组的话学习这个数据类型就没有一点压力。结构体定义:GPtrArraytypedef struct { gpointer *pda

2016-05-16 21:38:37 4112

原创 Glib学习(6) 动态数组 Arrays

先上说明文档网址:http://web.mit.edu/barnowl/share/gtk-doc/html/glib/glib-Arrays.htmlglib库中的数组GArray类型很像C++标准容器库中的vector容器。GArray 可以存放任意类型的元素,并且大小随着元素的增加可以自动增长。先来结构体定义GArraytypedef struct {

2016-05-15 20:45:36 2812

原创 Glib学习(5) 字符串 Strings

先上说明文档网址:http://web.mit.edu/barnowl/share/gtk-doc/html/glib/glib-Strings.html学过面向对象语言的同学一定都知道String类,一定知道这个类对字符串的操作是多麽的方便,但是c语言中是没有这个类,甚至没有类的概念,但是glib帮我们做的这个“类”  GString除了使用gchar *进行字符串处理以

2016-05-14 16:45:16 5689

原创 Glib学习(4) 哈希表 Hash Tables

先上说明文档网址:http://web.mit.edu/barnowl/share/gtk-doc/html/glib/glib-Hash-Tables.html散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数

2016-05-12 22:03:30 6301

原创 Glib学习(3) 双端队列 Double-ended Queues

在数据结构中两种重要的类型就是队列和栈,而什么又是双端队列呢?双端队列是一个限定插入和删除操作的数据结构,具有队列和栈的性质。(deque,全名double-ended queue)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。也就是说双端队列是队列和栈的集合,通过规则来灵活的实现队列和栈的功能。下面还是先贴出来

2016-05-10 22:20:26 2628

原创 Glib学习(2) 双向链表 Doubly-Linked Lists

首先贴出来glib库的帮助文档网址http://web.mit.edu/barnowl/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html#g-list-find由于双向链表与单向链表的很多函数功能和名称都是一样的,这里对一些函数就不细说了,具体有什么不了解的可以通过上面给的网址了解。函数先说一下双向链表的结构

2016-05-09 23:11:35 2456

原创 Glib学习(1) 单链表 Singly-Linked Lists

http://web.mit.edu/barnowl/share/gtk-doc/html/glib/index.html

2016-05-08 17:31:35 2310

原创 Glib学习(0) 第一课 g_printf的helloworld

在安装中也是使用的helloworld做的测试,这里就简单的写一下大概过程,首先需要创建一个hello.c的文件,文件内容就是#include #include intmain(int agrc, char **argv){ g_printf("Hello world!\n"); return 0;}然后就是最简单的带库的编译linux@ubuntu:

2016-05-08 16:58:36 5811

原创 ubuntu完整安装glib心得

学习完数据结构,感觉对数据的存储有了一种新的认识,在动态内存的基础上,链表有了绝对的灵活性,可以给未知长度的数据处理带来方便,但是在不停的写代码的过程中,感觉到了深深的仇恨,每次要实现功能,几乎源代码都有改动,也就是说每个使用链表的方法几乎都不一样,这就对自己编写的链表、队列、和栈的函数维护成本增加,甚至N天以后不知道每个版本的实际差别。      这是我就在想是不是linux能够提供现成的链

2016-05-08 16:53:35 43312 5

NppAStyle_bin.zip

下载后打开这个压缩文件,有两个文件夹ansi和unicode(ansi是标准编码,支持语言少;unicode是通用编码,支持更多的语言)。打开unicode文件夹,将NppAStyle.dll放置到Notepad安装目录下的plugins文件夹下。 重启Notepad。 配置NppAStyle,点击菜单栏中的"插件"--->"NppAStyle"--->"options",在代码风格中选择java。

2016-08-15

openssl-0.9.8e.tar.gz

openssl-0.9.8e.tar.gz 官方源码,未做任何改动。

2016-08-07

wpa_supplicant-0.7.3.tar.gz

wpa_supplicant-0.7.3.tar.gz官方源码文件,未做任何改动。

2016-08-07

rt2870.bin

rt2870.bin,linux内核在使用RT5370无线网卡时需要的固件文件。

2016-08-07

MT7601U驱动源码

MT7601U驱动源码,可在ubuntu,可移植到嵌入式,在我的博客中有详细过程。

2016-07-25

QTmaketarget

提取编译好的QT文件脚本。

2016-07-22

MinGW 4.4,qt使用

MINGW4.4,qt在windows下使用的mingw文件。

2016-07-22

qt4.8.5编译文件

qt4.8.5编译好的文件,使用的是ok6410官方提供的3.0.1内核, arm-linux-gcc-4.3.2.tgz编译。

2016-07-22

tslib交叉编译好的文件

tslib交叉编译好的文件,是ok6410官方3.0.1内核, arm-linux-gcc-4.3.2.tgz编译好的文件。

2016-07-22

RT5370驱动源码

RT5370的驱动源码,可以在linux下进行移植编译,已经验证成功,可以在我的博客了解移植过程。

2016-07-20

sqlite-autoconf-3130000.tar.gz

sqlite-autoconf-3130000.tar.gz

2016-05-22

glib-2.22.5.tar.gz

glib-2.22.5.tar.gz库代码

2016-05-22

libffi-3.2.1.tar.gz

libffi库源代码

2016-05-22

fs4412_led_kernel.zip

FS4412开发板led驱动程序,在fs4412内核移植实验中的配套程序。

2016-05-21

FS4412系统移植实验手册-内核移植.pdf

FS4412系统移植实验手册-内核移植

2016-05-21

FS4412系统移植uboot移植实验代码

FS4412系统移植uboot移植实验代码,包括uboot2013源码,三星加密文件,移植需要修改的代码,移植好的能用的代码

2016-05-21

FS4412系统移植实验手册-uboot移植

FS4412系统移植实验手册-uboot移植

2016-05-21

FS4412内核镜像文件3.14

FS4412 linux内核镜像文件3.14

2016-05-18

FS4412 sd卡启动u-boot文件

FS4412 sd卡启动u-boot文件

2016-05-18

FS4412 nfs镜像文件

FS4412 nfs镜像文件

2016-05-18

MyApplicationC1.zip

在android app中调用自己的c代码,这个c代码会以动态库的形式存在,并且为了表示更广泛的使用场景,我们的c程序会使用第三方库(openssl),这也是我们开发中经常用的方式。

2020-04-02

mylib-sample.zip

可以使用ndk进行编译的例子工程。程序中使用了openssl的函数,这样就形成了一个库引用库的过程,这个通了就基本都通了。

2020-04-01

从1开始写一个操作系统.pdf

使用一个STC15W56S4的板子,而且STC还提供了外设的库,我们可以直接拿来作为bsp使用。我使用的是keil5。一个支持时间片和优先级的抢占式实时系统。支持动态内存。这个系统支持任务间通讯,至少要支持信号量,最好能够支持消息队列和共享内存,并且最好能提供一种广播方式。提供一个友好的shell工具。

2019-09-26

RT-OSforSTC15W.zip

从1开始写一个操作系统 教程源码,使用一个STC15W56S4的板子,而且STC还提供了外设的库,我们可以直接拿来作为bsp使用。我使用的是keil5。一个支持时间片和优先级的抢占式实时系统。支持动态内存。这个系统支持任务间通讯,至少要支持信号量,最好能够支持消息队列和共享内存,并且最好能提供一种广播方式。提供一个友好的shell工具。

2019-09-22

CMake官网教程中的工程

CMake入门笔记--CMake官网教程中的工程,可以在有cmake的环境下直接进行编译,运行。注释详细,方便学习。

2019-08-20

dueros.zip

在与小度智能音箱对接时需要使用的php代码,这套代码是完全可以运行的,稍加改动就可以使用,但是距离实际应用还差很多,这个代码只是初期学习阶段使用。

2019-07-23

天猫精灵对接php源码

在与天猫精灵对接时需要使用的php代码,这套代码是完全可以运行的,稍加改动就可以使用,但是距离实际应用还差很多,这个代码只是初期学习阶段使用。

2019-01-27

博客使用代码

博客中提到的代码例子,上传原始文件,方便学习使用。

2018-11-18

nanomsg-1.1.4.tar.gz

nanomsg是一个套接字库,提供了几种常见的通信模式。 它旨在使网络层快速,可扩展且易于使用。 在C中实现,它适用于各种操作系统,没有进一步的依赖性。

2018-09-22

libcyaml-master.zip

用于读写YAML的C库。它使用ISO C11编写,并根据ISC许可进行许可。

2018-09-22

线程消息队列

所谓线程消息队列,就是一个普通的循环队列加上“多生产者-单(多)消费者的存/取操作”。流水线方式中的线程是单消费者,线程池方式中的线程是多消费者。

2018-09-16

inirw源码文件

主要特点: 1、支持;和#注释符号,支持行尾注释。 2、支持带引号'或"成对匹配的字符串,提取时自动去引号。引号中可带其它引号或;#注释符。 3、支持无section或空section(名称为空)。......

2018-09-16

nxjson源码文件

用C编写的非常小的JSON解析器,从以null结尾的字符串解析JSON,易于使用的树遍历API。

2018-09-16

libxml2源码文件

Libxml2是为Gnome项目开发的XML C解析器和工具包(但可以在Gnome平台之外使用),它是MIT License下的免费软件。

2018-09-16

rtlist源码

从linux内核中提取出来的链表实现,在我的博客中有说明,其中有例子程序。

2018-08-31

香橙派烧写系统工具

香橙派烧写系统工具,烧写ubuntu以及armbian等系统所使用的U盘格式化以及镜像工具。

2018-06-25

shell扫雷脚本

shell写的扫雷游戏脚本,ujhk分别是上下左右,a是确认,在ubuntu12测试通过

2017-04-03

shell俄罗斯方块脚本

用shell写的俄罗斯方块脚本,ubuntu12测试通过

2017-04-03

shell猜数字脚本

用shell写的猜数字脚本,在ubuntu12下运行通过

2017-04-03

makefiledemo

makefile递归例程,我的csdn博客有详细说明和使用方法。

2016-11-30

空空如也

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

TA关注的人

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