实验4 Blob 打印跟踪实验Word格式.docx
- 文档编号:17226972
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:13
- 大小:2.05MB
实验4 Blob 打印跟踪实验Word格式.docx
《实验4 Blob 打印跟踪实验Word格式.docx》由会员分享,可在线阅读,更多相关《实验4 Blob 打印跟踪实验Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
bldefine_gpio;
系统时钟信号使能调用->
blclock_enable;
SDRAM内存设置调用->
blsetup_memory、Blob自拷贝、堆栈的设置->
ldrsp,stack_point-4以及跳转到Blob第二阶段->
ldrpc,main)
【图4-2-1】
第二步:
打开Boot-XSBase270\src\fixgpio.S文件,找到配置GPIO的define_gpio函数,该函数主要实现对系统微处理器的GPIO的初始化过程。
其中涉及GPIO的输入/输出方向设置寄存器:
GPDRn、置位和清零寄存器(GPSRn、GPCRn)以及功能配置寄存器GPFRnL、GPFRnH等。
【图4-2-2】
第三步:
打开Boot-XSBase270\src\memsetup.S文件,找到setup_memory函数,该函数主要对系统外部的DRAM、SRAM(FLASH)、PCCard接口等存储设备所需参数进行配置,其中包括:
MDCNFG、MDREFR、MSCn等寄存器的配置。
【图4-2-3】
Blob第2阶段分析
第四步:
打开Boot-XSBase270\src\main.c文件,找到intmain(void)函数,该函数完成系统的Blob程序的第2阶段的硬件初始化和菜单显示等程序调用实现过程(主要包括:
终端显示串口初始化->
uart_init();
系统定时器->
time_init();
存储分配映射配置->
config_init();
Flash内存器操作配置初始化->
iflash_init();
以及网络芯片初始化->
eth_init();
等本阶段硬件初始化过程调用;
提示延时、菜单显示调用)
【图4-2-4】
【图4-2-5】
【图4-2-6】
第五步:
打开Boot-XSBase270\src\serial.c文件,分别找到uart_init(void)、intuart_putc(intch)和intuart_getc(void)三个串口操作基本函数。
主要完成串口初始化与从串口获取和输出字符等操作。
实现对PXA270的串口相关寄存器进行配置。
其他与串口相关的函数都直接或间接调用这三个函数。
【图4-2-7】
串口输入输出函数
【图4-2-8】
第六步:
打开Boot-XSBase270\src\Partition.c文件,找到init_map(void)和find_map(constchar*name)函数,这两个函数主要完成对存储分配映射进行配置和查找某个指定类型的内存映射参数。
其中parts结构体数组定义了整个系统的SRAM、SDRAM等内存映射的相关参数。
【图4-2-9】
内存分配映射结构体数组
【图4-2-10】
第七步:
打开Boot-XSBase270\src\Flash.c文件,该文件中函数主要完成对flash的编程、擦除、加/解锁等操作。
其中iflash_init(void)函数主要实现查询平台的flash存储芯片的相关信息,flash操作的命令可参考flash芯片的资料文档。
【图4-2-11】
第八步:
打开Boot-XSBase270\src\Flash.c文件,该文件中函数主要实现lan91c111网络芯片的底层操作配置操作,其中lan91c111_init(void)函数由main.c文件中的eth_init()函数间接调用。
具体寄存器操作方法参考lan91c111的资料文档。
【图4-2-12】
第九步:
打开Boot-XSBase270\src\Network.c文件,该文件中的函数主要完成网络传输相关协议的封装(如:
set_udp_header、set_ip_header、set_ether_header、set_arp_heade、set_icmp_header等)、网络数据包的解压(udp_recv_packet、ip_recv_packet、eth_recv_packet、arp_recv_packet、icmp_recv_packet)以及网络传输请求数据包的发送(send_arp_request_packet、send_icmp_echo_request等)等操作。
【图4-2-13】
第一十步:
打开Boot-XSBase270\src\tftp.c文件,该文件中的函数主要完成文件TFTP传输相关操作。
【图4-2-14】
Blob跟踪调试信息输出
第一十一步:
打开Boot-XSBase270\src\main.c文件,屏蔽config_init函数后面的printf("
\033[H\033[J\n"
);
语句,同时将该语句添加到uart_init函数后,并在uart_init函数后面添加printf("
UARTinitover\n"
语句。
【图4-2-15】
第一十二步:
打开Boot-XSBase270\src\Lan91c111.c文件,在lan91c111_init()函数返回前添加test_get_reg();
函数,测试lan91c111网卡芯片的相关寄存器。
【图4-2-16】
第一十三步:
打开Boot-XSBase270\src\Time.c文件,分别在time_init()函数中添加如下调试输出信息。
printf("
time_init++\n"
……
udelay:
msecond_boundary:
%d[0x%08lx]\n"
msecond_boundary,msecond_boundary);
time_init--\n"
【图4-2-17】
第一十四步:
打开Boot-XSBase270\src\Partition.c文件,在init_map函数中增加如下调试信息。
Memorymapnameis%s\n"
part->
name);
MemorymapSRAMBaseAddressis0x%08x\n"
sramb);
MemorymapSRAMSIZEis0x%08x\n"
srams);
MemorymapDRAMBaseAddressis0x%08x\n"
dramb);
MemorymapDRAMSizeis0x%08x\n"
drams);
MemorymapMaxSizeis0x%08x\n"
maxs);
【图4-2-18】
第一十五步:
打开Boot-XSBase270\src\Flash.c文件,去掉//#definedetail(fmt,args...)printf(fmt,##args)宏定义的屏蔽符“//”,使该宏定义功能有效。
【图4-2-19】
第一十六步:
保存所有修改后的文件在Boot-XSBase270目录下利用make命令对修改后的源码进行编译;
编译后将生成boot文件。
makeclean
make
【图4-2-20】
【图4-2-21】
第一十七步:
将成功编译后的boot文件拷贝到Jflash-XSBase270文件夹中,连接JTAG,开启电源,并在该目录下执行下载烧录命令。
./jflashmmboot;
【图4-2-22】
第一十八步:
重新启动开发板,在延时时间内(3秒)按空格键,Blob显示修改后调试信息。
【图4-2-23】
【图4-2-24】
【图4-2-25】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验4 Blob 打印跟踪实验 实验 打印 跟踪