- 博客(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
2016-08-15
MyApplicationC1.zip
2020-04-02
从1开始写一个操作系统.pdf
2019-09-26
RT-OSforSTC15W.zip
2019-09-22
nanomsg-1.1.4.tar.gz
2018-09-22
inirw源码文件
2018-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人