U-Boot常用命令详解:系统启动与环境管理

需积分: 30 75 下载量 43 浏览量 更新于2024-08-10 收藏 1.12MB PDF 举报
本文档是一份关于ARM Linux系统移植的详细指南,主要介绍了在CRANE2410开发板上使用的常用命令及其功能。这部分内容涵盖了硬件环境、软件环境、工具使用以及系统启动过程中Bootloader(如ADS)的编写。 1. **硬件环境**: - 主机硬件:文档未具体说明主机硬件,但提到目标板硬件环境,比如开发板的启动引导参数、内存区域和网络信息。 - 目标板硬件:CRANE2410具有特定的架构(0x000000C1),内存从0x30000000开始,大小为0x04000000,支持以太网和IP地址,并有指定的波特率。 2. **软件环境**: - 主机软件:包括Windows和Linux操作系统,用于交叉编译和工具安装。 - Linux工作环境:涉及到交叉工具链的安装,如ARMASM、armcc、armcpp和armlink,以及u-boot的移植工作。 - 工具使用:minicom被用来进行串口通信,tftp服务器配置用于系统启动时从网络获取镜像文件。 3. **命令使用**: - `askenv(F)`:查询并显示环境变量。 - `autoscr`:从内存运行教本,指定内存地址。 - `base`:显示或设置当前指令与下载地址的偏移。 - `bdinfo`:提供开发板详细信息,如架构、内存区域、网络配置等。 - `bootp` 和 `bootelf`:分别用于通过网络引导Bootp/TFTP或加载ELF格式的镜像文件。 - `bootd` 或 `boot`:默认引导命令,通常使用TFTP加载U-Boot的配置来引导内核。 - `set bootcmd` 和 `printenv`:设置和查看启动时的环境变量。 4. **Bootloader编写**: - 使用ADS(Advanced Development Studio)作为Bootloader的编写工具,包括命令行命令介绍、源代码的汇编和C部分。 - 源代码说明详细到汇编和C语言层面,强调了内存映射、启动过程的汇编和C实现。 5. **GNU交叉工具链**: - 设置环境变量以准备源码、补丁和构建工具,如binutils、gcc、glibc、Linux kernel等。 - 需要处理特定的补丁文件,如ioperm.c.diff、flow.c.diff和t-linux.diff,以适应目标平台。 总结来说,这份文档是针对CRANE2410开发板进行ARM Linux系统移植的实用指南,涵盖从硬件环境、软件配置到命令使用和Bootloader编程的方方面面,适合系统移植工程师参考和实践。

使用映射算法将 ER 架构映射到关系数据库架构。使用以下表示法表示生成的关系数据库架构:PK 表示主键,AK 表示备用键,FK 表示外键,并带有指向相应表(主键)的箭头 Book Entity (Strong) - Title (single valued, simple string) - ISBN (single valued, simple alphanumeric string), pk - Edition (single valued, simple numeric) - Date of Publication (single valued, composite concatenation of characters and numbers) - Price (single valued, simple floating point number) - Book Description (single valued, simple string) Author Entity (Strong) - Author Name - Author_id, pk Publisher Entity (Strong) - Publisher id (single value, simple numeric), pk - Publisher Name (single valued, simple string) - Address (single valued, simple string) - together the publisher name and address could make an alternate key because no to publishers can have the same name and address Customer Entity (strong) - Customer_id (single valued, simple string), pk - Name (composite one value for first, middle and last name, simple string) - Mailing Address (single valued, simple string) - Credit Card Number and Expiration Date (single value, simple numeric sequence), alternate key - Phone Number (single value, simple alphanumeric string) - Email Address (single valued, simple alphanumeric string) Shipment (strong) - Date of Shipment ( single valued, composite of strings and numbers) - Tracking Number (single valued, simple alphanumeric string), pk - Date of Expected Delivery ( single valued, compoite of strings and numbers) Order (Strong) - Order Number (single valued, simple number), pk - Mailing Address (single value, simple string) - Method of Shipment (single value, simple string) - Date and Time of Order (when the order was placed) - Total Price of the Order (multivalue, composite) Promotion (strong entity type ) - Promotion id number, pk - Percentage Discount Points (single value, simple float) - Duration of Promotion (start date and end date) ( composite attributes like the dates above) Line Item(weak entity type) - Total price for each book that is ordered (single value, two place precision float) - Quantity of each item ordered Category (strong entity) - Category ID (single value, simple numeric), pk - Category Name (single value, simple string),

2023-06-11 上传

use java language ,In this project you need to write a book lending system for a Library. The system has different roles for registered users. There are two types of user roles: borrower and lender. Write an IUser interface for library users, with the following UML specification: +----------------------------------+ | <<interface>> | | IUser | +----------------------------------+ | + getName(): String | | + getBook(): int | | + moreBook(int number): void | +----------------------------------+ and a User class that implements IUser and has the following UML specification: +-----------------------------------+ | User | +-----------------------------------+ | - name: String | | - book: int | +-----------------------------------+ | + User(String name, int book) | | + getName(): String | | + getBook(): int | | # setBook(int book): void | | + moreBook(int number): void | | + testUser(): void | +-----------------------------------+ The name instance variable indicates the user name. The book instance variable indicates the number of books borrowed by the user. The setBook method changes the number of books borrowed by the user. The setBook method is protected, not public. This means that only subclasses of the User class can use the setBook method. All the other classes in the system cannot use the setBook method, so they cannot change the number of books borrowed by a user. The purpose of the moreBook method is to increase the number of books borrowed or lent by the user (depending on what kind of user it is) by the number given as argument to the method. The moreBook method of the User class is abstract, since we do not know what kind of role the user is (a borrower borrows books from other users and a lender lend books to other users). Also add to your program a Test class to test your User class. public class Test { public static void main(String[] args) { User.testUser(); } }

2023-05-25 上传

continue to use Java language, Add a class Borrower that extends User. The constructor of the Borrower class takes a name and a number of books borrowed by the borrower. If the number of books given as argument is strictly less than zero, then the constructor must throw a NotALenderException with the message “A new borrower cannot lend books.”. The borrower class does not have any instance variable. The moreBook method of the Borrower class increases the number of books borrowed by the borrower by the number of books given as argument to the method (so the books borrowed by the borrower becomes more positive!) For example, if a borrower currently borrows 10 books and moreBook(2) is called then the borrower borrows 12 books. It is fine for the moreBook method to be given a negative value as argument, which means the borrower then just returned some books. For example, if a borrower currently borrows 10 books and moreBook(-2) is called then the borrower borrows 8 books. However, a borrower cannot lend books, so the number of books borrowed by the borrower must always be positive or zero, never negative. If the argument given to the moreBook method is too negative and would change the book variable into a negative value, then the number of books borrowed by the borrower must not change and the moreBook method must throw a NotALenderException with the message “A borrower cannot lend XXX book(s).”, where XXX is replaced with the result of -(book + number). For example, if a borrower currently borrows 10 books and moreBook(-12) is called then the borrower still borrows 10 books and the method throws a NotALenderException with the message “A borrower cannot lend 2 book(s).”. Note: to simplify the project, do not worry about the setBook method. Change other classes and interfaces as necessary

2023-05-25 上传