搜档网
当前位置:搜档网 › 嵌入式Linux之我行 史上最牛最详细的uboot移植,不看别后悔

嵌入式Linux之我行 史上最牛最详细的uboot移植,不看别后悔

嵌入式Linux之我行 史上最牛最详细的uboot移植,不看别后悔
嵌入式Linux之我行 史上最牛最详细的uboot移植,不看别后悔

嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(一)

嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux 的朋友提供方便。如有错误之处,谢请指正。

?共享资源,欢迎转载:https://www.sodocs.net/doc/2e10884439.html,

一、移植环境

?主机:VMWare--Fedora 9

?开发板:Mini2440--64MB Nand,Kernel:2.6.30.4

?编译器:arm-linux-gcc-4.3.2.tgz

?u-boot:u-boot-2009.08.tar.bz2

二、移植步骤

本次移植的功能特点包括:

?支持Nand Flash读写

?支持从Nor/Nand Flash启动

?支持CS8900或者DM9000网卡

?支持Yaffs文件系统

?支持USB下载(还未实现)

1.了解u-boot主要的目录结构和启动流程,如下图。

u-boot的stage1代码通常放在cpu/xxxx/start.S文件中,他用汇编语言写成;u-boot的stage2代码通常放在lib_xxxx/board.c文件中,他用C语言写成。各个部分的流程图如下:

2. 建立自己的开发板项目并测试编译。

目前u-boot对很多CPU直接支持,可以查看board目录的一些子目录,如:board/samsung/目录下就是对三星一些ARM 处理器的支持,有smdk2400、smdk2410和smdk6400,但没有2440,所以我们就在这里建立自己的开发板项目。

1)因2440和2410的资源差不多,主频和外设有点差别,所以我们就在board/samsung/下建立自己开发板的项目,取名叫my2440

2)因2440和2410的资源差不多,所以就以2410项目的代码作为模板,以后再修改

3)修改u-boot跟目录下的Makefile文件。查找到smdk2410_config的地方,在他下面按照smdk2410_config的格式建立my2440_config的编译选项,另外还要指定交叉编译器

4)测试编译新建的my2440开发板项目

到此为止,u-boot对自己的my2440开发板还没有任何用处,以上的移植只是搭建了一个my2440开发板u-boot的框架,要使其功能实现,还要根据my2440开发板的具体资源情况来对u-boot源码进行修改。

3. 根据u-boot启动流程图的步骤来分析或者修改添加u-boot源码,使之适合my2440开发板(注:修改或添加的地方都用红色表示)。

1)my2440开发板u-boot的stage1入口点分析。

一般在嵌入式系统软件开发中,在所有源码文件编译完成之后,链接器要读取一个链接分配文件,在该文件中定义了程序的入口点,代码段、数据段等分配情况等。那么我们的my2440开发板u-boot的这个链接文件就是cpu/arm920t/u-boot.lds,打开该文件部分代码如下:

知道了程序的入口点是_start,那么我们就打开my2440开发板u-boot第一个要运行的程序cpu/arm920t/start.S(即u-boot 的stage1部分),查找到_start的位置如下:

从这个汇编代码可以看到程序又跳转到start_code处开始执行,那么再查找到start_code处的代码如下:

由此可以看到,start_code处才是u-boot启动代码的真正开始处。以上就是u-boot的stage1入口的过程。

2)my2440开发板u-boot的stage1阶段的硬件设备初始化。

由于在u-boot启动代码处有两行是AT91RM9200DK的LED初始代码,但我们my2440上的LED资源与该开发板的不一致,所以我们要删除或屏蔽该处代码,再加上my2440的LED驱动代码(注:添加my2440 LED功能只是用于表示u-boot运行的状态,给调试带来方便,可将该段代码放到任何你想调试的地方),代码如下:

/*bl coloured_LED_init//这两行是AT91RM9200DK开发板的LED初始化,注释掉bl red_LED_on*/

#if defined(CONFIG_S3C2440)//区别与其他开发板

//根据mini2440原理图可知LED分别由S3C2440的PB5、6、7、8口来控制,以下是PB 端口寄存器基地址(查2440的DataSheet得知)

#define GPBCON 0x56000010

#define GPBDAT 0x56000014

#define GPBUP 0x56000018

//以下对寄存器的操作参照S3C2440的DataSheet进行操作

ldr r0, =GPBUP

ldr r1, =0x7FF //即:二进制11111111111,关闭PB口上拉

str r1, [r0]

ldr r0, =GPBCON //配置PB5、6、7、8为输出口,对应PBCON寄存器的第10-17位 ldr r1, =0x154FD //即:二进制010101010011111101

str r1, [r0]

ldr r0, =GPBDAT

ldr r1, =0x1C0 //即:二进制111000000,PB5设为低电平,6、7、8为高电平

str r1, [r0]

#endif

//此段代码使u-boot启动后,点亮开发板上的LED1,LED2、LED3、LED4不亮

在include/configs/my2440.h头文件中添加CONFIG_S3C2440宏

现在编译u-boot,在根目录下会生成一个u-boot.bin文件。然后我们利用mini2440原有的supervivi把u-boot.bin下载到RAM中运行测试(注意:我们使用supervivi进行下载时已经对CPU、RAM进行了初始化,所以我们在u-boot中要屏蔽掉对CPU、RAM的初始化),如下:

下载运行后可以看到开发板上的LED灯第一了亮了,其他三个熄灭,测试结果符合上面的要求。终端运行结果如下:

3)在u-boot中添加对S3C2440一些寄存器的支持、添加中断禁止部分和时钟设置部分。

由于2410和2440的寄存器及地址大部分是一致的,所以这里就直接在2410的基础上再加上对2440的支持即可,代码如下:

# endif

# if defined(CONFIG_S3C2440)//添加s3c2440的中断禁止部分

ldr r1, =0x7fff //根据2440芯片手册,INTSUBMSK寄存器有15位可用ldr r0, =INTSUBMSK

str r1, [r0]

# endif

# if defined(CONFIG_S3C2440) //添加s3c2440的时钟部分

#define MPLLCON 0x4C000004 //系统主频配置寄存器基地址

#define UPLLCON 0x4C000008 //USB时钟频率配置寄存器基地址

ldr r0, =CLKDIVN //设置分频系数FCLK:HCLK:PCLK = 1:4:8

mov r1, #5

str r1, [r0]

ldr r0, =MPLLCON //设置系统主频为405MHz

ldr r1, =0x7F021 //这个值参考芯片手册“PLL VALUE SELECTION TABLE”部分

str r1, [r0]

ldr r0, =UPLLCON //设置USB时钟频率为48MHz

ldr r1, =0x38022 //这个值参考芯片手册“PLL VALUE SELECTION TABLE”部分

str r1, [r0]

#else //其他开发板的时钟部分,这里就不用管了,我们现在是做2440的

/* FCLK:HCLK:PCLK = 1:2:4 */

/* default FCLK is 120 MHz !*/

ldr r0,=CLKDIVN

mov r1, #3

str r1,[r0]

# endif

S3C2440的时钟部分除了在start.S中添加外,还要分别在board/samsung/my2440/my2440.c和cpu/arm920t/s3c24x0/speed.c中修改或添加部分代码,如下:

#if defined(CONFIG_S3C2440)

if(pllreg == MPLL)

{ //参考S3C2440芯片手册上的公式:PLL=(2 * m * Fin)/(p * 2s)

return((CONFIG_SYS_CLK_FREQ * m * 2) / (p << s));

}

#endif

return((CONFIG_SYS_CLK_FREQ * m)/(p << s));

}

/* return HCLK frequency */

ulong get_HCLK(void)

{

S3C24X0_CLOCK_POWER *const clk_power = S3C24X0_GetBase_CLOCK_POWER();

#if defined(CONFIG_S3C2440)

return(get_FCLK()/4);

#endif

return((clk_power->CLKDIVN & 0x2)? get_FCLK()/2 : get_FCLK());

}

好了!修改完毕后我们再重新编译u-boot,然后再下载到RAM中运行测试。结果终端有输出信息并且出现类似Shell的命令行,这说明这一部分移植完成。示意图如下:

4)准备进入u-boot的第二阶段(在u-boot中添加对我们开发板上Nor Flash的支持)。

通常,在嵌入式bootloader中,有两种方式来引导启动内核:从Nor Flash启动和从Nand Flash启动。u-boot中默认是从Nor Flash启动,再从上一节这个运行结果图中看,还发现几个问题:第一,我开发板的Nor Flash是2M的,而这里显示的是512kB;第二,出现Warning - bad CRC, using default environment的警告信息。不是u-boot默认是从Nor Flash启动的吗?为什么会有这些错误信息呢?这是因为我们还没有添加对我们自己的Nor Flash的支持,u-boot默认的是其他型号的Nor Flash,而我们的Nor Flash的型号是SST39VF1601。另外怎样将命令行提示符前面的SMDK2410变成我自己定义的呢?

下面我们一一来解决这些问题,让u-boot完全对我们Nor Flash的支持。首先我们修改头文件代码如下:

#if 0//注释掉下面两个类型的Nor Flash设置,因为不是我们所使用的型号

#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */

#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */

#endif

#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of memory banks */

#ifdef CONFIG_AMD_LV800

#define PHYS_FLASH_SIZE 0x00100000 /* 1MB */

#define CONFIG_SYS_MAX_FLASH_SECT (19) /* max number of sectors on one chip */

#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE +

0x0F0000)/* addr of environment */

#endif

#ifdef CONFIG_AMD_LV400

#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */

#define CONFIG_SYS_MAX_FLASH_SECT (11)/* max number of sectors on one chip */

#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE +

0x070000)/* addr of environment */

#endif

#define CONFIG_SST_39VF1601 1//添加mini2440开发板Nor Flash 设置

#define PHYS_FLASH_SIZE 0x200000//我们开发板的Nor Flash是

然后添加对我们mini2440开发板上2M的Nor Flash(型号为SST39VF1601)的支持。在u-boot中对Nor Flash的操作分别有初始化、擦除和写入,所以我们主要修改与硬件密切相关的三个函数flash_init、flash_erase、write_hword,修改代码如下:

(AMD_ID_LV800B & FLASH_TYPEMASK);

#elif defined(CONFIG_SST_39VF1601)//在CONFIG_AMD_LV800后面添加CONFIG_SST_39VF1601

(SST_MANUFACT & FLASH_VENDMASK) |

(SST_ID_xF1601 & FLASH_TYPEMASK);

for(j = 0; j < flash_info[i].sector_count; j++){

//if (j <= 3) {

// /* 1st one is 16 KB */

// if (j == 0) {

// flash_info[i].start[j] = flashbase + 0;

// }

// /* 2nd and 3rd are both 8 KB */

// if ((j == 1) || (j == 2)) {

// flash_info[i].start[j] = flashbase + 0x4000 + (j - 1) * 0x2000;

// }

// /* 4th 32 KB */

// if (j == 3) {

// flash_info[i].start[j] = flashbase + 0x8000;

// }

//} else {

// flash_info[i].start[j] = flashbase + (j - 3) * MAIN_SECT_SIZE;

//}

flash_info[i].start[j] = flashbase + j * MAIN_SECT_SIZE;

}

//修改flash_print_info函数如下:

case(AMD_MANUFACT & FLASH_VENDMASK):

printf("AMD: ");

break;

case (SST_MANUFACT & FLASH_VENDMASK)://添加SST39VF1601的printf ("SST:");

break;

case(AMD_ID_LV800B & FLASH_TYPEMASK):

printf("1x Amd29LV800BB (8Mbit)\n");

break;

case(SST_ID_xF1601 & FLASH_TYPEMASK)://添加SST39VF1601的printf("1x SST39VF1610 (16Mbit)\n");

break;

//修改flash_erase函数如下:

//if ((info->flash_id & FLASH_VENDMASK) !=

// (AMD_MANUFACT & FLASH_VENDMASK)) {

// return ERR_UNKNOWN_FLASH_VENDOR;

//}

if ((info->flash_id & FLASH_VENDMASK) !=

(SST_MANUFACT & FLASH_VENDMASK)) {

return ERR_UNKNOWN_FLASH_VENDOR;

}

///* wait until flash is ready */

//chip = 0;

//do {

// result = *addr;

// /* check timeout */

// if (get_timer_masked () >

// CONFIG_SYS_FLASH_ERASE_TOUT) {

// MEM_FLASH_ADDR1 = CMD_READ_ARRAY; // chip = TMO;

// break;

// }

// if (!chip

// && (result & 0xFFFF) & BIT_ERASE_DONE)

// chip = READY;

// if (!chip

// && (result & 0xFFFF) & BIT_PROGRAM_ERROR) // chip = ERR;

//} while (!chip);

//MEM_FLASH_ADDR1 = CMD_READ_ARRAY;

//if (chip == ERR) {

// rc = ERR_PROG_ERROR;

// goto outahere;

//}

//if (chip == TMO) {

// rc = ERR_TIMOUT;

// goto outahere;

//}

while (1)

{

if ((*addr & 0x40) != (*addr & 0x40))

continue;

if (*addr & 0x80)

{

rc = ERR_OK;

break;

}

}

//修改write_hword函数如下:

MEM_FLASH_ADDR1 = CMD_UNLOCK1;

MEM_FLASH_ADDR2 = CMD_UNLOCK2;

//MEM_FLASH_ADDR1 = CMD_UNLOCK_BYPASS;

MEM_FLASH_ADDR1 = CMD_PROGRAM;

//*addr = CMD_PROGRAM;

*addr = data;

///* wait until flash is ready */

//chip = 0;

//do {

// result = *addr;

// /* check timeout */

// if (get_timer_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) { // chip = ERR | TMO;

// break;

// }

linux笔记

1.ls:查看当前路径下的文件以及文件夹的名字 2.ls /bin:查看根目录下的bin文件夹的东西 3.cd Desktop进入到Desktop文件夹 4.cd ..跳转到当前路径的上一层 5.pwd:显示当前操作的路径(绝对路径) 6.clear:清屏 7.绝对路径:/home/python 8.相对路径:cd downloads 9..表示当前路径 10...表示上一层路径 11.c d -:跳转到上一层所在的路径 12.t ab自动补全 13.t ouch 1.txt 创建文件 14.l s * 表示显示所有文件 15.l s *.txt 表示显示以所有.txt结尾的文件 16.l s*.t[xn]t 表示显示以txt或者tnt结尾的所有文件 17.m ore 查看文件的内容 18.l s–alh | more 查看文件的内容并以管道符号进行连接 19.c d ~切换到当前用户的主目录 20.m kdir 创建文件夹 21.m kdira/b/c –p 连续创建文件夹 22.t ree 以目录数的方式显示

23.r mdir 删除文件夹(必须是空目录) 24.实物图操作的文件不会被删除直接进回收站 25.用命令删除的文件是不会进入回收站的 26.r m 删除文件/文件夹 27.r m haha.txt –r 直接删除文件夹(-r表示递归的删除) 28.r m haha.txt –i 给将删除的文件一个删除提示 29.r m haha.txt –f 强制删除 30.l inux建立链接影响(相当于创建windows下的快捷方式) 31.l n 01.txt 创建快捷方式 32.g edit 01.txt 编辑文件的内容 33.c at 01.txt 查看所编辑的内容 34.c at 01.txt > 02.txt 合并文件 35.g rep–n ‘a’grep.txt 搜素文件当中带a的文件 36.g rep–i ‘a’grep.txt搜素文件当中带a的文件(忽略大小写) 37.–-help 查找帮助文档 38.f ind 查找文件 39.c p a b 将a文件下的内容整体复制到b文件夹下(无效的文 件无法复制) 40.c p a/* b 将a文件夹下的所有内容复制到b文件夹下 41.m v a b 将a文件夹整体移动到b文件夹下 42.–v 显示移动进度 43.–I 表示操作的时候显示的提示(y表示确定)

什么是嵌入式linux系统

什么是嵌入式linux系统? 一、什么是嵌入式linux? Linux从1991年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一,不仅可以与各种传统的商业操作系统分庭抗争,在新兴的嵌入式操作系统领域内也获得了飞速发展。嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几K或者几M字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。嵌入式Linux既继承了intelnet上无限的开放原代码资源,又具有嵌入式操作系统的特性。 二、嵌入式Linux的特点版权费:免费; 购买费用:媒介成本; 技术支持:全世界的自由软件开发者提供支持; 网络特性:免费而且性能优异; 软件移植:容易,代码开放,有许多应用软件支持; 应用产品开发周期:短,新产品上市迅速,因为有许多公开的代码可以参考和移植; 实时性能:RT_Linux,hardhat Linux 等嵌入式Linux支持实时性能; 稳定性:好; 安全性:好。 三、嵌入式Linux的市场前景和商业机会 嵌入式Linux有巨大的市场前景和商业机会,出现了大量的专业公司和产品,如Montavista、Lineo、Emi等。有行业协会,如Embedded Linux Consortum等。得到世界著名计算机公司和oem板级厂商的支持,例如IBM、Motorola、Intel等。传统的嵌入式系统厂商也采用了Linux策略如Lynxworks 、Windriver、QNX等。还有intelnet上的大量嵌入式Linux 爱好者的支持。嵌入式Linux支持几乎所有的嵌入式cpu和被移植到几乎所有的嵌入式oem板。 四、嵌入式Linux的应用领域嵌入式Linux的应用领域非常广泛,主要的应用领域有,信息家电:PDA,STB-Set-stopbox,Digital Telephone,Answering Machine,Screen Phone、数据网络:Ethernet switches,Router,Bridge,Hub,Remote access servers,ATM,Frame relay、远程通信、医疗电子、交通运输、计算机外设、工业控制、航空领域等。 五、嵌入式linux的优势嵌入式Linux的开发和研究是操作系统领域中的一个热点,目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。Linux之所以能在嵌入式系统市场上取得如此辉煌的成果,与其

Tiny6410_Uboot移植步骤详解

Uboot_for_Tiny6410_移植步骤详解 一、设计要求 1.目的 1)掌握U-boot剪裁编写 2)掌握交叉编译环境的配置 3)掌握U-boot的移植 2.实现的功能 1)U-boot编译成功 2)移植U-boot,使系统支持从NAND FLASH启动 二、设计方案 1.硬件资源 1)ARM处理器:ARM11芯片(Samsung S3C6410A),基于ARM1176JZF-S核设 计,运行频率533Mhz,最高可达 667Mhz 2)存储器:128M DDR RAM,可升级至 256M;MLC NAND Flash(2GB) 3)其他资源:具有三LCD接口、4线电阻 触摸屏接口、100M标准网络接口、标准DB9 五线串口、Mini USB2.0接口、USB Host 1.1、3.5mm音频输入输出口、标准TV-OUT

接口、SD卡座、红外接收等常用接口;另外 还引出4路TTL串口,另1路TV-OUT、 SDIO2接口(可接SD WiFi)接口等;在板的 还有蜂鸣器、I2C-EEPROM、备份电池、A D 可调电阻、8个中断式按键等。 2.软件资源 1)arm-linux-gcc-4.5.1(交叉编译) 2)u-boot-2010.09.tar.gz arm-linux-gcc-4.5.1-v6-vfp-20101103.t gz 三、移植过程 1.环境搭建 1)建立交叉编译环境 2)去这2个网站随便下载都可以下载得到最 新或者你想要的u-boot。( https://www.sodocs.net/doc/2e10884439.html,/batch.viewl ink.php?itemid=1694 ftp://ftp.denx.de/pub/u-boot/ )

一篇非常好的linux学习笔记分享(Linux入门绝佳)

作者:佚名字体:[增加减小] 来源:互联网时间:03-06 21:54:44我要评论 一篇非常好的linux学习笔记分享,对于常用命令整理的比较详细,推荐使用。 linux目录架构 / 根目录 /bin 常用的命令binary file 的目錄 /boot 存放系统启动时必须读取的档案,包括核心(kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需RAM Disk /dev 系统周边设备 /etc 系统相关设定文件 /etc/DIR_COLORS 设定颜色 /etc/HOSTNAME 设定用户的节点名 /etc/NETWORKING 只有YES标明网络存在 /etc/host.conf 文件说明用户的系统如何查询节点名 /etc/hosts 设定用户自已的IP与名字的对应表 /etc/hosts.allow 设置允许使用inetd的机器使用 /etc/hosts.deny 设置不允许使用inetd的机器使用 /etc/hosts.equiv 设置远端机不用密码 /etc/inetd.conf 设定系统网络守护进程inetd的配置 /etc/gateways 设定路由器 /etc/protocols 设定系统支持的协议 /etc/named.boot 设定本机为名字服务器的配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 设置IP /etc/resolv.conf 设置DNS /etc/X11 X Window的配置文件,xorg.conf 或XF86Config 這兩個X Server 的設定檔/etc/fstab 记录开机要mount的文件系统 /etc/inittab 设定系统启动时init进程将把系统设置成什么样的runlevel /etc/issue 记录用户登录前显示的信息 /etc/group 设定用户的组名与相关信息 /etc/passwd 帐号信息 /etc/shadow 密码信息 /etc/sudoers 可以sudo命令的配置文件 /etc/securetty 设定哪些终端可以让root登录 /etc/login.defs 所有用户登录时的缺省配置

嵌入式Linux之我行 史上最牛最详细的uboot移植,不看别后悔

嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(一) 嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux 的朋友提供方便。如有错误之处,谢请指正。 ?共享资源,欢迎转载:https://www.sodocs.net/doc/2e10884439.html, 一、移植环境 ?主机:VMWare--Fedora 9 ?开发板:Mini2440--64MB Nand,Kernel:2.6.30.4 ?编译器:arm-linux-gcc-4.3.2.tgz ?u-boot:u-boot-2009.08.tar.bz2 二、移植步骤 本次移植的功能特点包括: ?支持Nand Flash读写 ?支持从Nor/Nand Flash启动 ?支持CS8900或者DM9000网卡 ?支持Yaffs文件系统 ?支持USB下载(还未实现) 1.了解u-boot主要的目录结构和启动流程,如下图。

u-boot的stage1代码通常放在cpu/xxxx/start.S文件中,他用汇编语言写成;u-boot的stage2代码通常放在lib_xxxx/board.c文件中,他用C语言写成。各个部分的流程图如下:

2. 建立自己的开发板项目并测试编译。 目前u-boot对很多CPU直接支持,可以查看board目录的一些子目录,如:board/samsung/目录下就是对三星一些ARM 处理器的支持,有smdk2400、smdk2410和smdk6400,但没有2440,所以我们就在这里建立自己的开发板项目。 1)因2440和2410的资源差不多,主频和外设有点差别,所以我们就在board/samsung/下建立自己开发板的项目,取名叫my2440 2)因2440和2410的资源差不多,所以就以2410项目的代码作为模板,以后再修改

UBoot移植详解

u-boot 移植步骤详解 1 U-Boot简介 U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux 系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。其目前要支持的目标操作系统是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。就目前来看,U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。其它系列的处理器和操作系统基本是在2002年11 月PPCBOOT 改名为U-Boot后逐步扩充的。从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人德国DENX软件工程中心Wolfgang Denk[以下简称W.D]本人精湛专业水平和持着不懈的努力。当前,U-Boot项目正在他的领军之下,众多有志于开放源码BOOT LOADER移植工作的嵌入式开发人员正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入,以支持更多的嵌入式操作系统的装载与引导。 选择U-Boot的理由: ①开放源码; ②支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS; ③支持多个处理器系列,如PowerPC、ARM、x86、MIPS、XScale; ④较高的可靠性和稳定性; ④较高的可靠性和稳定性; ⑤高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等; ⑥丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等; ⑦较为丰富的开发调试文档与强大的网络技术支持; 2 U-Boot主要目录结构 - board 目标板相关文件,主要包含SDRAM、FLASH驱动; - common 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;

ubuntu学习linux笔记

使用Xshell连接Ubuntu Xshell是一个安全终端模拟软件,可以进行远程登录。我使用XShell的主要目的是在Windows环境下登录Linux终端进行编码,非常方便。本文简单介绍下它的使用方法。 1.下载后在安装时选择个人/学校免费版即可。 2.安装完毕后先在要连接的Ubuntu主机下开启SSH服务,如果没有开启需要安装openssh-server: sudo apt-get install openssh-server 使用ps -e | grep ssh,如果只有ssh-agent表示还没启动,需要/etc/init.d/ssh start;有sshd说明已启动。 3.打开Xshell,选择“新建”,“连接”设置里选择SSH,主机填入需要连接的主机的IP 地址。 在“用户身份验证”中填入可用的登录Ubuntu的用户名和密码。 设置完这两步就可以使用XShell控制Ubuntu主机了。 4.中文乱码的解决方法: 在确认Ubuntu支持中文的前提下(即,直接使用Ubuntu可以显示中文),在“文件”菜单的“属性”中选择“终端”,“编码”选择“UTF-8”,并勾选“韩中日语言中的不确定字符处理为宽字符”,重新连接即可。还有一种解决方式,不过本人没有试过 (https://www.sodocs.net/doc/2e10884439.html,/s/blog_65d642220100kjqi.html): [root@localhost ~]# cd /etc/sysconfig/ [root@localhost sysconfig]# cp i18n i18n.bak #备份i18n文件 [root@localhost sysconfig]# echo "" >i18n [root@localhost sysconfig]# vi i18n #加入以下内容 LANG="zh_CN.GB18030" LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en" SYSFONT="lat0-sun16" 重新连接后中文显示正常 Linux 防火墙关闭启用 1) 重启后生效 开启:chkconfig iptables on 关闭:chkconfig iptables off

i.MX6UL -- Linux系统移植过程详解(最新的长期支持版本)

i.MX6UL -- Linux系统移植过程详解(最新的长期支持版本) ?开发平台:i.MX 6UL ?最新系统: u-boot2015.04 + Linux4.1.15_1.2.0 ?交叉编译工具:dchip-linaro-toolchain.tar.bz2 源码下载地址: U-Boot: (选择rel_imx_4.1.15_1.2.0_ga.tar.bz2) https://www.sodocs.net/doc/2e10884439.html,/git/cgit.cgi/imx/uboot-imx.git/ Kernel: (选择rel_imx_4.1.15_1.2.0_ga.tar.bz2) https://www.sodocs.net/doc/2e10884439.html,/git/cgit.cgi/imx/linux-2.6-imx.git/ 源码移植过程: 1、将linux内核及uBoot源码拷贝到Ubuntu12.04系统中的dchip_imx6ul目录下; 2、使用tar命令分别将uboot和kernel解压到dchip_imx6ul目录下; 3、解压后进入uboot目录下,新建文件make_dchip_imx6ul_uboot201504.sh,且文件内容如下: ################################################################### # Build U-Boot.2015.04 For D518--i.MX6UL By FRESXC # ################################################################### #!/bin/bash export ARCH=arm export CROSS_COMPILE=/dchip-linaro-toolchain/bin/arm-none-linux-gnueabi - make mrproper # means CLEAN make mx6ul_14x14_evk_defconfig make2>&1|tee built_dchip_imx6ul_uboot201504.out 4进入kernel目录下,新建文件make_dchip_imx6ul_linux4115120.sh,且文件内容如下: ###################################################################

linux基本命令学习笔记

一、常用系统工作命令 1.echo 用于在终端输出字符串或者变量提取后的值 2.date 用于显示系统的时间或者日期 date "+%Y-%m-%d %H:%M:%S" 指定格式查看当前系统时间 date -s "20180901 8:53:00" 设置系统当前时间 date "+%j" 3.reboot 4.poweroff 5.wget(暂时了解即可) 6.ps 查看系统中的进程状态ps aux -a 显示所有进程 -u 用户以及其他详细信息 -x 显示没有控制终端的进程 //linux系统中有长短格式之分长长不能合并,长短不能合并,短短可以合并; 合并后保留一个- 号、ps命令允许参数不加减号(-),因此直接写成ps aux ·五种常见进程状态: R (运行)S(中断)D(不可中断)Z(僵死)T(停止) 7.top 动态的监视进程活动与系统负载等信息“Linux中的强化班的Windows任务管理器” 8.pidof 用于查询某个指定服务进程的PID值,格式为“pidof[参数][服务名称]” 9.kill 终止某个指定的PID的服务进程。 10.killall 用于终止某个指定名称的服务所对应的全部进程、killall[参数][进程名称] 如果我们在系统终端中执行一个命令后想立即停止它,可同时按下Ctrl+C组合键,这样将立即终止该命令的进程。或者有些命令在执行时不断的在屏幕上输出信息,影响后续命令的输入,则可以在执行命令时在末尾加上一个&符号,这样命令将进入系统后台来执行。 二、系统状态检测命令 1.ifconfig 查看本机当前网卡配置与网络状态的信息 主要查看网卡名称inet参数后面的ip地址ether参数后面的网卡物理地址(MAC 地址)以及RX TX的接受数据包和发送数据包的个数及累计流量 2.uname 用于查看系统内核与系统版本等信息 uname -a 若要查看当前系统版本的详细信息,则需要查看redhat-release文件 cat /etc/redhat-release 3.uptime 用于查系统的负载信息 显示当前系统时间系统已运行时间启用终端数量以及平均负载值 平均负载值:系统在最近一分钟五分钟十五分钟内的压力情况 4.free用于显示当前系统的内存使用量信息free -h 5.who 用于查看当前登入主机的用户终端信息 https://www.sodocs.net/doc/2e10884439.html,st 用于查看所有系统的登录记录。(日志文件形式保存在系统中,因此黑客很容易对其进行篡改,不要用该命令的输出信息判断系统有无被恶意入侵) 7.history 显示历史执行过的命令(1000条)如果不够,可自定义/etc/profile文件中的HISTSIZE变量值。使用-c参数会清除所有命令历史记录。还可以使用“!编码数字”的方式重复执行某一次命令。

基于嵌入式linux的bsp概念与开发

引言 Linux诞生于1991年,芬兰学生LinuSTorvaldS是Linux操作系统的缔造者,与传统的操作系统不同,Linux操作系统的开发一开始就在FSF(自由软件基金会组织)的GPL(GNU Public License)的版本控制之下,Linux内核的所有源代码都采取了开放源代码的方式。Linux具有相当多的优点。 BSP(Board Support Packet——板级支持包)是介于底层硬件和上层软件之间的底层软件开发包,其主要功能为屏蔽硬件,提供操作系统的引导及硬件驱动。Linux操作系统目前已发展为主流操作系统之一,并且还在不断的壮大和发展。 最新的2.6版内核增加了很多新特性为嵌入式应用提供广泛的支持,使得它不仅可以应用于大型系统,还可以应用于像PDA这类超小型系统中。随着Linux系统在嵌入式领域的广泛应用,对它的研究也在逐渐成为热点并且走向成熟。 在嵌入式系统开发过程中,板级支持包(BSP,BoardSuport Package)的开发已成为非常重要的环节。本文以Linux系统上的BSP技术为研究内容,讨论了BSP的基本概念和设计思想,特别针对Linux系统上BSP的层次结构、各功能模块的实现技术做了详细分析。 通过分析PC机的BIOS技术阐述了嵌入式系统中板级初始化流程和技术重点,并从源代码分析入手详细分析了PC机GURB引导程序设计技术,提出了嵌入式系统上BootLoader的程序结构和设计思想。 嵌入式操作系统对设备驱动程序的管理技术是BSP设计的重要组成部分。本文对比了Linux2.4和Linux2.6的设备驱动程序框架,同时结合大量源代码的研读,对Linux2.6内核的统一设备模型进行了深入的研究,剖析了内核对象机制的主要数据结构及驱动程序设计框架,理解了该模型对设备类的抽象机制,并在实际的项目实践中,结合所作的研究工作,圆满完成了基于ARM+Linux开发平台的BSP开发任务。 最后对本文研究工作进行了总结,并对下一步工作进行了展望。

uboot移植步骤介绍

uboot移植过程 1.修改Makefile 首先给要建立的S3C2410开发板取名为TE2410, 移植uboot时以smdk2410为模板, 修改Makefile #tar xvjf u-boot-1.1.3.tar.bz2 #cd u-boot-1.1.3 #vi Makefile scb9328_config : unconfig @./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx smdk2400_config : unconfig @./mkconfig $(@:_config=) arm arm920t smdk2400 NULL s3c24x0 smdk2410_config : unconfig @./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0 SX1_config : unconfig @./mkconfig $(@:_config=) arm arm925t sx1 te2410_config : unconfig @./mkconfig $(@:_config=) arm arm920t te2410 NULL s3c24x0 蓝色字体是添加的内容。其中,te2410_config : unconfig意思是为TE2410建立一个编译项,@./mkconfig $(@:_config=) arm arm920t te2410 NULL s3c24x0中的arm表示CPU的架构是基于ARM体系结构的;arm920t表示CPU类型是arm920t;te2410是开发板的型号;NULL表示开发商或经销商的名称为空;s3c24x0表示是基于s3c24x0的片上系统。 2.在uboot的board目录下建立te2410开发板子目录 #cp –fr board/smdk2410 /board/te2410 #cd board/te2410 #mv smdk2410.c te2410.c 还要修改board/te2410/Makefile文件, OBJS := smdk2410.o flash.o -------- OBJS := te2410.o flash.o 3.在include/configs目录下建立te2410.h头文件 #cd include/configs #cp –fr smdk2410.h te2410.h 4.指定交叉编译器的路径 选择支持softfloatpoint的交叉编译器,在etc/bashrc文件中添加一行 export PATH=/home/newdisk/toolchain/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linu x-gnu/bin:$PATH 其中, /home/newdisk/toolchain/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu /bin是交叉编译器路径

Linux读书笔记

Linux读书笔记 Linux读书笔记 /.bashrc 就可以看到文件的内容 二进制文件: linux中的可执行文件就是这种格式的,命令cat就是一个二进制文件 数据格式文件: 这些程序在运行过程中,会读取某些特格式的文件,那些特定格式的文件可以称数据文件。如linux在用户登录时,都会将登录数据记录在/var/log/wtmp文件内,该文件是一个数据文件,它能通过 last 命令读出来。但使用cat 时,会读出乱码,因为它属于一种特殊格式的文件。 2.目录: 就是目录,第一个属性为,例如。 3.连接文件: 类似windows下面的快捷方式。第一个属性为,例如 4.设备与设备文件: 与系统外设及存储相关的一些文件,通常都集中在/dev目录下。该文件又分为两种: 块设备文件: 就是存储数据以供系统访问的接口设备,简单而言就是硬盘。例如一号硬盘的代码是/dev/hdal等文件,第一个属性为。 字符设备文件:

即串行端口的接口设备,例如键盘、鼠标等。第一个属性为。 5.套接字: 这类文件通常用在网络数据连接。第一个属性为 6.管道: FIFO也是一种特殊的文件类型,其主要目的是,解决多个程序同时访问一个文件所造成的错误,第一个属性为。 二、文件扩展名 *.sh:批处理文件,因为批处理文件使用shell写成,所以扩展名就是.sh。 *.z *.tar *.tar.gz *.zip *.tgz : 经过打包的压缩文件。 *.html *.php: 网页相关文件,分别表示HTML语法与PHP语法的网页文件。 三、如果当前在\home目录下,如果想进入/var/log目录时,怎么写呢? 1.cd /var/log 一定由根目录/写起 2.cd ../var/log回为在\home中,要回到上一层之后,才能继续向/var移动,不是由/写起,例如由/usr/share/doc到 /usr/share/man,可以写成 cd ../man ,相对路径是指相对于当前工作目录的路径。 四、常用的命令 ls:例文件 mv rm 删除文件

老男孩linux笔记[整理版]

老男孩linux笔记[整理版] 老男孩linux笔记 设定目标、寻找方法、勤奋努力、坚持不懈 学习运维六重 1、重目标:设定具体的短期目标,今天要完成哪些内容,本周要完成的内容,具体到每天的学习规划 2、重思路:工作中结果重要,学习时过程重要,要思考,多问个为什么。 3、重方法: (1)通过具体的时间案例来学习记忆,远胜过直接记枯燥的理论。 (2)通过画逻辑图帮助记忆枯燥的难以记忆的理论知识(如管道的概念) (3)睡觉前回顾当天的学习内容,早晨醒来后计划今天的学习内容 4、重实践:自己提出问题,自己通过实践验证,自己得出结论 (1)问:centos5.9执行yum upgrade会不会升级到6.0以上。答:实践一下便知。 (2)linux运维应用性偏多,要多实践:命令、服务、架构。 5、重习惯 (1)操作文件之前要备份,并确认备份成功正确,“备份名字.源文件名.操作用户.日期“ #cp /etc/hosts /etc/hosts.bldon.20140528 复制文件 #diff /etc/hosts /etc/hosts.bldon.20140528 比较两个文件的不同 #vimdiff /etc/hosts /etc/host,bldon.20140528 对照比较文件的不同 (2)操作后要检查,并确认操作的正确,不能想当然的认为是正确的。 (3)无故不要在“root”下操作命令,少用rm –ft,,mv移动到临时目录,可以用find替换(定时任务)。

(4)命令行操作命令后,确认是否生效达到预期。 (5)启动服务前检查语法, 启动服务后立刻检查启动结果 6、重总结 人类的历史如果没有前人的总结(数学、计算机、历史、地理),给自己总结, 让书本变薄。 系统中常用的安装包,每个安装包可能包含若干个组件,F2可查看包含的组件: base editors development librarys development tool x software development system tools #yum grouplist 查看已安装和未安装的组件#yum groupinstall “develop tools” 装完系统后独立安装安装包 #yum install 软件名称安装单个软件 #rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY* #rpm upgrade 配置yum源 查看包组的用途 # setup 调出配置界面 #ifconfig 查看网络配置 #/etc/init.d/network restart 重启网卡配置,输入命令可以用Tab键补全#cat /etc/redhat release 查看系统版本 #uname –r 查看内核 #uname –m 查看32 or 64位系统 #uname –a 查看内核完整信息 Alt+F2 切换终端 常用软件:

基于嵌入式Linux的汉字输入法

基于嵌入式Linux的汉字输入法 An Approach to Chinese Input based on Embedded Linux Abstract: The Chinese input problem is essential to an embedded system. An approach to on-line recognition of handwritten Chinese stroke is proposed., including its realization in embedded system. Keywords: handwritten Chinese character recognition; on-line recognition; dynamic recognition; embedded system 摘要:汉字输入法是嵌入式系统输入的一项重要技术,它的功能与性能直接影响到嵌入式系统在中国的推广与应用。主要研究了联机汉字手写体输入法,以及在嵌入式系统中实现汉字手写体输入法。 关键词:手写体识别;联机识别;动态识别;嵌入式系统; .1 引言 在信息时代,嵌入式系统如个人数字助理(PDA)、JAVA手机、人工智能电器等已广泛渗入人们的日常工作和生活中。由于受到键盘大小和按键数目的限制,汉字输入是影响嵌入式系统使用的重要因素。具有强烈人性化的手写汉字输入是解决嵌入式系统汉字输入问题的最佳方法之一。随着硬件成本的降低和汉字手写体识别技术的提高,汉字手写识别在嵌入式系统的应用将会日益广泛。 嵌入式系统是硬件资源受限系统,所以汉字手写体识别应考虑到嵌入式系统这个特点。其中比较重要的是,嵌入式系统的硬件配置低,除了考虑汉字识别的识别率外,还必须考虑输入的速度。手写汉字的输入时间包括书写时间和识别时间两部分,一般以前者所耗时间较多。当前市面上融合嵌入式手写汉字输入法的产品如PDA、智能手机、智能数码相机等几乎都在整个汉字书写完毕后才出现识别结果,所以即使系统的识别速度很快,也需要把整个汉字写完,因此整体的输入速度始终没有质的提高。针对上述问题,本文提出了一种基于汉字笔顺的联机动态手写汉字识别方法,在人们书写汉字的过程中,对其已经书写的部分汉字笔划进行动态识别,预测其想要书写的汉字并输出给用户选择,并且集成弹性网格特征法,以达到在保证识别率的前提下提高整体输入速度目的。本文主要进行以下几项工作:

uboot移植实验

一、移植环境 ?主机:UBUNTU ?开发板:飞凌2440 ?编译器:arm-linux-gcc-4.3.2.tgz ?u-boot:u-boot-2009.03.tar.bz2

3)修改u-boot根目录下的Makefile文件。查找到smdk2410_config的地方,在他下面按照smdk2410_config的格式建立mini2440_config的编译选项,另外还要指定交叉编译器 4)测试编译新建的mini2440开发板项目

到此为止,u-boot对自己的mini2440开发板还没有任何用处,以上的移植只是搭建了一个mini2440开发板u-boot的框架,要使其功能实现,还要根据mini2440开发板的具体资源情况来对u-boot源码进行修改。 3. 根据u-boot启动流程图的步骤来分析或者修改添加u-boot源码,使之适合mini2440开发板(注:修改或添加的地方都用红色表示)。 1)mini2440开发板u-boot的stage1入口点分析。 一般在嵌入式系统软件开发中,在所有源码文件编译完成之后,链接器要读取一个链接分配文件,在该文件中定义了程序的入口点,代码段、数据段等分配情况等。那么我们的my2440开发板u-boot的这个链接文件就是cpu/arm920t/u-boot.lds,打开该文件部分代码如下:

知道了程序的入口点是_start,那么我们就打开mini2440开发板u-boot第一个要运行的程序cpu/arm920t/start.S(即u-boot的stage1部分),查找到_start的位置如下: 从这个汇编代码可以看到程序又跳转到start_code处开始执行,那么再查找到start_code 处的代码如下:

基于嵌入式Linux系统的3G4G路由器设计

[导读] 3G的接人技术已经从WCDMA/TD- SCDMA/CD-MA2000发展到HSDPA、HSUPA 以及HSPA+ ,并开始由3G 网络向4G网络过渡。 3G的接人技术已经从WCDMA/TD- SCDMA/CD-MA2000发展到HSDPA、HSUPA 以及HSPA+ ,并开始由3G 网络向4G网络过渡。目前HSDPA的接入带宽可以达到7.2 Mbps,HSPA+ 的接人带宽可以达到21 Mbps,而即将部署的LTE的网络带宽甚至达到了100 Mbps 。同时,由于接人移动互联网的智能终端的数量快速增长,人们对移动互联网的应用需求也日益增长。当人们面对几十兆带宽甚至是上百兆带宽时,必定存在带宽的过剩问题,即人们不需要在任何时刻都需要这么大的带宽,因而可以将过剩的用户带宽分配给更多的用户。 目前,WiFi技术能够支持IEEE的802.11b、802.11g和802.1ln标准,分别支持10 Mbps、54 Mbps和300 Mbps的无线传输速率。而在传输距离上,WiFi能够在几米到100m范围内实现完全覆盖。 本文正是基于3G/4G 不断增长的接入带宽以及WiFi技术的各项优点,提出了一种共享3G/4G 网络带宽的无线路由器设计方案。该方案首先利用嵌入式Linux系统,构建一个基于WiFi技术的无线局域网,智能终端等用户可以利用自带的WiFi功能接入该无线局域网,然后再将该无线局域网桥接至3G/4G网络中,从而实现各个智能终端设备对3G/4G网络带宽的共享。 1. 3G/4G路由器设计方案 本路由器的设计是基于三个模块来实现的,分别为3G模块、WiFi模块和Linux硬件平台,如图1所示。3G模块的功能是利用运营商的无线数据卡进行PPP拨号,使得路由器能通过运营商网络连接至互联网。WiFi模块的功能是使得无线网卡工作在AP(Access Point)模式,并配置动态主机配置协议的脚本文件,来建立一个2.4 GHz的WiFi无线局域网。Linux硬件平台模块的功能主要有两个方面,一方面要支持无线网卡和无线数据卡的驱动,另一方面要通过嵌入式Linux系统中的iptables数据包过滤系统将无线局域网和3G/4G网络连通。智能终端等设备通过WiFi信道接人到该路由器所提供的无线局域网中,分配到一个IP地址之后,则通过该无线局域网的网关进行数据包的接收和发送,而该网关则通过3G/4G模块上的网络拨号接口来接收和发送数据包至3G/4G 网络,从而实现了该路由器的设计方案。 图1 3G/4G路由器设计方案图 2. 3G/4G路由器硬件结构 根据3G/4G路由器设计方案,其硬件结构的三大模块分别采用深圳天谟公司生产的Devkit8500D评估板、华为公司的E392型无线上网卡和TP-Link公司的TL-WN821N型无线网卡。 Devkit8500D评估板的基本结构如图2所示。该硬件平台采用的是TI公司的DM3730微处理器。

基于嵌入式linux计算器的实现

课程设计报告 课程设计名称:嵌入式系统综合课程设计 课程设计题目:基于嵌入式linux计算器的实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

目录 第1章系统分析 (1) 1.1需求分析 (1) 1.2硬件分析 (1) 1.2.1 实验环境 (1) 1.3软件分析 (2) 1.3.1 操作系统简介 (2) 1.3.2 开发技术简介 (2) 第2章系统设计 (4) 2.1操作系统移植 (4) 2.2系统模块设计 (4) 2.3函数设计 (4) 2.4关键流程 (5) 2.4.1 系统主流程 (5) 2.4.2 功能按键流程图 (5) 第3章QT程序移植 (7) 3.1建立交叉编译环境 (7) 3.2Q T源文件的编译 (8) 3.3Q T应用的移植 (8) 第4章系统调试及运行 (9) 4.1调试分析 (9) 4.2结果分析 (10) 参考文献 (11) 附录 (12)

第1章系统分析 1.1 需求分析 课程设计内容和要求: 设计一个简单的计算器,能够进行加、减、乘、除等数学操作。 (1)利用嵌入式linux和Qt,在ARM9上实现。 (2)界面尽可能友好、美观。 这是一个简单的计算器软件,功能为加、减、乘、除等,在嵌入式设备上实现,使用方便,性能可靠,基于ARM内核的微处理器在市场上绝对处于领导地位,因此该类项目拥有庞大的市场。 1.2 硬件分析 将编写好的程序Makefile后,通过Vivi烧入到博创UP-Star2410开发板上,开机运行即可。 1.2.1 实验环境 实验环境是:win7下安装虚拟机,在虚拟机上安装linux(ubuntu11.10)开发板是:博创UP-Star6410,开发板。 软件资源: (1)内核版本linux 2.6.21 (2)BootLoader:U-boot (3)文件系统:Cramfs+Yaffs2 硬件资源: (1)基于ARM1176JZF-S内核的SAMSUNG S3C6410处理器 (2)系统工作频率为533/667MHz (3)256MB Nand Flash、8MB NorFlash (4)256MB Mobile DDR RAM

嵌入式Linux课程学习心得

第一篇、嵌入式系统学习心得 嵌入式Linux课程学习心得 篇一嵌入式心得体会 这学 期才接触嵌入式系统感觉还称不上入门,我通过学习知道了嵌入式的发展前景很大,各个领 域都用到了嵌入式,学好嵌入式不愁没饭吃。 广义上讲,凡是带 有微处理器的专用软硬件系统都是嵌入式系统。如各类单片机和dsp系统。从狭义上讲,那 些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的

专用软硬件系统称为嵌入式系统。嵌入式系统由嵌入式硬件与嵌入式软件组成; 嵌入式硬件 以芯片、模板、组件、控制器形式埋藏于设备内部。 理解“嵌入”的概 念主要从三个方面上来理解。 1、从硬件上,将基 于cpu的处围器件,整合到cpu芯片内部,比如早期基于x86体系结构下的计算机,cpu只 是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部 的16c550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到cpu内部,还 有pc机有显卡,而多数嵌入式处理器都带有lcd控制器,但其种意义上就

相当于显卡。比较 高端的arm类intel xscale架构下的ixp网络处理器cpu内部集成pci控制器(可配成支持 4个pci从设备或配成自身为cpi从设备);还集成3个npe网络处理器引擎,其中两个对应 于两个mac地址,可用于网关交换用,而另外一个npe网络处理器引擎支持dsl,只要外面 再加个phy芯片即可以实现dsl上网功能。ixp系列最高主频可以达到8g,支持2g内存, 1g×10或10g×1的以太网口或febre channel的光通道。ixp系列应该是目标基于arm体系 统结构下由intel进行整合后成xscale内核的最高的处理器了。 2、从软件上前,就 是在定制操作系统内核里将应用一并选入,编译后将内核下载到rom中。而

相关主题