- 博客(39)
- 资源 (1)
- 收藏
- 关注
转载 U-BOOT环境变量实现 --转帖
1.相关文件common/env_common.c供u-boot调用的通用函数接口,它们隐藏了env的不同实现方式,比如dataflash, epprom, flash等 common/env_dataflash.cenv 存储在dataflash中的实现 common/env_epprom.cenv 存储在epprom中的实现 common/env_f
2010-01-19 09:38:00
1118
转载 u-boot源码分析 --- 启动第二阶段 ,基于2410 启动代码 分析
我们先来看初始化函数表: init_sequencelib_arm/board.c:typedef int (init_fnc_t) (void);init_fnc_t *init_sequence[] = { cpu_init, /* basic cpu dependent setup */ board_init, /* basic board
2010-01-19 09:37:00
776
转载 U-Boot如何为内核设置启动参数--转帖
大家都知道U-Boot启动的时候会将启动参数的地址放入R2中,然后再启动内核。我们看看这些参数是如何设置的。首先看两个重要的数据结构:第一个是global_data,定义在include/asm-arm/global_data.h文件中:typedef struct global_data { bd_t *bd; unsigned long flags;
2010-01-14 14:27:00
884
转载 uboot第2阶段分析 start_armboot--转帖
通过前面的分析,知道第2阶段代码主要是start_armboot,首先我们先介绍几个比较重要的结构体。这里主要是对start_armboot中的流程做具体的分析,我的uboot-2009-06.至于具体的代码分析将在后面的文章中介绍。1.gd_t全局数据结构,主要保存了uboot的配置信息。include/asm-arm/global_data.h中定义:typedef struct gl
2010-01-14 14:26:00
871
转载 U-boot-13.0-rc3 cpu/pxa/start.S 分析
#include #include #include //global声明一个符号可被其它文件引用,相当于声明了一个全局变量,.globl与.global相同。//该部分为处理器的异常处理向量表。地址范围为0x0000 0000 ~ 0x0000 0020,刚好8条指令。.globl _start_start: b reset ldr pc, _undefined_instruc
2010-01-13 21:57:00
720
转载 U-Boot的移植U-Boot Practically Porting Guide(转)
U-Boot的移植之(一)基础篇:添加新的目标板定义本文使用最新的U-Boot-1.3.0-rc2。U-Boot本身支持很多开发板,在其源代码中,每个板子都对应一个board/目录下的文件夹(笔者注:这并不确切,因为有的文件夹是供应商名称,下面可以有多个目标板目录,这里只考虑最简单的情况),以及include/configs/目录下的目标板配置头文件。因此,要添加U-Boot对我们的目标板的支
2010-01-13 21:29:00
787
转载 uboot-2009.01的start.S详细注解及分析
@参考天行者的vivi源码分析@参考两只蝴蝶的u-boot-1.1.6之cpu/arm920t/start.s分析/* * armboot - Startup Code for ARM920 CPU-core * * Copyright (c) 2001 Marius Gr鰃er * Copyright (c) 2002 Alex Z黳ke * Copyright (c) 2002 G
2010-01-13 21:23:00
859
转载 u-boot的Makefile详细分析-转帖
U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。U-BOOT的下载地址: http://sourceforge.net/projects/u-boot我下载的是1.1.6版本,一开始在FTP上下载了一个次新版,结果编译失败。1.1.6是没问题的。u-boot源码结构 解压就可以得到全部u
2010-01-06 21:58:00
773
转载 u-boot启动代码start.S详解-补充
U-BOOT一、U-BOOT的目录结构u-boot目录下有18个子目录,分别存放管理不通的源程序。这些目录中所要存放的文件有其规则,可以分成三类。■第一类目录与处理器体系结构或者开发板硬件直接相关;■第二类目录是一些通用的函数或者驱动程序;■第三类目录是u-boot的应用程序、工具或者文档。Board:和一些已有开发板相关的文件,比如Makefile和u-
2010-01-06 14:00:00
629
转载 u-boot启动代码start.S详解
u-boot启动代码start.S详解 1)定义入口。由于一个可执行的Image必须有一个入口点,并且只能有一个全局入口,通常这个入口放在ROM(Flash)的0x0地址,因此,必须通知编译器以使其知道这个入口,该工作可通过修改连接器脚本来完成。(2)设置异常向量(Exception Vector)。(3)设置CPU的速度、时钟频率及终端控制寄存器。(4)初
2010-01-06 13:59:00
928
转载 链接器脚本
****************************************************************************** 链接器脚本 ****************************************************************************** 链接器脚本控制每个链接过程,这种脚本使用链接器命令语言。 链接器的主
2010-01-06 13:05:00
1481
转载 U-Boot启动的函数调用过程(以arm926ejs为例)
调用链如下,后面是文字解说: reset -> cpu_init_crit -> lowlevel_init (板子相关) -> relocate (将U-boot重定位到RAM) -> stack_setup -> clear_bss -> start_armboot() (C程序) -> main_loop()
2010-01-06 13:04:00
771
转载 U-boot如何启动内核
我们用的u-boot已经改的面目全非,不过核心还是完全相同的,换了个面目而已。开源的好处,想改就改来玩玩。不过流程还是人家的。u-boot通过bootm命令来启动内核,这个命令的处理函数是do_bootm,这个函数处理的是uboot-mkimage制作的映像,如果正好这个映像是内核,那么它就会调用do_bootm_linux函数,并在该函数中给内核传递参数并调用内核入口函数来启动内核。下面就来
2010-01-06 13:00:00
974
转载 VC:CString用法整理(转载)
1.CString::IsEmpty BOOL IsEmpty( ) const; 返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。 说明:此成员函数用来测试一个CString 对象是否是空的。 示例: 下面的例子说明了如何使用CString::IsEmpty。 // CString::IsEmpty 示例 CString s; ASSER
2009-09-21 13:49:00
382
转载 串口通讯流控制
串口通讯流控制 我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于MODEM的数据通讯中,但对普通RS-232编程,了解一点这方面的知识是有好处的.那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?这里我们就来谈谈这个问题。流控制在串行通讯中的作用:这里讲到的"流",当然指的是数据流.数据在两
2009-09-07 10:44:00
962
转载 GPRS开发资源
http://www.cppblog.com/zhangyq/archive/2008/08/07/58148.htmlhttp://www.mcuol.com/tech/117/29691.htmhttp://topic.youkuaiyun.com/t/20061013/19/5081106.htmlhttp://topic.youkuaiyun.com/u/20080916/20/3F0CAC0F-C4DF-4D1
2009-08-27 15:46:00
579
转载 C语言中的可变参数
我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的,例如我们可以有以下不同的调用方法: printf("%d",i); printf("%s",s); printf("the num
2009-08-26 19:45:00
430
转载 标准C获得文件大小的5种方法
2009-08-26 16:46#include "stdafx.h"#include #include #include int getfilesize(){ int iresult; struct _stat buf; iresult = _stat(__FILE__,&buf); if(iresult == 0) {
2009-08-26 19:39:00
773
转载 extern 用法小结
2009-08-26 15:18extern 用法 2007-09-04 19:22:05 1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6];
2009-08-26 19:27:00
417
转载 const,static,extern,volatile的用法
2009-04-26 22:131.const的用法:为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替)用法1:常量取代了C中的宏定义,声明时必须进行初始化。const限制了常量的使用方式,并没有描述常量应该如何分配。如
2009-08-26 19:26:00
406
转载 IEEE浮点数表示法
IEEE浮点数表示法-------------------------------------------------float 共计32位(4字节)由最高到最低位分别是第31、30、29、......、0位31位是符号位,1表示该数为负,0反之30~23位,一共8位是指数位(-128~127)22~ 0位,一共23位是尾数位每8位分为一组,分成4组,分别是A组、 B组、 C组、
2009-08-26 19:22:00
642
转载 static用法小结
引用:static用法小结 2007-09-02 09:03:37 static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准). (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 下面就这三种使用方式及注意事项分别说明 一、局部静态变量 在C/
2009-08-26 19:21:00
336
转载 sprintf 的用法
sprintf 将字串格式化。 在头文件 #include中 语法: string sprintf(string format, mixed [args]...); 传回值: 字串 1. 处理字符方向。-负号时表时从后向前处理。 2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。 3. 字符总宽度。为最小宽度。 4. 精确度。指在小数
2009-08-26 19:17:00
359
转载 常用数据类型使用转换详解
读者层次:初学刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。我们先定义一些常见类型变量借以说明int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;CString str;_variant_t
2009-08-26 19:15:00
345
转载 C++字符串拷贝函数(所有性能已在g++和vc下测试)
1. void bcopy(const void *src, void *dest, size_t n);功能: 拷贝n字节内容从src到dest说明: 该函数在内存重叠情况下仍然正常,该函数建议不再使用,而是用memcpy代替返回值: 无 2. void *memcpy(void *dest, const void *src, size_t n);功能: 拷贝n字节内容从
2009-08-26 19:11:00
865
转载 vc字符串函数大全
bcmp(比较内存内容) 相关函数 bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp表头文件 #include定义函数 int bcmp ( const void *s1,const void * s2,int n);函数说明 bcmp()用来比较s1和s2所指的内存区间前n个字节,若参数n为0,则返回0。返回值
2009-08-26 19:09:00
518
转载 VC CString 字符串处理函数的应用
CString 里的一些函数与VB里字符串处理的函数很多都是类似的。1.CString::IsEmptyBOOL IsEmpty( ) const;返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。说明:此成员函数用来测试一个CString 对象是否是空的。示例:下面的例子说明了如何使用CString::IsEmpty。// CS
2009-08-26 19:07:00
496
转载 VC中字符串和数字转换的函数
http://blog.chinaunix.net/u1/42145/showart_327438.htmlvc中字符串和数字转换的函数:atoi,atol,strtod,strtol,strtoul 类型转换 atoi,atol,strtod,strtol,strtoul实现类型转换atof(将字符串转换成浮点型数)相关函数atoi,atol,strtod,strtol,
2009-08-26 19:02:00
523
转载 深入浅出VC++串口编程之基于Win32 API
http://dev.yesky.com/401/2308901.shtml1、API描述 在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致。 打开串口 Win32 中用于打开串口的API 函数为CreateFile,其原型为:HANDLE CreateFile ( LPCTSTR lpFileName, /
2009-08-26 19:01:00
521
转载 CreateEvent的用法
HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // SD BOOL bManualReset, // reset type
2009-08-26 18:56:00
5440
转载 COMMTIMEOUTS结构
COMMTIMEOUTS:COMMTIMEOUTS主要用于串口超时参数设置。COMMTIMEOUTS结构如下: typedef struct _COMMTIMEOUTS { DWORD ReadIntervalTimeout; DWORD ReadTotalTimeoutMultiplier; DWORD ReadTotalTimeoutConstant; DWORD WriteTotalTime
2009-08-26 18:55:00
718
转载 串口通讯中的DCB结构
typedef struct _DCB { // dcb DWORD DCBlength; // sizeof(DCB) DWORD BaudRate; // current baud rate 指定当前的波特率 DWORD fBinary: 1; // binary mode, no
2009-08-26 18:53:00
557
转载 使用Visual C++进行串口通信编程--2
(3) 串行数据的发送和接收与普通的文件操作相同,在对串行口进行操作时,通常利用ReadFile函数读取串行口收到的数据,利用WriteFile将需要发送的数据写如串行口。n 串行数据的接收利用ReadFile函数可以读取将串行口接收到的数据。ReadFile函数原型如下:BOOL ReadFile(HANDLE hFileLPVIOD lpBuff
2009-08-26 18:51:00
986
转载 使用Visual C++进行串口通信编程--1
利用Visual C++在windows环境下设计异步串行通信程序可以使用不同的方法。一种方法可以使用windows系统提供的串行口API函数;另一种方法可以直接使用Microsoft公司提供的ActiveX控件MSCOMM.OCX。利用MSCOMM.OCX控件进行串行口程序设计相对比较简单,只要对该控件的属性、事件和方法进行设置和操作,就能完成简单的串行通信功能。而直接使用windows系
2009-08-26 18:43:00
931
转载 常用数据类型使用转换详解
转贴:(不是俺 写的) 常用数据类型使用转换详解 作者:程佩君 -------------------------------------------------------------------------------- 读者层次:初学 刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文
2009-08-18 20:43:00
370
转载 CString Char Byte之间的转换
在VC中,CSTRING类的用法形式多样,丰富多彩.但有时与传统数据类型之间的转换成为了很多人的难题.下面我来简单介绍它们之间的关系.1 如何实现cstring与char*之间的转换: CString m_cstr="abc"; char* m_char="def"; char* lp=m_cstr.GetBuffer(m_cstr.GetLeng
2009-08-14 10:14:00
939
转载 MFC C++/C 中的String char CString Int 之间的转换
CString,int,string,char*之间的转换 string 转 CString CString.format("%s", string.c_str()); char 转 CString CString.format("%s", char*); char 转 string string s(char *); str
2009-08-10 21:18:00
624
原创 输入一组数,输出其中有多少个负数。
1.输入一组数,输出其中有多少个负数。 程序代码如下:#include int main(){ int sum = 0, value; std::cout while (std::cin >> value) { if (value sum++; } } std::cout return 0;} 2. 提示用户输入两个数,并将这两个数之间的每个数输出。
2009-07-23 18:32:00
1658
转载 关于For循环的学习
请比较下面两个FOR循环的优缺点 1.for(i=1;i{ if(condition) dosomething(); else dootherthing();}2.if(condition){for (i=1;i dosomething()}else{for (i=1;i dootherthing()} 解答:其实这2段代码的效率问题是差不多的,因为要判
2009-07-22 20:00:00
561
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人