- 博客(30)
- 资源 (5)
- 收藏
- 关注
原创 smdk6410:uboot内存分配
注:以上显示的是虚拟地址,如0xC000_0000~0x5000_0000。linux内核运行入口物理地址为0x5000_8000,对于虚拟地址为0xC000_8000。oxC000_0000以前地址映射到外部存储器,如nand flash、sd卡。
2013-10-31 17:08:09 715
转载 关于u-boot中的.balignl 16,0xdeadbeef的理解
.balign解释.balign,编译器的一个伪操作符。伪操作符的意思就是机器码里,并没有一个汇编指令与其对应,是编译器来实现其功能的。如:.balign 8, 0xba意思是在以当前地址开始,在地址为8的倍数的位置的前面填入一个字节内容为0xba的内容。当当前地址正好是8的倍数,则没有东西被写入到内存。依此类推,.balignw则表示第二个参数存入的内容长度为一个
2013-10-30 11:12:34 838
原创 Source Insight3.5使用技巧
1)按住“Ctrl”,再用鼠标指向某个变量(或函数),点击一下,就能进入这个变量(或函数)的定义。2)Alt+F12:可以让显示界面中的每个字符宽度一致。3)Shift+F8:标亮所有文本中光标所在位置的单词。4)Ctrl+G或F5:跳到某一行。5)Ctrl+O:跳到工程窗口find文本框。6)F7:显示整个source insight工程的symbols参数(比如要查找的函数
2013-10-30 09:47:36 2449
原创 线程池
一、什么是线程池应用程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间来等待事件发生。其他线程可能进入睡眠状态,并且仅定期被唤醒以轮循更改或更新状态信息,然后再次进入休眠状态。为了简化对这些线程的管理,.NET框架为每个进程提供了一个线程池,一个线程池有若干个等待操作状态,当一个等待操作完成时,线程池中的辅助线程会执行回调函数。线程池中的线程由系统管理,程序员不需要费力于线程管理
2013-10-28 17:31:59 549
原创 时间编程
时间类型世界标准时间UTC(Coordinated Universal Time):即众所周知的格林威治标准时间(Greenwich Mean Time,GMT)。日历时间(Calendar Time):是用“从一个标准时间点(1970年1月1日0点)到此时经过的秒数”来表示的时间。时间获取#include time_t time(time_t *tloc)功能:获取日
2013-10-28 16:53:02 606
转载 bss段、data段和text段
在采用段式内存管理的架构中(比如intel的80x86系统),一个程序本质上都是由 bss段、data段、text段三个组成的。BSS段:BSS段(Block Started by Symbol segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。一般在初始化时bss 段部分将会清零(bss段属于静态内存分配,即程序一开始就将其清零了)。数据段:数据段(da
2013-10-25 15:05:35 795
原创 C++之基础练习题
C与C++的差异【题目1】C和C++中struct有什么区别?【参考答案】 Protection行为能否定义函数C无不能,但可以有函数指针C++private能【题目2】C++中的struct和class有什么区别?【参考答案】从语法上讲,class和
2013-10-25 14:34:54 3279 1
转载 C程序编译执行过程
编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序–>可执行文件1. 编译预处理读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理[
2013-10-23 17:34:19 745
原创 Shell学习笔记
Shell脚本第一行必须是如下格式:#!/bin/sh符号#!用来指定该脚本文件的解析程序。当编辑好脚本后,如果要执行该脚本,还必须使其具有可执行属性。可以用如下命令:chmod +x filename注释在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。如果使用了注释,即使相当长的时间内没有使用该脚本,也能在很短的时间内明白该脚本的作用及工作原理。变量
2013-10-22 21:55:13 605
原创 C语言练习之基础题
基本类型考察【题目1】请填写 bool , float, 指针变量 与“零值”比较的 if 语句。 提示:这里“零值”可以是 0, 0.0 , FALSE 或者“空指针” 。例如 int 变量 n 与“零值”比较的 if 语句为: if ( n == 0 ) if ( n != 0 ) 以此类推。(1)请写出 bool
2013-10-22 17:33:35 1459
原创 C++练习之程序编写
【程序1】题目:编写一个函数,函数接收一个字符串,是由十六进制数组成的一组字符串,函数的功能是把接到的这组字符串转换成十进制数字.并将十进制数字返回。参考答案:BOOL HexToDec(LPCTSTR shex, int& idec) { int i, mid; int len = lstrlen(shex); if(len>8) r
2013-10-22 12:21:53 1327 1
原创 C语言练习之程序编写
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。2.程序源代码:main(){ int i,j,k; printf("\n"); for(i=1; i<5; i++) /*以下为三重
2013-10-18 17:35:19 964
原创 struct dirent和DIR
struct dirent#include struct dirent{ long d_ino; //inode number 索引节点号 off_t d_off; //offset to this dirent 在目录文件中的偏
2013-10-17 17:12:38 1508
原创 struct termios
/*密码回显*的函数*/int inputpsword(char *pass){ int i, j; char inletter; struct termios term, termsave; //专门的结构体termios int fd = -1; fd = open("/dev/tty", O_RDWR | O_NOCTTY); //open一个tty句柄 if(fd
2013-10-16 09:16:37 1580
原创 各种内部排序的比较
各种内部排序按所采用的基本思想(策略)可分为:插入排序、交换排序、选择排序、归并排序和基数排序,它们的基本策略分别是:1 插入排序:依次将无序序列中的一个记录,按关键字值的大小插入到已排好序一个子序列的适当位置,直到所有的记录都插入为止。具体的方法有:直接插入、表插入、2-路插入和shell排序。2 交换排序:对于待排序记录序列中的记录,两两比较记录的关键字,并对反序的两个记录进行交换
2013-10-15 15:16:20 909
原创 基数排序
基数排序(Radix Sorting) 又称为桶排序或数字排序:按待排序记录的关键字的组成成分(或“位”)进行排序。排序思想⑴ 首先以静态链表存储n个待排序记录,头结点指针指向第一个记录结点; ⑵ 一趟排序的过程是: ① 分配: 按Kd值的升序顺序,改变记录指针,将链表中的记录结点分配到r个链表(桶)中,每个链表中所有记录的关键字的最低位(Kd)的值都相等,用f[i]
2013-10-15 15:00:38 871
原创 归并排序
归并排序算法链接排序思想① 初始时,将每个记录看成一个单独的有序序列,则n个待排序记录就是n个长度为1的有序子序列;② 对所有有序子序列进行两两归并,得到┏n/2┓个长度为2或1的有序子序列——一趟归并;③ 重复② ,直到得到长度为n的有序序列为止。 上述排序过程中,子序列总是两两归并,称为2-路归并排序。其核心是如何将相邻的两个子序列归并成一个子序列。设
2013-10-14 16:06:19 783
原创 堆排序
堆的定义是n个元素的序列H={k1, k2 , … kn} ,满足: 由堆的定义知,堆是一棵以k1为根的完全二叉树。若对该二叉树的结点进行编号(从上到下,从左到右),得到的序列就是将二叉树的结点以顺序结构存放,堆的结构正好和该序列结构完全一致。堆的性质① 堆是一棵采用顺序存储结构的完全二叉树, k1是根结点;② 堆的根结点是关键
2013-10-13 21:38:13 810
原创 直接选择排序
排序思想 选择排序: 每次从当前待排序的记录中选取关键字最小的记录表,然后与待排序的记录序列中的第一个记录进行交换,直到整个记录序列有序为止。 直接选择排序,也叫简单选择排序。 基本操作:通过n-i次关键字间的比较,从n-i+1个记录中选取关键字最小的记录,然后和第i个记录进行交换,i=1, 2, … n-1 。排序示例设有关键字序列为:7
2013-10-12 17:33:16 765
原创 快速排序
排序思想 通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录进行下一趟排序,以达到整个序列有序。排序过程 设待排序的记录序列是R[s…t] ,在记录序列中任取一个记录(一般取R[s])作为参照(又称为基准或枢轴),以R[s].key为基准重新排列其余的所有记录,方法是:◆所有关键字比基准小的
2013-10-11 17:30:38 1155
原创 冒泡排序
排序思想 依次比较相邻的两个记录的关键字,若两个记录是反序的(即前一个记录的关键字大于后前一个记录的关键字),则进行交换,直到没有反序的记录为止。① 首先将L->R[1]与L->R[2]的关键字进行比较,若为反序(L->R[1]的关键字大于L->R[2]的关键字),则交换两个记录;然后比较L->R[2]与L->R[3]的关键字,依此类推,直到L->R[n-1]与L->R[n]的关
2013-10-11 14:34:15 732
原创 插入排序
直接插入排序排序思想将待排序的记录Ri,插入到已排好序的记录表R1, R2 ,…., Ri-1中,得到一个新的、记录数增加1的有序表。 直到所有的记录都插入完为止。 设待排序的记录顺序存放在数组R[1…n]中,在排序的某一时刻,将记录序列分成两部分:◆ R[1…i-1]:已排好序的有序部分;◆ R[i…n]:未排好序的无序部分。 显然,在刚开始排序时
2013-10-11 10:24:49 792
原创 ok6410按键驱动与测试
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2013-10-07 23:04:55 639
转载 Madplay移植到OK6410全过程详解
madplay交叉编译交叉编译器:arm-linux-gcc 4.3.2PC环境:Red Hat 5.4注意:最好在root权限下执行以下移植,否则在make install时可能权限不够。一、移植madplay前的准备madplay的移植需要以下的几个包:libid3tag-0.15.1b.tar.gz、libmad-0.15.1b.tar.gz、madplay-0.15
2013-09-28 17:56:39 1359
原创 linux内核升级
linux内核升级下载内核解压内核源码压缩文件进入内核目录,执行清理工作配置内核编译内核模块安装内核模块制作initrd拷贝内核镜像bzImage和initrd到/boot修改grub配置文件,添加新的启动项保存该配置文件后重启计算机以下以fedora17内核升级到linux-3.4.5为例:1. 下载内核到Linux官方网站下载内核
2013-07-07 12:16:40 776
原创 Socket
Socket创建一个socket描述符int socket(int domain, int type, int protocol);返回一个套接字描述符;如果出错,则返回 -1。domain:即协议域,又称为协议族(family)。常用的协议族有,AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。
2013-06-08 22:25:28 636
原创 二叉树
二叉树一 二叉树的存储结构1.1 顺序存储结构#define MAX_SIZE 100typedef telemtype sqbitree[MAX_SIZE];1.2 链式存储结构typedef struct BTNode{ ElemType data ; struct BTNode *Lchild , *Rchild;}BTN
2013-05-28 17:25:57 1041
原创 队列
队列队列(Queue):是运算受限的线性表。是一种先进先出(First In First Out ,简称FIFO)的线性表。只允许在表的一端进行插入,而在另一端进行删除。队首(front) :允许进行删除的一端称为队首。队尾(rear) :允许进行插入的一端称为队尾。一 队列的静态顺序存储#define MAX_QUEUE_SIZE 100typedef struc
2013-05-28 15:19:08 770
原创 栈
栈栈(Stack):是限制在表的一端进行插入和删除操作的线性表。又称为后进先出LIFO (Last In First Out)或先进后出FILO (First In Last Out)线性表。栈顶(Top):允许进行插入、删除操作的一端,又称为表尾。用栈顶指针(top)来指示栈顶元素。栈底(Bottom):是固定端,又称为表头。空栈:当表中没有元素时称为空栈。一 栈的静态顺序存
2013-05-27 16:00:46 643
原创 线性表
线性表:顺序表和链表六种基本操作:InitList(&L) //构造一个空的线性表LListLength(L) //获取线性表L的元素个数GetNode(L, i) //获取线性表L第i个元素LocateNode(L, e) //查找线性表值为e的元素的位置ListInsert(
2013-05-25 21:26:40 828
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人