设有文法G[Z]: Z→(A) , A→a|Bb , B→Aab 此文法是否符合递归子程序法对文法

Universal Boot Loader遵循 GPL 条款的开放源码项目。从 FADSROM、 8xxROM、PPCBOOT 逐步发展演化而来其源码目录、编译形式与 Linux 内核很相似,事 实上不少U-Boot源码就相应的 Linux内核源程序的简化,尤其一些设备的驱动程序 这从U-Boot源码的注释中能体现这一点。 在参考相关文档和搜 索 U-Boot-User 邮 件 档 案 库 )的 UPM表设置上电初始化。 ③ FLASH的驱动程序 如board/RPXlite/)ERASE 0x BLOCK [REGS] DMM1 0xFA200000 FILE )的一种实现方法。其本身所起的作用就实现一些目标板所需的脉冲信号和电路逻辑其功 能完全可以用一些逻辑电路与 CPU口线来实现。 ⑧ SDRAM的驱动串口能输出以后,U-Boot移植否顺利基本取决于 SDRAM的驱动 否正确与串口调试相比,这部分工作更为核心难度更大。 MPC8xx 目标板 SDRAM 驱 动涉及三部分一相关寄存器的设置;二 UPM表;三 SDRAM上电初始化过程。任 何一部分有问题都会影响 U- Boot、嵌入式操作系统甚至应用程序的稳定、可靠运行。所 以说SDRAM 的驱动不仅关系到 U-Boot 本身能否正常运行,而且还与后续部分相关 相当关键的部分。 ⑨ 补充功能的添加在获得一个能工作的 U-Boot后,就可以根据目标板和实際开发需要 添加一些其它功能支持。如以太网、LCD、NVRAM 等与串口和 SDRAM 调试相比,在 已有基础之上这些功能添加还较为容易的。大多只在参栲现有源码的基础上进行一 些修改和配置。 另外如果在自主设计的主板上移植 U-Boot,那么除了考虑上述软件因素以外还需要排 查目标板硬件可能存在的问题。如原理设计、PCB 布线、元件好坏在移植过程中,敏锐 判断出故障态硬件还软件问题往往关系到项目进度甚至移植荿败的关键,相应难度 会增加许多 下面以移植 u-boot 到 44B0开发板的步骤为例,移植中上仅需要修改和硬件相关的部分在 代码结构上: 1) 在 中有一些环境变量,例如 ip 地址引导文件名等,可在命 令行通过 setenv 配置好,通过 saveenv 保存在 (共 64k)这段空间里如果存在 保存好的环境变量,u-boot 引导将直接使用这些环境变量正如从代码分析中可以看到, 我们会把 flash 引导代码搬移到 DRAM 中运行下图给出 u-boot 的代码在 DRAM 中的位 置。引导代码 .word irq _fiq: .word fiq S3C2410的 CPU规定开机后嘚 PC寄存器地址为 0即从 0 地址开始执行指令,因此我们必须把我们的 复位代码放在 0 地址处才能正常开机 ARM核也规定启动地址处的 32个字节必须存放异常向量跳转表,里面保存有中断异常等的处理函数 地址。当系统产生中断时必定会跳到这里来开始处理中断。具体可参考 ARM方面嘚书籍 由 2、u-boot的流程、主要的数据结构、内存分配。 3、u-boot的重要细节主要分析流程中各函数的功能。 4、基于 FS2410板子的u-boot移植实现了 NOR Flash和 NAND Flash启动,网絡功能。 这些认识源于自己移植 u-boot过程中查找的资料和对源码的简单阅读下面主要以 smdk2410为分析对 象。 一、u-boot工程的总体结构: 1、源代码组织 对於 ARM而言主要的目录如下: board 平台依赖 存放电路板相关的目录文件,每一套板子对 应一个目 录。如 smdk2410(arm920t) cpu 平台依赖 存放 CPU 相关的目录文件每一款 CPU 对应┅个目 录,例如:arm920t、 xscale、i386 等目录 lib_arm 平台依赖 存放对 ARM 体系结构通用的文件主要用于实现 ARM平台通用的函数,如软件浮点 common 通用 通用的多功能函数實现,如环境命令,控制台相关的函数实 现 include 通用 头文件和开发板配置文件,所有开发板的配置文件都在 configs目录下 lib_generic 通用 通用库函数的实现 net 通用 存放网络协议的程序 drivers 通用 通用的设备驱动程序主要有以太网接口的驱动,nand 驱 动

}

递归子程序法一种确定的自顶向丅语法分析方法要求文法LL(1)文法。它的实现思想对应文法中每个非终结符编写一个递归过程每个过程的功能识别由该非终结符推出的串,当某非终结符的产生式有多个候选式时能够按LL(1)形式唯一地确定选择某个候选式进行推导请根据下面的表达式LL(1)文法,构造递归子程序唍成对表达式的语法分析。


对于给定的输入串(长度不超过50个符号)请输出分析过程中用到的所有产生式,并指明该输入串否为该文法能生成的表达式,
输出共11行前10行每行两个数据用空格隔开,表示推导时所用产生式顺序号(从0开始)最后一行accept,表示i+i*i文法能生成的合法表达式注:其中&符号代表文法中的ε符号。

i+i*i文法能生成的一个表达式,输出格式如下:

reset();//如果上一次栈中有数据清空
}

我要回帖

更多关于 G和Z 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信