嵌入式linux
文章平均质量分 88
碧海蓝天观潮涌
这个作者很懒,什么都没留下…
展开
-
为什么构造函数不能声明为虚函数,析构函数可以
构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。编译器无法知道对象 的实际类型,是该类本身,还是该类的一个派生类,或是更深层次的派生类。无法确定。转载 2016-05-23 11:01:30 · 307 阅读 · 0 评论 -
DNW烧写FL2440 NAND Flash分区
转自 calvinlee1984Subject:DNW烧写FL2440 NAND Flash分区Date: 2-Mar-2011By: Calvinlee1984@163.com 1.DNW软件是Samsung公司为S3C2440A芯片配置的一款专用串口软件,可在Windows系统下通过USB烧写Flash。转载 2016-03-26 09:49:03 · 463 阅读 · 0 评论 -
利用Eclipse+openJTAG调试led.axf文件
转自calvinlee1984Subject:利用Eclipse+openJTAG调试led.axf文件Date: 3-Mar-2011By: Calvinlee1984@163.com 1.本文在《007.FL2440板载用户LED的使用》的基础上调试led.axf文件 2.Eclipse+openJTAG交叉开转载 2016-03-26 09:09:44 · 1101 阅读 · 0 评论 -
(嵌入式开发)移植最新uboot
一:准备移植1、从下面的官网下载最新的U-boot。用google英文版搜索最新的u-boot源码 ftp://ftp.denx.de/pub/u-boot/2、建立sourceinsight工程 a、解压并在E:\colin weidongshan\transplant_u-boot-2012.04.01\u-boot-2012.04.01建立SI b、添加文件到SI工程转载 2016-03-23 22:02:39 · 500 阅读 · 0 评论 -
2440 上内核3.4.2移植
PS:因wifi项目中无wifi驱动,需新内核。转自http://blog.chinaunix.net/uid-26318500-id-4397971.html1.首先在内核中查找已有的默认配置文件find -name "*defconfig"[root@localhost arm]# cd arch/arm/[root@localhost arm]# find -name转载 2016-04-07 23:04:33 · 1229 阅读 · 0 评论 -
数据结构笔记-----队列
队列的定义现实生活中的排队队列的性质队列的顺序存储实现代码复用:队列的链式存储实现代码复用:小结原创 2016-03-14 10:02:10 · 332 阅读 · 0 评论 -
数据结构笔记-----递归与栈
函数调用时的栈活动记录函数调用过程程序中的栈程序的栈溢出顺序栈必须指定大小,一旦超过就会溢出最后依次弹出小结递归的应用实战一12斐波拉契数列的数学解法 1 1 2 3 5 8 133strlen递归解法4汉诺塔问题解法56原创 2016-03-13 20:01:46 · 400 阅读 · 0 评论 -
数据结构笔记-----栈
栈的定义及实现1234567815原创 2016-03-13 15:02:00 · 330 阅读 · 0 评论 -
GB2312简体中文编码表
GB2312简体中文编码表code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +FA1A0 、 。 · ˉ ˇ ¨ 〃 々 — ~ ‖ … ‘ ’A1B0 “ ” 〔 〕 〈 〉 《 》 「 」 『 』 〖 〗 【 】A1C0 ± × ÷ ∶ ∧ ∨ ∑ ∏ ∪ ∩ ∈ ∷ √ ⊥ ∥ ∠A1D0 ⌒ ⊙ ∫转载 2016-04-06 10:07:59 · 1294 阅读 · 0 评论 -
(嵌入式开发)自己写bootloader之编写第一阶段
1最简单的bootloader的编写步骤:1. 初始化硬件:关看门狗、设置时钟、设置SDRAM、初始化NAND FLASH2. 如果bootloader比较大,要把它重定位到SDRAM3. 把内核从NAND FLASH读到SDRAM4. 设置"要传给内核的参数"5. 跳转执行内核改进:1. 提高CPU频率, 200MHZ ==> 400MHZ2. 启动I原创 2016-03-22 16:20:31 · 3142 阅读 · 1 评论 -
linux mount (挂载命令)详解
挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。 命令格式:mount [-t vfstype] [-o options] device dir 其中: 1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 光盘或光盘镜像:iso9转载 2016-03-23 22:11:38 · 281 阅读 · 0 评论 -
Makefile中支持的函数大全
一.描述Makefile的函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$( )或是${ }这里,就是函数名,make支持的函数不多。是函数的参数,参数间以逗号“,”分隔,而函数名和参数之间以“空格”分隔 Makefile中支持的函数如下:★字符串处理函数名称:字符串替换函数——subst。$(subst ,,)功能:把字串中的字符串替换转载 2016-03-23 22:08:52 · 251 阅读 · 0 评论 -
(嵌入式开发)自己写bootloader之编写第二阶段
1 内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。 那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImag原创 2016-03-22 21:35:24 · 1206 阅读 · 0 评论 -
HZK16应用实例
在C51中,HZK16汉字库的使用(mydows's Blog转载)定义如下:unsigned char str[]="我"在运行时str被初始化为2个字节长度,内容为“我”的GBK码,为:0xCE(区码),0xD2(位码)。使用如下换算公式得到“我”在HZK16文件中的地址,从该位置开始的顺序32字节为“我”的字模。 ADD=【(区码-0xa1)×0x5e +(位码转载 2016-04-06 09:29:04 · 923 阅读 · 0 评论 -
UNICODE,GBK,UTF-8区别
简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转转载 2016-04-05 16:46:52 · 308 阅读 · 0 评论 -
数据结构笔记-----链表
静态链表12逻辑结构3静态链表是在顺序表的基础上利用数组实现的单链表,无指针4 静态链表是柔性数组的一种典型的应用56789创建可复用静态链表11121320小结10为什么静态链表的结构体中要再定义一个header成员,而不直接用node[0]? 21header是逻辑上的一个链表上的头,而no原创 2016-03-09 09:07:49 · 356 阅读 · 0 评论 -
Source Insight 3.50.0065使用详解
转自calvinlee1984Subject:Source Insight3.50.0065使用详解Date: 21-Oct-2011By: Calvinlee1984@163.com 1. Source Insight介绍Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C转载 2016-03-26 09:52:44 · 442 阅读 · 0 评论 -
程序员面试资源大收集
资源一:《crack the code interview》——谷歌资深技术面试官经典之作本书的中文目录如下,大部分内容由Hawstein君原创翻译,部分缺失的由快课网Jay13补充。1.1 判断一个字符串中的字符是否唯一1.2 字符串翻转1.3 去除字符串中重复字符1.8 利用已知函数判断字符串是否为另一字符串的子串2.1 从链表中移除重复结点转载 2016-03-26 10:12:31 · 427 阅读 · 0 评论 -
Linux下的lds链接脚本简介(一)
转载自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml一、 概论每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用转载 2016-03-26 10:17:22 · 318 阅读 · 0 评论 -
数码相框笔记
1. 程序框架1.1 触摸屏: 主按线程,通过socket发给显示进程 --------------------------- 封装事件:ts线程 按键线程 ---------------------------转载 2016-04-21 08:11:06 · 1011 阅读 · 0 评论 -
字符集和编码II: fat/msdos/vfat (文件名乱码的问题)
具体到文件名乱码的问题,需要明确两点第一,文件名作为一个字符串,需要被编码后存入文件系统;第二,Linux内核无非是个特殊的应用程序,它读取文件名,再把文件名以编码后的形式传递出去。但Linux内核只能逐字节处理编码流(而Windows NT内核是UCS-2的,逐2字节处理编码流),因此必须采用某种单字节编码(这包括所有的不定长编码)进行输出——这就是Linux内核所谓的N转载 2016-04-20 12:23:49 · 1912 阅读 · 0 评论 -
C语言结构体的字节对齐原则
为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些转载 2016-04-18 15:58:01 · 301 阅读 · 0 评论 -
图像缩放算法
摘要:首先给出一个基本的图像缩放算法,然后一步一步的优化其速度和缩放质量;高质量的快速的图像缩放 全文 分为: 上篇 近邻取样插值和其速度优化 中篇 二次线性插值和三次卷积插值 下篇 三次线性插值和MipMap链正文: 为了便于讨论,这里只处理32bit的ARGB颜色; 代码使用C++;涉及到汇编优化的时候假定为x86平台;使转载 2016-04-18 15:00:28 · 929 阅读 · 0 评论 -
bitmap格式分析
转自:http://redwolf.blog.51cto.com/427621/229096最近正在着手开发一个图片库,也就是实现对常见图片格式的度写操作。作为总结与积累,我会把这些图片格式以及加载的实现写在我的Blog上。说到图片,位图(Bitmap)当然是最简单的,它Windows显示图片的基本格式,其文件扩展名为*.BMP。在Windows下,任何各式的图片文件(包括视频播放转载 2016-04-18 09:22:42 · 252 阅读 · 0 评论 -
libjpeg用法
libjpeg是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。这个库由独立JPEG工作组维护。最新版本号是6b,于1998年发布。可以参考维基百科关于libjpeg的介绍http://zh.wikipedia.org/wiki/Libjpeg。libjpeg库的数据结构 用libjpeg库解码jpeg数据的时候,最重要的数据类型转载 2016-04-17 10:14:57 · 1100 阅读 · 0 评论 -
一个通用的Makefile
转自http://www.cnblogs.com/lidabo/p/4521123.html一 makefile的作用 Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中记录有文件的信 息,在make时会决定在链接的时候需要重新编译哪些文件。Makefile的宗旨就是:让转载 2016-04-11 17:34:33 · 371 阅读 · 0 评论 -
SVGALib
SVGALib是一套运行于Linux及FreeBSD下的开放源代码低阶绘图函式库,它允许程式设计人员变更视讯模式及全屏幕图像,许多热门的电脑游戏如Quake及Doom都源自此技术。范例编辑#include #include #include int main(void){int color = 4;int x = 10;转载 2016-04-11 11:58:32 · 311 阅读 · 0 评论 -
(嵌入式开发)移植最新版本3.4.2内核
一. 内核启动流程,据此配置内核(机器ID)1.1 修改Makefile1.2 选择默认配置 : make s3c2410_defconfig1.3 make uImage步骤1:在UBOOT里:set machid 16a // smdk2440 mach-smdk2440.c或set machid 7CF // mini2440 mach-m原创 2016-03-28 19:37:31 · 410 阅读 · 0 评论 -
Linux网络编程入门 (转载)
(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一 个地方获取文件的时候,是转载 2016-04-13 11:52:15 · 318 阅读 · 0 评论 -
2440 上内核3.4.2移植
win7下不能使用dnw烧写的替代方法两种替代方法:1.用网络下载u-boot:tftp 30000000 u-boot.bin;protect off all; erase 0 3ffff;cp.b 30000000 0 40000kernel:tftp 30000000 uImagenand erase kernelnand write.jffs2原创 2016-04-08 10:27:20 · 655 阅读 · 0 评论 -
[arm]虚拟机,2440开发板,主机三者互通
想实现3着互通先必须保证三者的网段是相同的:首先查看电脑主机的IP:然后再看看虚拟机的IP:惊喜的发现,他们在一个网段上~~~那就不用改了~~再去看看开发板上的IP:这里注意,输入命令时,是在进入系统后输入的(先敲下回车键),而不是uboot。这里发现网段,也是相同的。其实这是我修改之后的结果。开发板之前默认的并不是这转载 2016-03-26 10:30:17 · 346 阅读 · 0 评论 -
Linux下的lds链接脚本简介(四)
十一、 表达式lds中表达式的文法与C语言的表达式文法一致,表达式的值都是整型,如果ld的运行主机和生成文件的目标机都是32位,则表达式是32位数据,否则是64位数据。以下是一些常用的表达式:_fourk_1 = 4K; /* K、M单位 */_fourk_2 = 4096; /* 整数 */_fourk_3 = 0×1000; /* 16 进位 */_fourk_4 =转载 2016-03-26 10:20:39 · 277 阅读 · 0 评论 -
Linux下的lds链接脚本简介(三)
八、 内存区域命令在默认情形下,连接器可以为section在程序地址空间内分配任意位置的存储区域。并通过输出section描述的> REGION属性显示地将该输出section限定于在程序地址空间内的某块存储区域,当存储区域大小不能满足要求时,连接器会报告该错误。你也可以用MEMORY命令让在SECTIONS命令内*未*引用的selection分配在程序地址空间内的某个存储区域内。注意转载 2016-03-26 10:19:53 · 233 阅读 · 0 评论 -
Linux下的lds链接脚本简介(二)
七、 SECTIONS命令SECTIONS命令告诉ld如何把输入文件的sections映射到输出文件的各个section: 如何将输入section合为输出section; 如何把输出section放入程序地址空间(VMA)和进程地址空间(LMA).该命令格式如下:SECTIONS{SECTIONS-COMMANDSECTIONS-COMMAND转载 2016-03-26 10:18:58 · 345 阅读 · 0 评论 -
Linux平台Makefile文件的编写基础篇
目的: 基本掌握了 make 的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, file2.h file1.c: #include转载 2016-03-23 08:45:31 · 284 阅读 · 0 评论 -
嵌入式Linux学习笔记 NAND Flash控制器
一、NAND Flash介绍和NAND Flash控制器的使用NAND Flash在嵌入式系统中的作用,相当于PC上的硬盘常见的Flash有NOR Flash和NAND Flash,NOR Flash上进行读取的效率非常高,但是擦除和写操作的效率很低,容量一般比较小;NAND Flash进行擦除和写操作的效率更高,并且容量更大。一般NOR Flash用于存储程序,NAND Flas转载 2016-03-22 20:52:44 · 603 阅读 · 0 评论 -
C_C++指针指针应用详解
前言:复杂类型说明要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析. 下面让我们先从简单的类型开始慢慢分析吧:int p; //这是一个普通的整型变量i转载 2016-03-22 16:03:19 · 342 阅读 · 0 评论 -
linux中强大且常用命令:find、grep
在linux下面工作,有些命令能够大大提高效率。本文就向大家介绍find、grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们。本文结构如下:find命令find命令的一般形式find命令的常用选项及实例find与xargsgrep命令grep命令的一般形式grep正则表达式元字符集(基本集)grep命令的常用选项及实例1、find命令转载 2016-04-01 08:15:50 · 265 阅读 · 0 评论 -
嵌入式开发工具详解
根据使用的方式来看,可以分为3种类别的文件服务器:ftp服务器(ftp/tftp)、 Samba服务器、NFS服务器。ftp的客户可以是任意平台,samba是专门针对windows客户,而NFS则是面向linux/unix用户的。下面是三种服务器的对比情况:服务器名称 用户客户端平台 使用范围 服务端口FTP Windows/linux/转载 2016-03-31 21:12:31 · 471 阅读 · 0 评论 -
对inetd、xinetd与TCP_Wrapper的基本了解
在Linux系统中有一个特殊的守护进程inetd(InterNET services Daemon),它用于Internet标准服务,通常在系统启动时启动。通过命令行可以给出inetd的配置文件,该配置文件列出了inetd所提供的服务清单。如果没有在命令行给出配置文件,那么inetd将从文件/etc/inetd.conf中读取它的配置信息。inetd的主要任务是为那些没有在系统初始化时启动的服务器转载 2016-03-31 20:50:46 · 718 阅读 · 0 评论