04 2014 档案

摘要:摘自http://bbs.chinaunix.net/thread-2115820-1-1.html 4楼的回答 先把中断处理流程给出来 1.进入中断处理程序--->2.保存关键上下文---->3.开中断(sti指令)--->4.进入中断处理程序的handler--->5.关中断(cli指令)---->6.写EOI寄存器(表示中断处理完成)---->7.开中断。 硬中断: 对应于... 阅读全文
posted @ 2014-04-26 12:17 ITtecman 阅读(2287) 评论(0) 推荐(0) 编辑
摘要:一般在调试打印Debug 信息的时候, 需要可变参数的宏. 从C99开始可以使编译器标准支持可变参数宏(variadic macros), 另外GCC 也支持可变参数宏, 但是两种在细节上可能存在区别. 1. __VA_ARGS__ __VA_ARGS__ 将"..." 传递给宏.如 #define debug(format, ...) fprintf(stder... 阅读全文
posted @ 2014-04-24 18:17 ITtecman 阅读(349) 评论(0) 推荐(0) 编辑
摘要:参考:http://www.educity.cn/help/653700.html 问题好像是,在VISIO里只要虚线框的大小超过一个界限,拷贝之后就会变成实线框。 解决办法是修改注册表:【运行regedit】->【HKEY_CURRENT_USER】 ->【Software】->【Microsoft】->【Office】->【11.0】(office2007是 12.0)->【VISIO】... 阅读全文
posted @ 2014-04-22 10:35 ITtecman 阅读(1132) 评论(0) 推荐(0) 编辑
摘要:不相交集类型声明及函数实现: /* disjoint_set.h */#ifndef _DISJOINT_SET_H#define _DISJOINT_SET_H#define NUMSETS 5typedef int disjoint_set[NUMSETS + 1];typedef int set_type;typedef int element_type;void initia... 阅读全文
posted @ 2014-04-22 07:56 ITtecman 阅读(394) 评论(0) 推荐(0) 编辑
摘要:解决方法:配置内核 make menuconfig File Systems ---> DOS/FAT/NT Filesystems ---> (utf8) Default iocharset for FAT 改为 (cp936) Default iocharset for FAT 重新编译内核,烧写到... 阅读全文
posted @ 2014-04-18 10:41 ITtecman 阅读(413) 评论(0) 推荐(0) 编辑
摘要:功能:查找集合S中第k个最小元。 快速选择算法修改自快速排序算法,当算法终止时,第k个最小元就在位置k上。这破坏了原来的排序;如果不希望这样,那么需要做一份拷贝。 快速选择函数: /* quick_select.h */#ifndef _QUICK_SELECT_H#define _QUICK_SELECT_Hvoid qselect(int array[], int k, int l... 阅读全文
posted @ 2014-04-18 09:31 ITtecman 阅读(239) 评论(0) 推荐(0) 编辑
摘要:详细步骤参考自:http://www.cnblogs.com/wanyao/archive/2011/11/21/2257628.html 过程比较顺利,结果截图如下: 这里需要注意的是:http://www.cnblogs.com/nufangrensheng/p/3669623.html中”6、General setup选项配置:”给出的提示: 注意:添加了自己的信息“Ycha... 阅读全文
posted @ 2014-04-17 18:06 ITtecman 阅读(351) 评论(0) 推荐(0) 编辑
摘要:通常在开发板上搭建好开发平台后,我们会试着移植一个最简单的应用程序Hello world来测试一下。初次尝试,我们经常会碰到的问题就是,在开发板上运行./hello的时候出错:-bin/sh ./hello not found。 遇到这种错误,原因有如下两种: 一、在配置Busybox的时候,如果选择了Busybox Settings—>Build Options—>Build BusyBox... 阅读全文
posted @ 2014-04-17 17:18 ITtecman 阅读(474) 评论(0) 推荐(0) 编辑
摘要:一、首先编译并安装BusyBox 这里使用的交叉编译器还是3.4.5. 注意:编译内核、编译BusyBox以及编译文件系统中的所有应用程序的交叉编译器要使用同一个版本。 1、获取BusyBox源码 下载地址:http://www.busybox.net/downloads/ 这里下载 busybox-1.13.0.tar.bz2 2、修改并配置BusyBox 解压BusyBox,进入... 阅读全文
posted @ 2014-04-17 16:43 ITtecman 阅读(533) 评论(0) 推荐(0) 编辑
摘要:在内核里支持两个串口,也就是芯片的UART0和UART1,而UART2的驱动是针对红外接口的,而不是串口驱动,这里将其修改为串口驱动。 一、修改内核源码arch/arm/mach-s3c2440/mach-smdk2440.c文件的第100行,将其改为: .ulcon = 0x03, 二、修改内核源码drivers/serial/samsung.c文件: 1、在第53行... 阅读全文
posted @ 2014-04-17 14:27 ITtecman 阅读(671) 评论(0) 推荐(0) 编辑
摘要:内核源码:linux2.6.30.4 交叉编译工具:3.4.5 移植linux内核至:TQ2440 工作基础:http://www.cnblogs.com/nufangrensheng/p/3669623.html 一、下载yaffs2源码 二、进入yaffs2目录,执行打补丁脚本文件patch-ker.sh,打补丁到内核中: cd yaffs2 ./patch-ker... 阅读全文
posted @ 2014-04-17 11:40 ITtecman 阅读(522) 评论(0) 推荐(0) 编辑
摘要:内核源码:linux2.6.30.4 交叉编译工具:3.4.5 移植linux内核至:TQ2440 工作基础:http://www.cnblogs.com/nufangrensheng/p/3669623.html Linux内核中已经做好了Nand Flash的驱动,只需要进行适当的修改即可使用。 一、修改内核源码arch/arm/plat-s3c24xx/common-sm... 阅读全文
posted @ 2014-04-17 10:25 ITtecman 阅读(741) 评论(0) 推荐(0) 编辑
摘要:快速排序函数: /* quick_sort.h */#ifndef _QUICK_SORT_H#define _QUICK_SORT_H#define CUTOFF (3)void quick_sort(int array[], int n); //快速排序的驱动例程int median3(int array[], int left, int right)... 阅读全文
posted @ 2014-04-17 08:43 ITtecman 阅读(1526) 评论(0) 推荐(0) 编辑
摘要:内核源码:linux2.6.30.4 交叉编译工具:3.4.5 移植linux内核至:TQ2440 1、进入内核顶层目录,修改顶层Makefile,大概在193和194行,将ARCH和CROSS_COMPILE修改为如下所示: ARCH ?= arm CROSS_COMPILE ?= arm-linux- 2、修改内核源码arch/a... 阅读全文
posted @ 2014-04-16 22:23 ITtecman 阅读(1236) 评论(0) 推荐(0) 编辑
摘要:根文件系统是指挂载于文件系统层次结构根部的文件系统,简单的表示为/。简单来说,根文件系统是内核挂载的第一个文件系统,挂载的位置是文件系统层次结构的顶端。 Linux系统对于根文件系统有一些特殊的要求。Linux要求根文件系统中包含应用程序和工具软件,通过它们来引导系统、初始化系统服务(比如网络和系统控制台)、加载设备驱动程序和挂载额外的文件系统。 阅读全文
posted @ 2014-04-16 16:16 ITtecman 阅读(241) 评论(0) 推荐(0) 编辑
摘要:很多嵌入式开发人员都需要在Linux内核中添加一些特性,以支持特别的定制硬件。 ARM架构的顶层Kconfig文件中,可以看到一个名为System Type的菜单项。在ARM system type提示后有一系列与ARM架构相关的选择项。 ARM架构的顶层Kconfig文件通过source指令包含了具体与s3c2440相关的一些Kconfig定义: source "arch/arm/m... 阅读全文
posted @ 2014-04-16 15:23 ITtecman 阅读(1409) 评论(0) 推荐(0) 编辑
摘要:Linux内核源码中,差不多有300个内核子目录都包含了名为Kconfig的文件。这个文件用于配置其所在目录的源码的特性。Kconfig中的每个配置参数都有附带的帮助文本,配置子系统会解析Kconfig的内容,并提示用户做出配置选择。 配置工具(比如menuconfig)会读取各个子目录中的Kconfig文件,首先读取的是arch子目录中的Kconfig文件。它是在…/scripts/kconf... 阅读全文
posted @ 2014-04-16 14:27 ITtecman 阅读(870) 评论(0) 推荐(0) 编辑
摘要:在顶层Linux源码目录中输入命令make help,它会显示一长串从源码树中生成的目标列表。最常见的使用make的方式是不指定目标,在这种情况下,它会生成内核ELF文件vmlinux和针对所选架构的默认二进制镜像(例如,x86架构的bzImage)。使用make时,如果不指定目标,它也会编译所有由配置文件指定的设备驱动程序模块(内核可加载模块)。 很多架构和机器类型都需要一个二进制镜像目标,而... 阅读全文
posted @ 2014-04-16 14:09 ITtecman 阅读(453) 评论(0) 推荐(0) 编辑
摘要:在命令行中,进入顶层内核目录,并输入命令make menuconfig,就可以启动一个基于菜单的内核配置编辑器。从这里开始,你可以访问每个可用的配置参数,并生成一个定制的内核配置。 当你退出配置编辑器时,它会提示你是否保存修改,如果选择保存修改,全局配置文件.config就会被更新(如果不存在,则会被创建)。 顶层Makefile会使用这个.config文件来构建内核。 大多数内核软件模块也... 阅读全文
posted @ 2014-04-16 13:47 ITtecman 阅读(8056) 评论(0) 推荐(0) 编辑
摘要:通用函数: /* common.h */#ifndef _COMMON_H#define _COMMON_Hvoid swap(int *ap, int *bp);void print_array(const int array[], int n);#endif /* common.c */#include "common.h"#include void swap(int *ap, in... 阅读全文
posted @ 2014-04-15 08:38 ITtecman 阅读(1060) 评论(0) 推荐(0) 编辑
摘要:通用函数: /* common.h */#ifndef _COMMON_H#define _COMMON_Hvoid swap(int *ap, int *bp);void print_array(const int array[], int n);#endif /* common.c */#include "common.h"#include void swap(int *ap, in... 阅读全文
posted @ 2014-04-14 08:51 ITtecman 阅读(393) 评论(0) 推荐(0) 编辑
摘要:实例功能:接收一个含有整数元素的数组和一个包含元素个数的整数,将数组中的元素从小到大重新排序。并输出排序前后的数组。 下面以模块划分的思想来实现此功能。 打印数组元素模块: /* common.h */#ifndef _COMMON_H#define _COMMON_Hvoid print_array(const int array[], int n);#endif /* commo... 阅读全文
posted @ 2014-04-13 08:42 ITtecman 阅读(469) 评论(0) 推荐(0) 编辑
摘要:1、在加电复位之后,大多数处理器都会从一个默认的地址处获取代码。比如MIPS结构的CPU会从0xBFC00000处取第一条指令,而ARM结构的CPU则从地址0x00000000处取第一条指令。因此,在嵌入式开发板中,需要把存储器件ROM或Flash等映射到这个默认的地址处,Bootloader就存放在这个地址开始处,这样一上电就可以执行Bootloader。 2、当Bootloader完成基本的... 阅读全文
posted @ 2014-04-11 17:44 ITtecman 阅读(6759) 评论(0) 推荐(0) 编辑
摘要:实例功能:接收一个含有整数元素的数组和一个包含元素个数的整数,将数组中的元素从小到大重新排序。并输出排序前后的数组。 下面以模块划分的思想来实现此功能。 打印数组元素模块: /* common.h */#ifndef _COMMON_H#define _COMMON_Hvoid print_array(const int array[], int n);#endif /* commo... 阅读全文
posted @ 2014-04-11 08:41 ITtecman 阅读(1008) 评论(0) 推荐(0) 编辑
摘要:addr2line addr2line是用来将程序地址转换成其所对应的程序源文件、代码行以及所对应的函数。 ar ar是用来管理档案文件的,在嵌入式系统开发中,ar主要是用来对静态库进行管理。 ar常用的几个参数总结: c 创建一个档案文件 r 向档案文件中增加文件 t 显示档案文件中存在哪些文件 s 用于指示生成索引以加快查找速度 d 从档案文件中删除文件... 阅读全文
posted @ 2014-04-10 20:51 ITtecman 阅读(886) 评论(0) 推荐(0) 编辑
摘要:前言 交叉编译,即在一种平台上编译,并能够运行在另一种体系结构完全不同的平台上。交叉编译使用的工具,一般称为交叉编译工具,由于它是由多个程序构成,所以又称为交叉编译工具链。 交叉开发工具链就是为了编译、链接、处理和调试跨平台体系结构的程序代码。每次执行工具链软件时,通过带有不同的参数,可以实现编译、链接、处理或者调试等不同的功能。 工具链的组成 工具链一般由编译器、连接器、解释器和调试器组... 阅读全文
posted @ 2014-04-10 13:41 ITtecman 阅读(1599) 评论(0) 推荐(0) 编辑
摘要:s3c2440集成了4线制电阻式的触摸屏接口,触点坐标的检测是通过A/D转换来实现的。 s3c2440一共有4种触摸屏接口模式: (1)等待中断模式 设置ADCTSC寄存器为0xD3即可令触摸屏控制器处于这种模式。这时它等待触摸屏被按下,当触摸屏被按下时,触摸屏控制器将发出INT_TC(INT_ADC的子中断)中断信号,这时触摸屏控制器要转入自动(连续)x/y轴坐标转换模式(或者转入分离的x... 阅读全文
posted @ 2014-04-09 10:37 ITtecman 阅读(554) 评论(0) 推荐(0) 编辑
摘要:参考自:http://blog.chinaunix.net/uid-16100003-id-3059814.html 关于IIC的响应问题:对于每一个接收设备(从设备,slaver),当它被寻址后,都要求在接收到每一个字节后产生一个响应。因此,the master device 必须产生一个额外的时钟脉冲(第九个脉冲)用以和这个响应位相关联。 在这个脉冲期间,发出响应的从设备必须将SDA拉低并... 阅读全文
posted @ 2014-04-08 18:18 ITtecman 阅读(16436) 评论(0) 推荐(6) 编辑
摘要:转自:http://bbs.21ic.com/icview-253715-1-1.html UART通用异步收发器,UART是通用的异步传输模式,在它这种基础上加上其他接口或者解码器就衍生出多种异步传输模式,比如232,485,红外线等。这就好像脚上穿高跟鞋,跑鞋,皮鞋等,虽然走路方式不一样,但是其原理都是脚在向前走。自己对异步和同步的理解,异步传输就好像写信一样。假如每个信件里面写一个字符,我... 阅读全文
posted @ 2014-04-08 14:36 ITtecman 阅读(2897) 评论(0) 推荐(2) 编辑
摘要:转自:http://blog.163.com/little_320/blog/static/38789520091116103325859/ 方法一: 由于在windows下默认是gb编码,而我的vim默认是utf-8(gedit默认也是utf-8),所以打开会成乱码。修改了一下配置文件,使vi支持gb编码就好了。 $vi ~/.vimrc let &termencoding=&e... 阅读全文
posted @ 2014-04-08 13:25 ITtecman 阅读(6813) 评论(0) 推荐(0) 编辑
摘要:一:ads下的一段汇编程序: __main EXPORT BootReset BootReset B resetvec_reqset IMPORT BootEntry IMPORT |Image$$RO$$Limit| AREA BOOTROM, CODE, READO... 阅读全文
posted @ 2014-04-08 09:03 ITtecman 阅读(891) 评论(0) 推荐(0) 编辑
摘要:/* bin_heap.h */#ifndef _BIN_HEAP_H#define _BIN_HEAP_Hstruct heap_struct;typedef struct heap_struct *priority_queue;priority_queue initialize(int max_elements);void destroy(priority_queue h);void m... 阅读全文
posted @ 2014-04-08 08:10 ITtecman 阅读(319) 评论(0) 推荐(0) 编辑
摘要:环境:TQ2440开发板,J-link 通过J-link向TQ2440开发板的Nor Flash烧写程序,执行烧写时出错:Unable to halt arm core…详情如下图所示: 解决办法: 1、打开Jlink Commander,输入r回车, 输入h回车,此时显示PC值为0x00 2、打开JFlash, 连接目标板,显示成功后,选择擦除芯片. 重新烧写,成功! 上... 阅读全文
posted @ 2014-04-07 21:38 ITtecman 阅读(1929) 评论(0) 推荐(0) 编辑
摘要:原文可参考:GCC中的内嵌汇编语言 一.声明 虽然Linux的核心代码大部分是用C语言编写的,但是不可避免的其中还是有一部分是用汇编语言写成的。有些汇编语言代码是直接写在汇编源程序中的,特别是Linux的启动代码部分;还有一些则是利用gcc的内嵌汇编语言嵌在C语言程序中的。这篇文章简单介绍了gcc中的内嵌式汇编语言,主要想帮助那些才开始阅读Linux核心代码的朋友们能够更快的入手。 ... 阅读全文
posted @ 2014-04-07 14:56 ITtecman 阅读(2006) 评论(0) 推荐(0) 编辑
摘要:cache:高速缓存 buffer:缓冲区 阅读全文
posted @ 2014-04-07 09:34 ITtecman 阅读(138) 评论(0) 推荐(0) 编辑
摘要:摘自:http://blog.sina.com.cn/s/blog_612144f30100nkpt.html ############################### 实例: 有这样两个文件: 程序清单1 :hello.c #include int main(void) { char msg[] = "Hello world!"; puts(msg... 阅读全文
posted @ 2014-04-06 18:02 ITtecman 阅读(750) 评论(0) 推荐(0) 编辑
摘要:详细步骤指导可参考:http://kegel.com/crosstool/current/doc/crosstool-howto.html中的Quick Start部分介绍的操作实例。 其中,关键点截图如下所示: 注意,运行demo-i686.sh时,会自动从网上下载源码,然后编译。所以要保证电脑已经连接到Internet。 阅读全文
posted @ 2014-04-06 15:24 ITtecman 阅读(442) 评论(0) 推荐(0) 编辑
摘要:环境:VMware10+RedHat5(安装时选择了虚拟化组件)。 安装vmware-tools过程中出现如下所示错误: This configuration program is to be executed in a virtual machine. Execution aborted. 可行的解决方法如下所示:(参考自http://bbs.chinaunix.net/thread-4... 阅读全文
posted @ 2014-04-06 15:02 ITtecman 阅读(7053) 评论(0) 推荐(0) 编辑
摘要:wget:从网络上下载文件到当前目录。 阅读全文
posted @ 2014-04-04 21:23 ITtecman 阅读(237) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.qtcn.org/bbs/read.php?tid=10373 关于Qt,Qt/E,Qtopia Core, Qtopia这些版本之间的区别和联系: Qt泛指Qt的所有桌面版本,比如Qt/X11,Qt Windows,Qt Mac等。由于Qt最早是在Linux中随着KDE流行开来的,因此通常很多人说的Qt都指用于Linux/Unix的Qt/X11。 Qt/E(Qt... 阅读全文
posted @ 2014-04-04 19:32 ITtecman 阅读(1063) 评论(0) 推荐(0) 编辑
摘要:前言 首先我们需要明确如下表所示的对应关系: 网络类型 网络适配器名 Bridged VMnet0 NAT VMnet8 Host-only VMnet1 解决“无法将... 阅读全文
posted @ 2014-04-04 14:19 ITtecman 阅读(43516) 评论(1) 推荐(2) 编辑
摘要:环境:Vmware10+RedHat5 在Vmware10中安装好RedHat5后,即使点击了全屏按钮(或使用快捷键Ctrl+Alt+Enter),全屏的效果依然不尽人意,跟下图中差不多,RedHat5只占据了整个屏幕中间的一部分,两边还是黑色背景。在某些情况下,这种全屏效果是影响正常使用的,比如在编译内核时,执行make menuconfig命令就会提示屏幕分辨率太低。 既然是屏幕分辨率... 阅读全文
posted @ 2014-04-04 12:31 ITtecman 阅读(4624) 评论(0) 推荐(0) 编辑
摘要:Bitmap font 点阵字体是把每一个字符都分成16×16或24×24个点,然后用每个点的虚实来表示字符的轮廓。 点阵字体优点是显示速度快,不像矢量字体需要计算;其最大的缺点是不能放大,一旦放大后就会发现文字边缘的锯齿。 点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示。这种文字显示方式于较早前的电脑系统(例如未有图形接口时的 DOS 操作系统)被普遍采用。由于位图的缘故,点阵... 阅读全文
posted @ 2014-04-03 10:54 ITtecman 阅读(2078) 评论(0) 推荐(0) 编辑
摘要:试验环境:TQ2440开发板(配套TQ4.3寸屏) 试验参考书目:《ARM处理器裸机开发实战——机制而非策略》(以下简称《裸机开发实战》) 《裸机开发实战》第13章LCD控制器原理与实验中是以TQ3.5寸屏讲解的,开始我也注意到了这一点,所以对于一些主要的配置参数(数据手册那些参数表中列出的数据)都是参考TQ4.3寸屏的数据手册进行配置的。而忽略了对于数据手册中时序图的关注(因为大眼一看参考书... 阅读全文
posted @ 2014-04-03 10:07 ITtecman 阅读(376) 评论(0) 推荐(0) 编辑
摘要:在计算机图像技术中,一个像素的颜色是由它的R,G,B分量表示的,每个分量又经过量化,一个像素总的量化级数就是这个显示系统的颜色深度。量化级数越高,可以表示的颜色也就越多,最终的图像也就越逼真。当量化级数达到16位以上时,被称为真彩色。但是,量化级数越高,就需要越高的数据宽度,给处理器带来的负担也就越重;量化级数在8位以下时,所能表达的颜色又太少,不能够满足用户特定的需求。 为了解决这个问题,... 阅读全文
posted @ 2014-04-02 10:03 ITtecman 阅读(983) 评论(0) 推荐(0) 编辑
摘要:/* hash_sep.h */#ifndef _HASH_SEP_H#define _HASH_SEP_H#define MIN_TABLE_SIZE 5struct list_node;typedef struct list_node *position;struct hash_tbl;typedef struct hash_tbl *hash_table;typedef unsi... 阅读全文
posted @ 2014-04-01 08:55 ITtecman 阅读(432) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示