当前位置:文档之家› uboot 详细注释讲解(1)

uboot 详细注释讲解(1)

uboot 详细注释讲解(1)
uboot 详细注释讲解(1)

大多数bootloader都分为stage1和stage2两部分,u-boot也不例外。依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。

1、Stage1 start.S代码结构

u-boot的stage1代码通常放在start.S文件中,他用汇编语言写成,其主要代码部分如下:

(1)定义入口。由于一个可执行的Image必须有一个入口点,并且只能有一个全局入口,通常这个入口放在ROM(Flash)的0x0地址,因此,必须通知编译器以使其知道这个入口,该工作可通过修改连接器脚本来完成。

(2)设置异常向量(Exception Vector)。

(3)设置CPU的速度、时钟频率及终端控制寄存器。

(4)初始化内存控制器。

(5)将ROM中的程序复制到RAM中。

(6)初始化堆栈。

(7)转到RAM中执行,该工作可使用指令ldr pc来完成。

2、Stage2 C语言代码部分

lib_arm/board.c中的start arm boot是C语言开始的函数也是整个启动代码中C语言的主函数,同时还是整个u-boot(armboot)的主函数,该函数只要完成如下操作:

(1)调用一系列的初始化函数。

(2)初始化Flash设备。

(3)初始化系统内存分配函数。

(4)如果目标系统拥有NAND设备,则初始化NAND设备。(5)如果目标系统有显示设备,则初始化该类设备。

(6)初始化相关网络设备,填写IP、MAC地址等。

(7)进去命令循环(即整个boot的工作循环),接受用户从串口输入的命令,然后进行相应的工作。

3、U-Boot的启动顺序(示例,其他u-boot版本类似)

cpu/arm920t/start.S

@文件包含处理

#include

@由顶层的mkconfig生成,其中只包含了一个文件:configs/<顶层makefile中6个参数的第1个参数>.h

#include

#include

/*

********************************************************* ****************

*

* Jump vector table as in table 3.1 in [1]

*

********************************************************* ****************

*/

注:ARM微处理器支持字节(8位)、半字(16位)、字(32位)3种数据类型

@向量跳转表,每条占四个字节(一个字),地址范围为0x0000 0000~@0x0000 0020

@ARM体系结构规定在上电复位后的起始位置,必须有8条连续的跳@转指令,通过硬件实现。他们就是异常向量表。ARM在上电复位后,@是从0x00000000开始启动的,其实如果bootloader存在,在执行@下面第一条指令后,就无条件跳转到start_code,下面一部分并没@执行。设置异常向量表的作用是识别bootloader。以后系统每当有@异常出现,则CPU会根据异常号,从内存的0x00000000处开始查表@做相应的处理

/******************************************************

;当一个异常出现以后,ARM会自动执行以下几个步骤:

;1.把下一条指令的地址放到连接寄存器LR(通常是R14).---保存位

;2.将相应的CPSR(当前程序状态寄存器)复制到SPSR(备份的程序状

态寄存器)中---保存CPSR

;3.根据异常类型,强制设置CPSR的运行模式位

;4.强制PC(程序计数器)从相关异常向量地址取出下一条指令执行,从而跳转到相应的异常处理程序中

*********************************************************/

.globl _start /*系统复位位置,整个程序入口*/

@_start是GNU汇编器的默认入口标签,.globl将_start声明为外部程序可访问的标签,.globl是GNU汇编的保留关键字,前面加点是GNU汇编的语法

_start: b start_code @0x00

@ARM上电后执行的第一条指令,也即复位向量,跳转到start_code

@reset用b,就是因为reset在MMU建立前后都有可能发生

@其他的异常只有在MMU建立之后才会发生

ldr pc, _undefined_instruction /*未定义指令异常,0x04*/

ldr pc, _software_interrupt /*软中断异常,0x08*/

ldr pc, _prefetch_abort /*内存操作异常,0x0c*/

ldr pc, _data_abort /*数据异常,0x10*/

ldr pc, _not_used /*未适用,0x14*/

ldr pc, _irq /*慢速中断异常,0x18*/

ldr pc, _fiq /*快速中断异常,0x1c*/

@对于ARM数据从内存到CPU之间的移动只能通过L/S指令,如:ldr r0,0x12345678为把0x12345678内存中的数据写到r0中,还有一个就是ldr伪指令,如:ldr r0,=0x12345678为把0x12345678地址写到r0中,mov只能完成寄存器间数据的移动,而且立即数长度限制在8位

_undefined_instruction: .word undefined_instruction

_software_interrupt: .word software_interrupt

_prefetch_abort: .word prefetch_abort

_data_abort: .word data_abort

_not_used: .word not_used

_irq: .word irq

_fiq: .word fiq

@.word为GNU ARM汇编特有的伪操作,为分配一段字内存单元(分配的单元为字对齐的),可以使用.word把标志符作为常量使用。如_fiq:.word fiq即把fiq存入内存变量_fiq中,也即是把fiq放到地址_fiq中。

.balignl 16,0xdeadbeef

@.balignl是.balign的变体

@ .align伪操作用于表示对齐方式:通过添加填充字节使当前位置

@满足一定的对齐方式。.balign的作用同.align。

@ .align {alignment} {,fill} {,max}

@其中:alignment用于指定对齐方式,可能的取值为2的次

@幂,缺省为4。fill是填充内容,缺省用0填充。max是填充字节@数最大值,如果填充字节数超过max, 就不进行对齐,例如:

@ .align 4 /* 指定对齐方式为字对齐*/

【参考好野人的窝,于关u-boot中的.balignl 16,0xdeadbeef的理解https://www.doczj.com/doc/6021590.html,/84511571.html】

/*

********************************************************* ****************

*

* Startup Code (called from the ARM reset exception vector) *

* do important init only if we don't start from memory!

* relocate armboot to ram

* setup stack

* jump to second stage

*

********************************************************* ****************

@保存变量的数据区,保存一些全局变量,用于BOOT程序从FLASH拷贝@到RAM,或者其它的使用。

@还有一些变量的长度是通过连接脚本里得到,实际上由编译器算出@来的

_TEXT_BASE:

@因为linux开始地址是0x30000000,我这里是64M SDRAM,所以

@TEXT_BASE = 0x33F80000 ???

.word TEXT_BASE /*uboot映像在SDRAM中的重定位地址*/

@TEXT_BASE在开发板相关的目录中的config.mk文档中定义, 他定@义了代码在运行时所在的地址, 那么_TEXT_BASE中保存了这个地@址(这个TEXT_BASE怎么来的还不清楚)

.globl _armboot_start

_armboot_start:

.word _start

@用_start来初始化_armboot_start。(为什么要这么定义一下还不明白)

/*

* These are defined in the board-specific linker script. */

@下面这些是定义在开发板目录链接脚本中的

.globl _bss_start

_bss_start:

.word __bss_start

@__bss_start定义在和开发板相关的u-boot.lds中,_bss_start 保存的是__bss_start标号所在的地址。

.globl _bss_end

_bss_end:

.word _end

@同上,这样赋值是因为代码所在地址非编译时的地址,直接取得该标号对应地址。

@中断的堆栈设置

#ifdef CONFIG_USE_IRQ

/* IRQ stack memory (calculated at run-time) */

.globl IRQ_STACK_START

IRQ_STACK_START:

.word 0x0badc0de

/* IRQ stack memory (calculated at run-time) */

.globl FIQ_STACK_START

FIQ_STACK_START:

.word 0x0badc0de

#endif

/*

* the actual start code

*/

@复位后执行程序

@真正的初始化从这里开始了。其实在CPU一上电以后就是跳到这里执行的

reset:

/*

* set the cpu to SVC32 mode

*/

@更改处理器模式为管理模式

@对状态寄存器的修改要按照:读出-修改-写回的顺序来执行

@

31 30 29 28 --- 7 6 - 4 3 2 1 0

N Z C V I F M4 M3 M2 M1 M0

0 0 0 0 0 Us er26 模式

0 0 0 0 1 FI Q26 模式

0 0 0 1 0 IR Q26 模式

0 0 0 1 1 SV C26 模式

1 0 0 0 0 Us er 模式

1 0 0 0 1 FI Q 模式

1 0 0 1 0 IR Q 模式

1 0 0 1 1 SV

C 模式

1 0 1 1 1 AB T 模式

1 1 0 1 1 UN

D 模式

1 1 1 1 1 SY S 模式

mrs r0,cpsr

@将cpsr的值读到r0中

bic r0,r0,#0x1f

@清除M0~M4

orr r0,r0,#0xd3

@禁止IRQ,FIQ中断,并将处理器置于管理模式

msr cpsr,r0

@以下是点灯了,这里应该会牵涉到硬件设置,移植的时候应该可以不要

bl coloured_LED_init

bl red_LED_on

@针对AT91RM9200进行特殊处理

#if defined(CONFIG_AT91RM9200DK) ||

defined(CONFIG_AT91RM9200EK)

/*

* relocate exception table

*/

ldr r0, =_start

ldr r1, =0x0

mov r2, #16

copyex:

subs r2, r2, #1

@sub带上了s用来更改进位标志,对于sub来说,若发生借位则C 标志置0,没有则为1,这跟adds指令相反!要注意。

ldr r3, [r0], #4

str r3, [r1], #4

bne copyex

#endif

@针对S3C2400和S3C2410进行特殊处理

@CONFIG_S3C2400、CONFIG_S3C2410等定义在include/configs/下不同开发板的头文件中

#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)

/* turn off the watchdog */

@关闭看门狗定时器的自动复位功能并屏蔽所有中断,上电后看门狗为开,中断为关

# if defined(CONFIG_S3C2400)

# define pWTCON 0x15300000

# define INTMSK 0x14400008 /* Interupt-Controller base addresses */

# define CLKDIVN 0x14800014 /* clock divisor register */ #else @s3c2410的配置

# define pWTCON 0x53000000

@pWTCON定义为看门狗控制寄存器的地址(s3c2410和s3c2440相同)# define INTMSK 0x4A000008 /* Interupt-Controller base addresses */

@INTMSK定义为主中断屏蔽寄存器的地址(s3c2410和s3c2440相同)# define INTSUBMSK 0x4A00001C

@INTSUBMSK定义为副中断屏蔽寄存器的地址(s3c2410和s3c2440

相同)

# define CLKDIVN 0x4C000014 /* clock divisor register */ @CLKDIVN定义为时钟分频控制寄存器的地址(s3c2410和s3c2440

相同)

# endif

@至此寄存器地址设置完毕

ldr r0, =pWTCON

mov r1, #0x0

str r1, [r0]

@对于S3C2440和S3C2410的WTCON寄存器的[0]控制允许或禁止看门狗定时器的复位输出功能,设置为“0”禁止复位功能。

/*

* mask all IRQs by setting all bits in the INTMR - default */

mov r1, #0xffffffff

ldr r0, =INTMSK

str r1, [r0]

# if defined(CONFIG_S3C2410)

ldr r1, =0x3ff @2410好像应该为7ff才对(不理解uboot为何是这个数字)

ldr r0, =INTSUBMSK

str r1, [r0]

# endif

@对于S3C2410的INTMSK寄存器的32位和INTSUBMSK寄存器的低11

位每一位对应一个中断,相应位置“1”为不响应相应的中断。对于S3C2440的INTSUBMSK有15位可用,所以应该为0x7fff了。

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

/* default FCLK is 120 MHz ! */

ldr r0, =CLKDIVN

mov r1, #3

str r1, [r0]

@时钟分频设置,FCLK为核心提供时钟,HCLK为AHB(ARM920T,内存@控制器,中断控制器,LCD控制器,DMA和主USB模块)提供时钟,@PCLK为APB(看门狗、IIS、I2C、PWM、MMC、ADC、UART、GPIO、@RTC、SPI)提供时钟。分频数一般选择1:4:8,所以HDIVN=2,PDIVN=1,@CLKDIVN=5,这里仅仅是配置了分频寄存器,关于MPLLCON的配置肯@定写在lowlevel_init.S中了

@归纳出CLKDIVN的值跟分频的关系:

@0x0 = 1:1:1 , 0x1 = 1:1:2 , 0x2 = 1:2:2 , 0x3 =

1:2:4, 0x4 = 1:4:4, 0x5 = 1:4:8, 0x6 = 1:3:3,

0x7 = 1:3:6

@S3C2440的输出时钟计算式为:Mpll=(2*m*Fin)/(p*2^s)

S3C2410的输出时钟计算式为:Mpll=(m*Fin)/(p*2^s)

m=M(the value for divider M)+8;p=P(the value for divider P)+2 M,P,S的选择根据datasheet中PLL VALUE SELECTION TABLE表格进

行,

我的开发板晶振为16.9344M,所以输出频率选为:399.65M的话

M=0x6e,P=3,S=1

@s3c2440增加了摄像头,其FCLK、HCLK、PCLK的分频数还受到CAMDIVN[9](默认为0),CAMDIVN[8](默认为0)的影响

#endif /* CONFIG_S3C2400 || CONFIG_S3C2410 */

/*

* we do sys-critical inits only at reboot,

* not when booting from ram!

*/

@选择是否初始化CPU

#ifndef CONFIG_SKIP_LOWLEVEL_INIT

bl cpu_init_crit

@执行CPU初始化,BL完成跳转的同时会把后面紧跟的一条指令地址保存到连接寄存器LR(R14)中。以使子程序执行完后正常返回。#endif

@调试阶段的代码是直接在RAM中运行的,而最后需要把这些代码@固化到Flash中,因此U-Boot需要自己从Flash转移到

@RAM中运行,这也是重定向的目的所在。

@通过adr指令得到当前代码的地址信息:如果U-boot是从RAM @开始运行,则从adr,r0,_start得到的地址信息为

@r0=_start=_TEXT_BASE=TEXT_BASE=0x33F80000; @如果U-boot从Flash开始运行,即从处理器对应的地址运行,@则r0=0x0000,这时将会执行copy_loop标识的那段代码了。@ _TEXT_BASE 定义在board/smdk2410/config.mk中

#ifndef CONFIG_SKIP_RELOCATE_UBOOT

relocate: /* relocate U-Boot to RAM */

adr r0, _start /* r0 <- current position of code */

ldr r1, _TEXT_BASE /* test if we run from flash or RAM */ cmp r0, r1 /* don't reloc during debug */

beq stack_setup

ldr r2, _armboot_start

@_armboot_start为_start地址

ldr r3, _bss_start

@_bss_start为数据段地址

sub r2, r3, r2 /* r2 <- size of armboot */

add r2, r0, r2 /* r2 <- source end address */

copy_loop:

ldmia r0!, {r3-r10} /* copy from source address [r0] */

@从源地址[r0]读取8个字节到寄存器,每读一个就更新一次r0地址@ldmia:r0安字节增长

stmia r1!, {r3-r10} /* copy to target address [r1] */ @LDM(STM)用于在寄存器所指的一片连续存储器和寄存器列表的寄存@器间进行数据移动,或是进行压栈和出栈操作。

@格式为:LDM(STM){条件}{类型}基址寄存器{!},寄存器列表{^} @对于类型有以下几种情况: IA 每次传送后地址加1,用于移动数@据块

IB 每次传送前地址加1,用于移动数据块

DA 每次传送后地址减1,用于移动数据块

DB 每次传送前地址减1,用于移动数据块

FD 满递减堆栈,用于操作堆栈(即先移动指针再操作数据,相当于DB)

ED 空递减堆栈,用于操作堆栈(即先操作数据再移动指针,相当于DA)

FA 满递增堆栈,用于操作堆栈(即先移动指针再操作数据,相当于IB)

EA 空递增堆栈,用于操作堆栈(即先操作数据再移动指针,相当于IA)

(这里是不是应该要涉及到NAND或者NOR的读写?没有看出来)

cmp r0, r2 /* until source end addreee [r2] */

ble copy_loop

#endif /* CONFIG_SKIP_RELOCATE_UBOOT */

/* Set up the stack */

@初始化堆栈

stack_setup:

ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */ @获取分配区域起始指针,

sub r0, r0, #CONFIG_SYS_MALLOC_LEN /* malloc area */

@CFG_MALLOC_LEN=128*1024+CFG_ENV_SIZE=128*1024+0x1 @0000=192K

sub r0, r0, #CONFIG_SYS_GBL_DATA_SIZE /* bdinfo */

@CFG_GBL_DATA_SIZE 128---size in bytes reserved for initial data 用来存储开发板信息

#ifdef CONFIG_USE_IRQ

@这里如果需要使用IRQ, 还有给IRQ保留堆栈空间, 一般不使用. sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ) #endif

sub sp, r0, #12 /* leave 3 words for abort-stack */

@该部分将未初始化数据段_bss_start----_bss_end中的数据@清零

clear_bss:

ldr r0, _bss_start /* find start of bss segment */ ldr r1, _bss_end /* stop here */ mov r2, #0x00000000 /*

clear */

clbss_l:str r2, [r0] /* clear loop... */ add r0, r0, #4

cmp r0, r1

ble clbss_l

@跳到阶段二C语言中去

ldr pc, _start_armboot

_start_armboot: .word start_armboot

@start_armboot在/lib_arm/中,到这里因该是第一阶段已经完成了吧,下面就要去C语言中执行第二阶段了吧

/*

*********************************************************

UBOOT命令详解

常用U-boot命令详解(z) 2010-09-30 15:05:52| 分类:学习心得体会|字号订阅 U-boot发展到现在,他的命令行模式已经非常接近Linux下的shell了,在我编译的 U-boot-2009.11中的命令行模式模式下支持“Tab”键的命令补全和命令的历史记录功能。而且如果你输入的命令的前几个字符和别的命令不重复,那么你就只需要打这几个字符即可,比如我想看这个U-boot的版本号,命令就是“ version”,但是在所有的命令中没有其他任何一个的命令是由“v”开头的,所以只需要输入“v”即可。 [u-boot@MINI2440]# version U-Boot 2009.11 ( 4月04 2010 - 12:09:25) [u-boot@MINI2440]# v U-Boot 2009.11 ( 4月04 2010 - 12:09:25) [u-boot@MINI2440]# base Base Address: 0x00000000 [u-boot@MINI2440]# ba Base Address: 0x00000000 由于U-boot支持的命令实在太多,一个一个细讲不现实,也没有必要。所以下面我挑一些烧写和引导常用命令介绍一下,其他的命令大家就举一反三,或者“help”吧! (1)获取帮助 命令:help 或? 功能:查看当前U-boot版本中支持的所有命令。 [u-boot@MINI2440]#help ?- alias for'help' askenv - get environment variables from stdin base - print or set address offset bdinfo - print Board Info structure bmp - manipulate BMP image data boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootelf - Boot from an ELF image in memory bootm - boot application image from memory bootp - boot image via network using BOOTP/TFTP protocol

蜀道难翻译、解析

蜀道难 唐代:李白 噫吁嚱,危乎高哉! 蜀道之难,难于上青天! 蚕丛及鱼凫,开国何茫然! 尔来四万八千岁,不与秦塞通人烟。 西当太白有鸟道,可以横绝峨眉巅。 地崩山摧壮士死,然后天梯石栈相钩连。 上有六龙回日之高标,下有冲波逆折之回川。 黄鹤之飞尚不得过,猿猱欲度愁攀援。(攀援一作:攀缘) 青泥何盘盘,百步九折萦岩峦。 扪参历井仰胁息,以手抚膺坐长叹。 问君西游何时还?畏途巉岩不可攀。 但见悲鸟号古木,雄飞雌从绕林间。 又闻子规啼夜月,愁空山。 蜀道之难,难于上青天,使人听此凋朱颜! 连峰去天不盈尺,枯松倒挂倚绝壁。 飞湍瀑流争喧豗,砯崖转石万壑雷。 其险也如此,嗟尔远道之人胡为乎来哉!(也如此一作:也若此) 剑阁峥嵘而崔嵬,一夫当关,万夫莫开。 所守或匪亲,化为狼与豺。 朝避猛虎,夕避长蛇;磨牙吮血,杀人如麻。 锦城虽云乐,不如早还家。 蜀道之难,难于上青天,侧身西望长咨嗟! 译文 唉呀呀!多么高峻伟岸! 蜀道难以攀越,简直难于上青天。 传说中蚕丛和鱼凫建立了蜀国,开国的年代实在久远无法详谈。 从那时至今约有四万八千年了吧,秦蜀被秦岭所阻从不沟通往返。 西边太白山高峻无路只有飞鸟可通行,此山可以直通峨眉山巅。 山崩地裂,埋葬了五位开山英雄壮士,这样以后高险的山路和栈道才相互勾连。 蜀中上有挡住太阳神六龙车的山巅,下有激浪排空迂回曲折的大川。 善于高飞的黄鹤尚且无法飞过,即使猢狲要想翻过也愁于攀援。 青泥岭的泥路曲曲弯弯,百步九折萦绕着山峦。 屏住呼吸仰头就可触摸参星和井星,紧张得透不过气来,用手抚胸惊恐不已徒长吁短叹。好朋友呵请问你西游何时回还?这蜀道的峭岩险道实在难以登攀! 只见那悲鸟在古树上哀鸣啼叫;雄雌相随飞翔在茂密树丛之间。

蜀道难课文赏析

蜀道难课文赏析 《蜀道难 》是中国唐代伟大诗人李白 的代表作品。下面就是小编整理一份蜀道难课文 赏析,欢迎大家学习! 《蜀道难》原文 唐代:李白 噫吁嚱,危乎高哉!蜀道之难,难于上青天! 蚕丛及鱼凫,开国何茫然! 尔来四万八千岁,不与秦塞通人烟。 西当太白有鸟道,可以横绝峨眉巅。 地崩山摧壮士死,然后天梯石栈相钩连。 上有六龙回日之高标,下有冲波逆折之回川。 黄鹤之飞尚不得过,猿猱欲度愁攀援。(攀援 一作:攀缘) 青泥何盘盘,百步九折萦岩峦。 扪参历井仰胁息,以手抚膺坐长叹。 问君西游何时还?畏途巉岩不可攀。 但见悲鸟号古木,雄飞雌从绕林间。 又闻子规啼夜月,愁空山。 蜀道之难,难于上青天,使人听此凋朱颜! 连峰去天不盈尺,枯松倒挂倚绝壁。 飞湍瀑流争喧豗,砯崖转石万壑雷。 其险也如此,嗟尔远道之人胡为乎来哉!(也如此 一作:也若此) 剑阁峥嵘而崔嵬,一夫当关,万夫莫开。 所守或匪亲,化为狼与豺。 朝避猛虎,夕避长蛇;磨牙吮血,杀人如麻。 锦城虽云乐,不如早还家。 蜀道之难,难于上青天,侧身西望长咨嗟! 译文及注释 译文

唉呀呀!多么高峻伟岸! 蜀道真太难攀登,简直难于上青天。 传说中蚕丛和鱼凫建立了蜀国,开国的年代实在久远无法详谈。 自从那时至今约有四万八千年,秦蜀被秦岭所阻从不沟通往返。 西边太白山有飞鸟能过的小道。从那小路走可横渡峨眉山顶端。 山崩地裂蜀国五壮士被压死了,两地才有天梯栈道开始相通连。 上有挡住太阳神六龙车的山巅,下有激浪排空迂回曲折的大川。 善于高飞的黄鹤尚且无法飞过,即使猢狲要想翻过也愁于攀援。 青泥岭多么曲折绕着山峦盘旋,百步之内萦绕岩峦转九个弯弯。 屏住呼吸仰头过参井皆可触摸,用手抚胸惊恐不已徒长吁短叹。 好朋友呵请问你西游何时回还? 可怕的岩山栈道实在难以登攀! 只见那悲鸟在古树上哀鸣啼叫;雄雌相随飞翔在原始森林之间。 月夜听到的是杜鹃悲惨的啼声,令人愁思绵绵呵这荒荡的空山! 蜀道真难走呵简直难于上青天,叫人听到这些怎么不脸色突变? 山峰座座相连离天还不到一尺;枯松老枝倒挂倚贴在绝壁之间。 漩涡飞转瀑布飞泻争相喧闹着;水石相击转动像万壑鸣雷一般。 那去处恶劣艰险到了这种地步; 唉呀呀你这个远方而来的客人,为了什么而来到这险要的地方? 剑阁那地方崇峻巍峨高入云端,只要一人把守千军万马难攻占。 驻守的官员若不是自己的近亲;难免要变为豺狼踞此为非造反。 清晨你要提心吊胆地躲避猛虎;傍晚你要警觉防范长蛇的灾难。 豺狼虎豹磨牙吮血真叫人不安;毒蛇猛兽杀人如麻即令你胆寒。 锦官城虽然说是个快乐的所在;如此险恶还不如早早地把家还。 蜀道太难走呵简直难于上青天;侧身西望令人不免感慨与长叹! 注释 (1)《蜀道难》:古乐府题,属《相和歌·瑟调曲》。 (2)噫吁嚱:惊叹声,蜀方言,表示惊讶的声音。宋庠《宋景文公笔记》 卷上:“蜀人见物惊异,辄曰‘噫吁嚱’。” (3)蚕丛、鱼凫:传说中古蜀国两位国王的名字。何茫然:难以考证。何: 多么。茫然:渺茫遥远的样子。指古史传说悠远难详,茫昧杳然。据西汉扬雄巜 蜀本王纪>记载:"蜀王之先,名蚕丛、柏灌、鱼凫,蒲泽、开明。…… 从开明上至蚕丛,积三万四千岁。" (4)尔来:从那时以来。四万八千岁:极言时间之漫长,夸张而大约言之。 秦塞:秦的关塞,指秦地。秦地四周有山川险阻,故称"四塞之地"。 通人烟:人员往来。

蜀道难 讲义(含详细注解) 完美版

奇之又奇,千古绝唱——李白《蜀道难》讲义 ①噫y ī吁x ū嚱x ī!(蜀人方言,犹“哎呀呀”)危高乎高哉!蜀道之难,难于上青天。 ( 中心句。如晴天霹雳,震撼人心,开启出一篇“奇之又奇”的文字。起韵)蚕丛远古蜀王及鱼凫远古蜀王,开国(的事迹)何多么茫然渺茫!(想象五 丁开山)尔 那,开国之初来四万八千岁,(夸 张)(蜀地)不与秦塞秦地通人烟(住户,烟,炊烟。)(秦地)西当d āng 挡住太白有太白山挡住(只)有(一条)鸟道,(飞鸟)可以横绝 飞越峨△眉△巅山顶。地崩山摧(蜀国迎亲的)壮士死,然后天梯指高险的山路石栈栈道相钩连。(想 象)上n->状有(使)六龙回回转日太阳神之高标(可作一方最高标志的 山峰),(想象六龙回日 以上共引用了四个神话故事:蚕丛、鱼凫、五丁开山、六龙回日)下n->状有(使)冲波滚滚波涛逆折 倒流之回川。(想象)黄鹤黄鹄,健飞的大鸟之飞尚不得过,猿猱náo 猿的一种,善攀援欲度 愁攀援。(虚写映衬:人行走难上加难)青泥1岭名何盘盘曲折盘旋!百步九折萦绕着岩峦山崖。扪 mén 摸参参宿星,蜀地是其分野 历经过井井宿星,秦地是其分野仰(头)胁息屏住气不敢呼吸,以手抚膺胸坐徒,空长叹。(摹写神情、动作 一、写蜀道 的来历和蜀道的高峻,虚写。 ) ②问君指入蜀的友人西游指入蜀何时还,(我)畏担心途(之)巉岩高而险的山岩不可 攀。但见悲鸟号 哀号(于)古木,雄飞雌从绕林间。(缺乏安全感,不敢失伴)又闻子规(杜鹃,啼声哀怨动人,蜀国古望 帝魂魄所化)啼夜月月夜,愁(声回荡于)空山。(这四句借景抒情。)蜀道之难,难于上青天!(承前启后。承接前面“畏涂巉岩不可攀”,引发后面的“其险也如此”。下句开始转韵)使人听此凋 使…凋谢朱颜(脸色由红润变成铁青)。连峰去距离天不盈尺,枯松倒挂倚绝壁。(夸张:山峰之高,绝壁之险)飞湍t ūan 急流瀑流瀑布争喧豗 hu ī喧响,砯p īng n-v 冲击 崖转\使…滚动石万壑山谷雷。其险也如此,(蜀人会)嗟尔远道之人胡为 为何乎来(此)哉?(二、写蜀道的不可攀和蜀道的极其险恶,实写。) 山名,指剑阁的大剑山和小剑山,两山之间有一条长30里长的栈道。)峥嵘高峻突兀而崔嵬高耸貌,一夫一人当关守关,万夫莫开不能打开。所守(之将领)或倘若匪=非(自己的)亲亲信,化为狼 1 青泥岭,在今甘肃徽县南。悬崖万仞,山多云雨,行者屡逢泥淖,故号青泥岭。

uboot下载内核和文件系统的步骤

uboot 下载内核和文件系统的步骤 1)下载linux到系统的SDRAM运行(仅做测试之用,断电或退出后就会消失) 1>运行Uboot,设置环境变量 Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200,mem=32M 启动系统环境变量 Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址 Uboot>setenv ipaddr [目标板 ip 地址] 目标板 ip 地址 Uboot>setenv serverip [主机 ip 地址] 主机 ip 地址 2>下载linux内核,文件系统 打开tftpserver应用程序,设置根目录路径,将内核、文件系统等拷贝到所设置的根目录下。 Uboot>tftp 21100000 ramdisk.gz 下载文件系统 Uboot>tftp 21000000 uImage 下载 linux 内核 Uboot>bootm 21000000 启动 linux 然后linux操作系统就开始运行。 2)烧写 Linux 到系统的 Flash 运行 1>设置运行Linux的环境变量 Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200,mem=32M 启动系统环境变量Uboot>setenv image cp.b 10020000 21000000 b0000 拷贝内核到sdram Uboot>setenv ramdisk cp.b 100d0000 21100000 226000 拷贝文件系统到sdram Uboot>setenv boot bootm 设置变量boot Uboot>setenv bootcmd run ramdisk\;run image\;run boot 设置默认变量bootcmd Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址 Uboot>setenv ipaddr 目标板 ip 地址目标板 ip 地址,由你自己决定Uboot>setenv serverip 主机ip地址主机ip地址,就是你的PC的ip Uboot>saveenv 保存环境变量 2>烧写Linux内核到Flash Uboot>tftp 21100000 ramdisk.gz Uboot>cp.b 21100000 100d0000 226000

《蜀道难》重点难点讲解

《蜀道难》重点难点讲解 1、诗人是怎样来表现蜀道的雄奇险峻的? 明确: 神话传说:五丁开山、六龙回日,写出历史上蜀道不可逾越之险阻。 虚写映衬:黄鹤不得飞渡、猿猱愁于攀缘,映衬人行走难上加难。 摹写神情、动作:手扪星辰、呼吸紧张、抚胸长叹、步履艰难、神情惶悚困危之状如在眼前。 借景抒情:古木荒凉、鸟声悲凄(悲鸟号古木,子规啼夜月)使人闻声失色,渲染了旅愁和蜀道上空寂苍凉的环境氛围,有力地烘托了蜀道之难。 运用夸张:“连峰去天不盈尺”“枯松倒挂倚绝壁”极言山峰之高,绝壁之险,渲染了惊险的气氛。 李白正是以变幻莫测的笔法,淋漓尽致地刻画了蜀道之难,艺术地展现了古老蜀道逶迤、峥嵘、高峻、崎岖的面貌,描绘出了一幅色彩绚丽的山水画卷。 2、“连峰去天不盈尺……冰崖转石万壑雷”这几句描写好在哪里? 明确: 诗人先托出山势的高险,然后由静而动,写出水石激荡,山谷轰鸣的惊险场景,好像一串电影镜头:开始是山峦起伏,连峰接天的远景图画;接着平缓地推出枯松倒挂绝壁的特写;而后,跟踪而来的是一

组快镜头:飞湍、瀑流、悬崖、转石,配合着万壑雷鸣的音响,飞快地从眼前闪过,惊险万状,目不暇接,从而造成一种势若排山倒海的强烈艺术效果,使蜀道之难的描写,简直达到了登峰造极的地步。如果说上面山势的高危已使人望而生畏,那么此处山川的险要更令人惊心动魄了。 3、“蜀道难”这样一个难以表述的事物,李白为什么描绘得如此动人? 明确: 李白之所以描绘得如此动人,还在于他融贯其间的浪漫主义激情。诗人寄情山水,放浪形骸,他对自然景物不是冷漠地观赏,而是热情地赞叹,借以抒发自己的理想、感受。那飞流惊湍,奇峰险壑,赋予了诗人的情感气质,因而才呈现出飞动的灵魂和瑰伟的姿态。诗人善于把想像、夸张和神话传说融为一体写景抒情。言山之高峻,则曰:“上有六龙回日之高标”;状道之险阻,则曰:“地崩山摧壮士死,然后天梯石栈相钩连”……诗人“驰走风云,鞭挞海岳”,从蚕丛开国说到五丁开山,由六龙回日写到子规夜啼,天马行空般地驰骋想像,创造出博大浩渺的艺术境界,充满了浪漫主义色彩,让我们透过奇丽峭拔的山川景物,仿佛看到诗人那“落笔摇五岳,笑傲凌沧州”的高大形象。 唐以前的《蜀道难》作品简短单薄,李白对这一乐府古题有所创新和发展,他运用了三言、四‘言、五言、七言,直到十一言等参差错落,长短不齐的句式,形成极为奔放的语言风格;韵脚也不断变化,

蜀道难原文及翻译、全文译文、对照翻译

参考赏析 创作背景 对《蜀道难》的写作背景,从唐代开始人们就多有猜测,主要有四种说法:甲、此诗系为房琯、杜甫二人担忧,希望他们早日离开四川,免遭剑南节度使严武的毒手;乙、此诗是为躲避安史之乱逃亡至蜀的唐玄宗李隆基而作,劝喻他归返长安,以免受四川地方军阀挟制,丙、此诗旨在讽刺当时蜀地长官章仇兼琼想凭险割据,不听朝廷节制。▼ 鉴赏 整体评析 这首诗是袭用乐府旧题,意在送友人入蜀。诗人以浪漫主义的手法,展开丰富的想象,艺术地再现了蜀道峥嵘,突兀,强悍、崎岖等奇丽惊险和不可凌越的磅礴气势,借以歌咏蜀地山川的壮秀,显示出祖国山河的雄伟壮丽。至于本诗是否有更深的寓意,历代有各种不同看法。然而就诗论诗,不一定强析有寓意。但从诗中,所▼ 作者介绍 李白 李白(701年-762年),字太白,号青莲居士,唐朝浪漫主义诗人,被后人誉为诗仙。祖籍陇西成纪(待考),出生于西域碎叶城,4岁再随父迁至剑南道绵州。李白存世诗文千余篇,有《李太白集》传世。762年病逝,享年61岁。其墓在今安徽当涂,四川江油、湖北安陆有纪念馆。... 蜀道难全文阅读: 出处或作者:李白 噫吁戏,危乎高哉!蜀道之难难于上青天。 蚕丛及鱼凫,开国何茫然。 尔来四万八千岁,不与秦塞通人烟。 西当太白有鸟道,可以横绝峨眉巅。 地崩山摧壮士死,然后天梯石栈相勾连。 上有六龙回日之高标,下有冲波逆折之回川。 黄鹤之飞尚不得,猿猱欲度愁攀援。 青泥何盘盘,百步九折萦岩峦。 扪参历井仰胁息,以手抚膺坐长叹! 问君西游何时还?畏途巉岩不可攀。 但见悲鸟号古木,雄飞雌从绕林间。 又闻子规啼夜月,愁空山。 蜀道之难难于上青天,使人听此凋朱颜! 连峰去天不盈尺,枯松倒挂倚绝壁。 飞湍瀑流争喧豗,砯崖转石万壑雷。 其险也如此,嗟尔远道之人。 胡为乎来哉!剑阁峥嵘而崔嵬, 一夫当关,万夫莫开。 所守或匪亲,化为狼与豺。 朝避猛虎,夕避长蛇, 磨牙吮血,杀人如麻。 锦城虽云乐,不如早还家。 蜀道之难难于上青天,侧身西望长咨嗟! 蜀道难全文翻译:

蜀道难(带拼音修正版)

shǔdào nán 蜀道难(拼音修正版) lǐbái 李白 yīxū xī!wēi hūgāo zāi ! 噫吁嚱!危乎高哉! shǔdào zhīnán,nán yúshàng qīng tiān ! 蜀道之难,难于上青天! cán c?ng jíyúfú,kāi gu?h?máng rán ! 蚕丛及鱼凫,开国何茫然! ěr lái sìwàn bāqiān suì,bùyǔqín sài tōng r?n yān 。 尔来四万八千岁,不与秦塞通人烟。 xīdāng tài bái yǒu niǎo dào ,kěyǐh?ng ju??m?i diān 。 西当太白有鸟道,可以横绝峨眉巅。 dìbēng shān cuīzhuàng shìsǐ,rán h?u tiān tīshízhàn xiāng gōu lián。 地崩山摧壮士死,然后天梯石栈相钩连。 shàng yǒu liùl?ng huírìzhīgāo biāo ,xiàyǒu chōng bōnìzh?zhīhuíchuān 。上有六龙回日之高标,下有冲波逆折之回川。huáng hazhīfēi shàng búd?gu?,yuán náo yùdùch?u pān yuán 。 黄鹤之飞尚不得过,猿猱欲度愁攀援。 qīng níh?pán pán ,bǎi bùjiǔzh?yíng yán luán 。 青泥何盘盘,百步九折萦岩峦。 m?n shēn lìjǐng yáng xi?xī,yǐshǒu fǔyīng zu?cháng tàn 。 扪参历井仰胁息,以手抚膺坐长叹。 wan jūn xīy?u h?shíhuán ?wai túchán yán bùkěpān ! 问君西游何时还?畏途巉岩不可攀! dàn jiàn bēi niǎo háo gǔmù,xi?ng fēi cíc?ng rào lín jiān 。 但见悲鸟号古木,雄飞雌从绕林间。 y?u w?n zǐguītíyayua,ch?u kōng shān 。 又闻子规啼夜月,愁空山。

(完整版)《蜀道难》优秀教案

蜀道难》教案 教学目标 : 1.反复诵读,把握这首诗参差错落的语言特点,在吟咏中体会蜀道的雄奇壮丽、高峻 险 要,感受诗的声韵美。 2.品味蜀道之“难”的典型意象,体会诗人豪放飘逸的诗风,感受诗的意境美。 3.鉴赏 诗人状“难”之法,体悟诗人赞叹、惊惧、忧虑之情,感受诗的情感美。 教学重点 : 立足 于“读”,品味诗的意象、语言、艺术风格。 教学难点 : 调动想象力及感悟力,体会诗人表达的思想感情。 教学时间: 二课时 第一课时 一、 引入蜀道:复习旧知,激发兴趣 1、竞赛背诵李白诗句 2、“诗仙”由来 李白初到长安,贺知章往访,看到了李白写的《蜀道难》,他看完了之后,大 叹一声: “李白不是人,你是仙人被贬谪到人世上了啊!”此后,李白就被后人尊称为“诗 仙”。 3、李白简介 二、倾听蜀道:初读感知 , 疏通文意 (一)初读 《蜀道难》气象雄奇奔放,感情激越跌宕,兴寄遥深,“非高声朗诵不能得其雄伟之 概,非密 咏恬吟则不能探其深远之趣”(曾国藩语),让我们在诵读中感知诗情,参悟画 1、读准字音。 噫吁 嚱( y ī x ū x 石栈( zh àn ) 抚膺( y īng ) p īng )崖 sh ǔn )血 砯 吮 2、 鱼凫(y ú f ú) 秦塞(s ài ) 扪( m é n )参( sh ēn )历井 飞湍( tu ān ) 峥嵘( zh ēngr ó ng ) ) 猿猱( n áo ) 巉( ch án )岩 万壑( h è) 咨嗟( z īji ē) 喧豗( hu ī) 崔嵬īé指名朗读。其他学生听读,注意字音、节奏是否准确。 示范朗读。(播放课文朗读录音 或教师范读。)要求学生特别注意读准节奏、语气,可

UBoot源码分析1

?UBoot源码解析(一)

主要内容 ?分析UBoot是如何引导Linux内核 ?UBoot源码的一阶段解析

BootLoader概念?Boot Loader 就是在操作系统内核运行之前运行 的一段小程序。通过这段小程序,我们可以初始 化硬件设备、建立内存空间的映射图,从而将系 统的软硬件环境带到一个合适的状态,以便为最 终调用操作系统内核准备好正确的环境 ?通常,Boot Loader 是严重地依赖于硬件而实现 的,特别是在嵌入式世界。因此,在嵌入式世界 里建立一个通用的Boot Loader 几乎是不可能的。 尽管如此,我们仍然可以对Boot Loader 归纳出 一些通用的概念来,以指导用户特定的Boot Loader 设计与实现。

UBoot来源?U-Boot 是 Das U-Boot 的简称,其含义是 Universal Boot Loader,是遵循 GPL 条款的开放源码项目。最早德国 DENX 软件工程中心的 Wolfgang Denk 基于 8xxROM 和 FADSROM 的源码创建了 PPCBoot 工程项目,此后不断 添加处理器的支持。而后,Sysgo Gmbh 把 PPCBoot 移 植到 ARM 平台上,创建了 ARMBoot 工程项目。最终, 以 PPCBoot 工程和 ARMBoot 工程为基础,创建了 U- Boot 工程。 ?而今,U-Boot 作为一个主流、通用的 BootLoader,成功地被移植到包括 PowerPC、ARM、X86 、MIPS、NIOS、XScale 等主流体系结构上的百种开发板,成为功能最多、 灵活性最强,并且开发最积极的开源 BootLoader。目前。 U-Boot 仍然由 DENX 的 Wolfgang Denk 维护

《蜀道难》李白诗歌作品介绍

《蜀道难》李白诗歌作品介绍 蜀道难 作品介绍 《蜀道难》的作者是李白 ,被选入《全唐诗 》的第 162 卷第 3 首。这首诗是我国唐代伟大诗人李白的代表作品。全诗二 百九十四字,以山川之险言蜀道之难,给人以回肠荡气之感,充分显示了诗人的 浪漫气质和热爱祖国河山的感情。诗中诸多的画面此隐彼现,无论是山之高,水 之急, 河山之改观, 林木之荒寂, 连峰绝壁之险, 皆有逼人之势, 其气象之宏伟, 其境界之阔大,确非他人可及。正如清代诗评家沈德潜所盛称:“笔势纵横,如 虬飞蠖动,起雷霆于指顾之间。”更多古诗 欣赏文章敬请关注“可可诗词 频道”李白的诗全集栏目。 古诗名句“磨牙吮血, 杀人如麻。 ”“朝避猛虎, 夕避长蛇。 ”就是出自 《蜀 道难》这首诗。 蜀道难原文 《蜀道难》 作者:唐·李白 噫(yī)吁(xū)嚱(xī)⑴!危乎高哉! 蜀道之难,难于上青天。 蚕丛及鱼凫(fú)⑵,开国何茫然! 尔来四万八千岁⑶,始与秦塞(sài)通人烟。 西当太白有鸟道⑷,可以横绝峨眉巅。 地崩山摧壮士死⑸,然后天梯石栈(zhàn)相钩连。 上有六龙回日之高标⑹,下有冲波逆折之回川⑺。 黄鹤之飞尚不得过,猿猱(náo)欲度愁攀援⑻。 青泥何盘盘⑼!百步九折萦(yíng)岩峦。
1 / 15

扪(m?n)参(shēn)历井仰胁(xi?)息⑽,以手抚膺(yīng)坐长叹⑾。 问君西游何时还,畏途巉(chán)岩不可攀。 但见悲鸟号(háo)古木,雄飞雌从绕林间。 又闻子规啼夜月⑿,愁空山。 蜀道之难,难于上青天!使人听此凋朱颜。 连峰去天不盈尺,枯松倒挂倚绝壁。 飞湍瀑流争喧豗(huī)⒀,砯(pīng)崖转(zhuàn)石万壑(ha)雷。 其险也如此,嗟(jiē)尔远道之人,胡为(wai)乎来哉⒁? 剑阁⒂峥(zhēng)嵘(róng)而崔嵬(w?i),一夫当关,万夫莫开⒃。 所守或匪亲,化为狼与豺。 朝避猛虎,夕避长蛇。 磨牙吮(shǔn)血(xiě),杀人如麻。 锦城虽云乐⒄,不如早还家。 蜀道之难,难于上青天,侧身西望长咨(zī)嗟(jiē)⒅。 蜀道难注释 ⑴《蜀道难》:古乐府题,属《相和歌·瑟调曲》。噫吁戯:惊叹声,蜀方 言。宋庠《宋景文公笔记》卷上:“蜀人见物惊异,辄曰‘噫吁嚱’。” ⑵蚕丛、鱼凫:传说中古蜀国两位国王的名字。何茫然:难以考证。何:多 么。茫然:渺茫。 ⑶尔来:从那时以来。四万八千岁:极言时间之漫长,夸张而大约言之。秦 塞:秦的关塞,指秦地。通人烟:人员往来。 ⑷西当:西对。当:对着,向着。太白:太白山,又名太乙山,在长安西(今 陕西眉县、太白县一带)。鸟道:只有鸟能飞过的小路。 ⑸地崩山摧壮士死:《华阳国志·蜀志》:“秦惠王知蜀王好色,许嫁五女 于蜀。蜀遣五丁迎之。还到梓潼,见一大蛇入穴中。一人揽其尾掣之,不禁,至 五人相助, 大呼拽蛇, 山崩时压杀五人及秦五女并将从, 而山分为五岭。 ”横绝: 横越。峨嵋巅:峨嵋顶峰。摧:倒塌。天梯:非常陡峭的山路。石栈:栈道。 ⑹六龙回日:《淮南子》注云:“日乘车,驾以六龙。羲和御之。日至此面 而薄于虞渊,羲和至此而回六螭。”螭即龙。高标:指蜀山中可作一方之标识的 最高峰。 ⑺冲波:水流冲击腾起的波浪,这里指激流。逆折:水流回旋。回川:有漩 涡的河流。 ⑻黄鹤: 黄鹄 (Hú) , 又名天鹅, 善于高飞。 尚: 尚且。 得: 能。 猿猱 (náo) : 蜀山中最善攀援的猴类。 ⑼青泥:青泥岭,在今甘肃徽县南,陕西略阳县北。《元和郡县志》卷二十 二:“青泥岭,在县西北五十三里,接溪山东,即今通路也。悬崖万仞,山多云 雨,行者屡逢泥淖,故号青泥岭。”百步九折:百步之内拐九道弯。萦:盘绕。
2 / 15

UBoot实验2、uboot使用实验

Uboot的使用 一、 实验目的 在实验平台上使用uboot常用命令及使用Tftp工具传输文件。 二、 实验资源 硬件资源 CPU Samsung S3C2440A Nand flash Samsung K9D1208V0M 64M RAM64M 软件资源 bootloader uboot Tftp server tftpd32.exe 三、 实验前的准备 1、一台PC机。 2、实验平台。 3、串口线、网络线。 4、tftpd32.exe软件。 四、 实验步骤 1、实验前的准备 a)将串口线、网络线连接到实验平台与PC机上。 b)在PC机上运行超级终端串口软件。

2、进入Uboot命令输出状态 实验平台上电,在超级终端串口软件中按空格键进入Uboot命令输出状态。 3、查看Uboot命令 运行help命令显示uboot提供的所有命令。

4、学习U-Boot的几个常用的命令 根据每一条命令的帮助信息,说明这些命令的功能、参数和用法。 z bootm => help bootm bootm [addr [arg ...]] - boot application image stored in memory passing arguments 'arg ...'; when booting a Linux kernel, 'arg' can be the address of an initrd image bootm 命令可以引导启动存储在内存中的程序映像。这些内存包括RAM 和可以永久保存的Flash。 第1 个参数addr 是程序映像的地址,这个程序映像必须转换成U-Boot 的格式。 第2 个参数对于引导Linux 内核有用,通常作为U-Boot 格式的RAMDISK 映像存储地址;也可以是传递给Linux内核的参数(缺省情况下传递bootargs环境变量给内核)。 例如: ——从内存地址0x300000启动 0x300000 bootm z cp => help cp cp [.b, .w, .l] source target count - copy memory cp命令可以在内存中复制数据块,包括对Flash的读写操作。 第1 个参数source是要复制的数据块起始地址。 第2 个参数target是数据块要复制到的地址。这个地址如果在Flash中,那么会直接调用写Flash的函数操作。所以U-Boot 写Flash就使用这个命令,当然需要先把对应Flash区域擦干净。 第3 个参数count是要复制的数目,根据cp.b cp.w cp.l分别以字节、字、长字为单位。 例如: cp.b 0x300000 0xFE040000 0x180000将1.5M数据从内存拷到flash 0xFE040000位

《蜀道难》原文及注释

《蜀道难》原文及注释 《蜀道难》是中国唐代伟大诗人李白的代表作品。一起来看看为大家整理的:《蜀道难》原文及注释,欢迎阅读,仅供参考。 《蜀道难》原文及注释蜀道难 唐代:李白 噫吁嚱,危乎高哉!蜀道之难,难于上青天! 蚕丛及鱼凫,开国何茫然! 尔来四万八千岁,不与秦塞通人烟。 西当太白有鸟道,可以横绝峨眉巅。 地崩山摧壮士死,然后天梯石栈相钩连。 上有六龙回日之高标,下有冲波逆折之回川。 黄鹤之飞尚不得过,猿猱欲度愁攀援。(攀援一作:攀缘)青泥何盘盘,百步九折萦岩峦。 扪参历井仰胁息,以手抚膺坐长叹。 问君西游何时还?畏途巉岩不可攀。 但见悲鸟号古木,雄飞雌从绕林间。 又闻子规啼夜月,愁空山。 蜀道之难,难于上青天,使人听此凋朱颜! 连峰去天不盈尺,枯松倒挂倚绝壁。 飞湍瀑流争喧豗,砯崖转石万壑雷。 其险也如此,嗟尔远道之人胡为乎来哉!(也如此一作:也若此)

剑阁峥嵘而崔嵬,一夫当关,万夫莫开。 所守或匪亲,化为狼与豺。 朝避猛虎,夕避长蛇;磨牙吮血,杀人如麻。 锦城虽云乐,不如早还家。 蜀道之难,难于上青天,侧身西望长咨嗟! 译文 唉呀呀!多么高峻伟岸! 蜀道真太难攀登,简直难于上青天。 传说中蚕丛和鱼凫建立了蜀国,开国的年代实在久远无法详谈。 自从那时至今约有四万八千年,秦蜀被秦岭所阻从不沟通往返。 西边太白山有飞鸟能过的小道。从那小路走可横渡峨眉山顶端。 山崩地裂蜀国五壮士被压死了,两地才有天梯栈道开始相通连。 上有挡住太阳神六龙车的山巅,下有激浪排空迂回曲折的大川。 善于高飞的黄鹤尚且无法飞过,即使猢狲要想翻过也愁于攀援。 青泥岭多么曲折绕着山峦盘旋,百步之内萦绕岩峦转九个弯弯。 屏住呼吸仰头过参井皆可触摸,用手抚胸惊恐不已徒长吁短叹。

李白《蜀道难》原诗、注释、翻译、阅读训练附答案

【原诗】:蜀道难李白剑阁峥嵘而崔嵬,一夫当关,万夫莫开。所守或匪亲,化为狼与豺。朝避猛虎,夕避长蛇,磨牙吮血,杀人如麻。锦城虽云乐,不如早还家。蜀道之难,难于上青天,侧身西望长咨嗟! 【注释】:⑵蚕丛、鱼凫:传说中古蜀国两位国王的名字。何茫然:难以考证。何:多么。茫然:渺茫。⑶尔来:从那时以来。四万八千岁:极言时间之漫长,夸张而大约言之。秦塞:秦的关塞,指秦地。通人烟:人员往来。⑷西当:西对。当:对着,向着。太白:太白山,又名太乙山,在长安西(今陕西眉县、太白县一带)。鸟道:只有鸟能飞过的小路。⑸地崩山摧壮士死:《华阳国志?蜀志》:“秦惠王知蜀王好色,许嫁五女于蜀。蜀遣五丁迎之。还到梓潼,见一大蛇入穴中。一人揽其尾掣之,不禁,至五人相助,大呼拽蛇,山崩时压杀五人及秦五女并将从,而山分为五岭。”横绝:横越。峨嵋巅:峨嵋顶峰。摧:倒塌。天梯:非常陡峭的山路。石栈:栈道。⑹六龙回日:《淮南子》注云:“日乘车,驾以六龙。羲和御之。日至此面而薄于虞渊,羲和至此而回六螭。”螭即龙。高标:指蜀山中可作一方之标识的最高峰。⑺冲波:水流冲击腾起的波浪,这里指激流。逆折:水流回旋。回川:有漩涡的河流。⑻黄鹤:黄鹄(Hú),又名天鹅,善于高飞。尚:尚且。得:能。猿猱(náo):蜀山中最善攀援的猴类。⑼青泥:青泥岭,在今甘肃徽县南,陕西略阳县北。《元和郡县志》卷二十二:“青泥岭,在县西北五十三里,接溪山东,即今通路也。悬崖万仞,山多云雨,行者屡逢泥淖,故号青泥岭。”百步九折:百步之内拐九道弯。萦:盘绕。岩峦:山峰。⑽扪参历井:参、井是二星宿名。古人把天上的星宿分别指配于地上的州国,叫做“分野”,以便通过观察天象来占卜地上所配州国的吉凶。参星为蜀之分野,井星为秦之分野。扪:用手摸。历:经过。胁息:屏气不敢呼吸。⑿子规:即杜鹃鸟,蜀地最多,鸣声悲哀,若云“不如归去”。《蜀记》曰:“昔有人姓杜名宇,王蜀,号曰望帝。宇死,俗说杜宇化为子规。子规,鸟名也。蜀人闻子规鸣,皆曰望帝也。”这两句也有断为“又闻子规啼,夜月愁空山”的,但不如此文这种断法顺。⒁嗟:感叹声。尔:你。胡为:为什么。来:指入蜀。⒂剑阁:又名剑门关,在四川剑阁县北,是大、小剑山之间的一条栈道,长约三十余里。峥嵘、崔嵬,都是形容山势高大雄峻的样子。⒄朝:早上。吮:吸。锦城:《元和郡县志》卷三十一剑南道成都府成都县:“锦城在县南十里,故锦官城也。”今四川成都市。⒅咨嗟:叹息。【翻译】:唉呀呀,多么危险多么高峻伟岸!蜀道真太难攀简直难于上青天。传说中蚕丛和鱼凫建立了蜀国,开国的年代实在久远无法详谈。自从那时至今约有四万八千年,秦蜀被秦岭所阻从不沟通往返。西边太白山有飞鸟能过的小道。从那小路走可横渡峨嵋山顶端。山崩地裂蜀国五壮士被压死了,两地才有天梯栈道开始相通连。上有挡住太阳神六龙车的山巅,下有激浪排空纡回曲折的大川。善于高飞的黄鹄尚且无法飞过,即使猢狲要想翻过也愁于攀援。青泥岭多么曲折绕着山峦盘旋,百步之内萦绕岩峦转九个弯弯。可以摸到参、井星叫人仰首屏息,用手抚胸惊恐不已坐下来长叹。好朋友呵请问你西游何时回还?可怕的岩山道实在难以登攀!只见那悲鸟在古树上哀鸣啼叫;雄雌相随飞翔在原始森林之间。月夜听到的是杜鹃悲惨的啼声,令人愁思绵绵呵这荒荡的空山!蜀道难走呵简直难于上青天,叫人听到这些怎么不脸色突变?山峰座座相连离天还不到一尺;枯松老枝倒挂倚贴在绝壁之间。漩涡飞转瀑布飞泻争相喧闹着;水石相击转动象万壑鸣雷一般。那去处恶劣艰险到了这种地步;唉呀呀你这个远方而来的客人,为了什么要来到这个地方?剑阁那地方崇峻巍峨高入云端,只要一人把守,千军万马也难攻占。驻守的官员若不是皇家的近亲;难免要变为豺狼踞此为非造反。清晨你要提心吊胆地躲避猛虎;傍晚你要警觉防范长蛇的灾难。豺狼虎豹磨牙吮血真叫人不安;毒蛇猛兽杀人如麻即令你胆寒。锦官城虽然说是个快乐的所在;如此险恶还不如早早地把家还。蜀道太难走呵简直难于上青天;侧身西望令人不免感慨与长叹!【赏析】:将神话传说、想象和艺术夸张融为一体进行写景抒情,是本诗的最主要艺术特点。三者相辅相成,生动描绘出了蜀道

uboot环境变量设置(大地小神之个人收藏)

u-boot的环境变量 u-boot的环境变量是使用u-boot的关键,它可以由你自己定义的,但是其中有一些也是大家经常使用,约定熟成的,有一些是u-boot 自己定义的,更改这些名字会出现错误,下面的表中我们列出了一些常用的环境变量: 上面只是一些最基本的环境变量,请注意,板子里原本是没有环境变量的,u-boot的缺省情况下会有一些基本的环境变量,在你执行了saveenv之后,环境变量会第一次保存到flash中,之后你对环境变量的修改,保存都是基于保存在flash中的环境变量的操作。

U-boot的环境变量值得注意的有两个:bootcmd 和bootargs ◆b o o t c m d 前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。 ◆b o o t a r g s bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来设置的。bootargs的种类非常非常的多,我们平常只是使用了几种而已,感兴趣的可以看看这篇文章说的很全:https://www.doczj.com/doc/6021590.html,/u2/79570/showart_1675071.html。bootargs非常的灵活,内核和文件系统的不同搭配就会有不同的设置方法,甚至你也可以不设置bootargs,而直接将其写到内核中去(在配置内核的选项中可以进行这样的设置),正是这些原因导致了bootargs使用上的困难。 下面介绍一下bootargs常用参数,bootargs的种类非常的多,而且随着kernel的发展会出现一些新的参数,使得设置会更加灵活多样。 A.r o o t 用来指定r o o t f s的位置,常见的情况有: root=/dev/ram rw root=/dev/ram0 rw 请注意上面的这两种设置情况是通用的,我做过测试甚至

蜀道难原文对照翻译

蜀道难原文对照翻译文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

蜀道难 李白 噫,吁嚱,危乎高哉!蜀道之难,难于上青天! 噫,哎呀,好高啊好险啊!蜀道之难,难于上青天! 蚕丛及鱼凫,开国何茫然!尔来四万八千岁,不与秦塞通 蚕丛和鱼凫是古蜀国的帝王,他们开国的事业何等茫然。从古到今四万八千年,秦蜀二地从不通人 人烟。西当太白有鸟道,可以横绝峨嵋巅。地崩山摧壮士死, 烟。西面太白山上只有鸟飞的路线,可以通往峨眉山巅。多少壮士在地裂山崩中死去,然后才有一 然后天梯石栈方钩连。 条天梯似的栈道互相钩连。 上有六龙回日之高标,下有冲波逆折之回川。黄鹤之飞尚 上有那驾着六龙的日车也要回头的高峰,下有那奔腾澎湃的激流也要倒退的回川。连高飞的黄鹤也 不得过,猿猱欲度愁攀援。青泥何盘盘,百步九折萦岩峦。扪 不得过啊,猿猴要过也无法攀援。青泥岭上路,盘旋又盘旋,百步九折绕山峦。抬起头来不敢出大 参历井仰胁息,以手抚膺坐长叹。问君西游何时还?畏途巉岩 气,手摸星辰头顶天。只好坐下来手按胸口发长叹:“西行的人啊,你什么时候回来呢?这可怕的

不可攀。 蜀道,实在难以登攀!” 但见悲鸟号古木,雄飞从雌绕林间。又闻子规啼夜月,愁 只听见鸟儿在古树上哀号,雌的跟着雄的飞绕在林间。又听见子规在月下哭泣:“不如归去!不如 空山。蜀道之难,难于上青天,使人听此凋朱颜。连峰去天不 归去!……”一声声,愁满空山。蜀道之难,难于上青天!听一听也会使人失去青春的容颜。山峰 盈尺,枯松倒挂倚绝壁。飞湍瀑流争喧豗,砯崖转石万壑雷。 连着山峰,离天还不到一尺远,千年枯枝倒挂在悬岩上边。激流和瀑布各把神通显,冲得山岩震, 其险也若此,嗟尔远道之人,胡为乎来哉。 推着巨石转,好一似雷霆回响在这万壑千山。“蜀道是这样的艰险啊!可叹(你们这些)远道而来的人,不知是为了什么?” 剑阁峥嵘而崔嵬,一夫当关,万夫莫开。所守或匪亲, 剑门关气象非凡,但也格外高险。一人来把守,万人难过关。把关的人若是不可靠,他反而成为祸 化为狼与豺。朝避猛虎,夕避长蛇,磨牙吮血,杀人如麻。锦 患。行人来到这里,早上要防备猛虎的袭击,晚上要警惕长蛇的暗算。它们磨快了牙齿,时刻要摆 城虽云乐,不如早还家。

UBOOT详细解读

大多数bootloader都分为stage1和stage2两部分,u-boot也不例外。依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。 1、Stage1 start.S代码结构 u-boot的stage1代码通常放在start.S文件中,他用汇编语言写成,其主要代码部分如下:(1)定义入口。由于一个可执行的Image必须有一个入口点,并且只能有一个全局入口,通常这个入口放在ROM(Flash)的0x0地址,因此,必须通知编译器以使其知道这个入口,该工作可通过修改连接器脚本来完成。 (2)设置异常向量(Exception Vector)。 (3)设置CPU的速度、时钟频率及终端控制寄存器。 (4)初始化内存控制器。 (5)将ROM中的程序复制到RAM中。 (6)初始化堆栈。 (7)转到RAM中执行,该工作可使用指令ldr pc来完成。 2、Stage2 C语言代码部分 lib_arm/board.c中的start arm boot是C语言开始的函数也是整个启动代码中C语言的主函数,同时还是整个u-boot(armboot)的主函数,该函数只要完成如下操作: (1)调用一系列的初始化函数。 (2)初始化Flash设备。 (3)初始化系统内存分配函数。 (4)如果目标系统拥有NAND设备,则初始化NAND设备。 (5)如果目标系统有显示设备,则初始化该类设备。 (6)初始化相关网络设备,填写IP、MAC地址等。 (7)进去命令循环(即整个boot的工作循环),接受用户从串口输入的命令,然后进行相应的工作。 3、U-Boot的启动顺序(示例,其他u-boot版本类似) cpu/arm920t/start.S @文件包含处理 #include @由顶层的mkconfig生成,其中只包含了一个文件:configs/<顶层makefile中6个参数的第1个参数>.h #include #include

李白《蜀道难》原诗、注释、翻译、阅读训练附答案

李白《蜀道难》原诗、注释、翻译、阅读训练附答案 【原诗】: 蜀道难 李白 剑阁峥嵘而崔嵬,一夫当关,万夫莫开。所守或匪亲,化为狼与豺。朝避猛虎,夕避长蛇,磨牙吮血,杀人如麻。锦城虽云乐,不如早还家。蜀道之难,难于上青天,侧身西望长咨嗟! 【注释】: ⑵蚕丛、鱼凫:传说中古蜀国两位国王的名字。何茫然:难以考证。何:多么。茫然:渺茫。 ⑶尔来:从那时以来。四万八千岁:极言时间之漫长,夸张而大约言之。秦塞:秦的关塞,指秦地。通人烟:人员往来。 ⑷西当:西对。当:对着,向着。太白:太白山,又名太乙山,在长安西。鸟道:只有鸟能飞过的小路。 ⑸地崩山摧壮士死:《华阳国志?蜀志》:“秦惠王知蜀王好色,许嫁五女于蜀。蜀遣五丁迎之。还到梓潼,见一大蛇入穴中。一人揽其尾掣之,不禁,至五人相助,大呼拽蛇,山崩时压杀五人及秦五女并将从,而山分为五岭。”横绝:横越。峨嵋巅:峨嵋顶峰。摧:倒塌。天梯:非常陡峭的山路。石栈:栈道。 ⑹六龙回日:《淮南子》注云:"日乘车,驾以六龙。羲和御之。日至此面而薄于虞渊,羲和至此而回六螭。”螭即龙。高标:指蜀山中可作一方之标识的最高峰。 ⑺冲波:水流冲击腾起的波浪,这里指激流。逆折:水流回旋。回川:有漩涡的河流。 ⑻黄鹤:黄鹄,又名天鹅,善于高飞。尚:尚且。得:能。猿猱:蜀山中最善攀援的 猴类。 ⑼青泥:青泥岭,在今甘肃徽县南,陕西略阳县北。《元和郡县志》卷二十二:“青泥岭,在县西北五十三里,接溪山东,即今通路也。悬崖万仞,山多云雨,行者屡逢泥淖,故号青泥岭。”百步九折:百步之内拐九道弯。萦:盘绕。岩峦:山峰。 ⑽扪参历井:参、井是二星宿名。古人把天上的星宿分别指配于地上的州国,叫做“分野”,以便通过观察天象来占卜地上所配州国的吉凶。参星为蜀之分野,井星为秦之分野。扪:用手摸。历:经过。胁息:屏气不敢呼吸。 (12)子规:即杜鹃鸟,蜀地最多,鸣声悲哀,若云“不如归去”。《蜀记》曰:“昔有人姓杜名宇,王蜀,号曰望帝。宇死,俗说杜宇化为子规。子规,鸟名也。蜀人闻子规鸣,皆曰望帝也。”这两句也有断为“又闻子规啼,夜月愁空山”的,但不如此文这种断法顺。

相关主题
文本预览
相关文档 最新文档