ImageVerifierCode 换一换
格式:DOC , 页数:88 ,大小:767KB ,
资源ID:8229523      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8229523.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(实验总结.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

实验总结.doc

1、 目 录 1 环境的搭建 5 1.1 VMware Workstation 5 1.2 超级终端 5 1.3 XShell 5 1.3.1 连接ARM开发板 5 1.3.2 连接虚拟机(XP的本地连接可用时) 6 1.3.3 连接虚拟机(XP的本地连接不可用时) 6 1.3.4 XShell其他配置 6 1.4 Source Insight 6 1.5 虚拟机Samba服务器:将虚拟机中的文件夹共享给XP 7 1.6 将XP中的文件夹共享给虚拟机 7 1.7 NFS共享:将虚拟机中的文件夹共享给ARM开发板 7 2 Linux程序设计基础 8 2.1 在

2、虚拟机上编辑、编译和运行程序 8 2.2 交叉编译(在虚拟机上编译ARM开发板上可运行的程序) 9 3 U-BOOT移植实验 10 3.1 解压u-boot源码 10 3.2 建立UP2410的板级支持 10 3.3 让up2410的u-boot支持从Nand Flash启动 10 3.4 让up2410的u-boot支持dm9000网卡 14 3.5 编译up2410的u-boot 16 3.6 烧写u-boot 16 3.7 测试u-boot 16 4 LINUX内核移植实验 17 4.1 资源 17 4.2 解压源码包 17 4.3 修改Makefile文件,支

3、持交叉编译 17 4.4 得到.config文件 17 4.5 修改Nand Flash分区 17 4.6 添加LCD支持 18 4.7 添加网卡驱动 19 4.8 添加YAFFS文件系统支持 20 4.9 内核配置(即内核裁剪) 20 4.10 编译内核 21 4.11 烧写内核 21 5 根文件系统的制作 23 5.1 解压busybox 23 5.2 修改Makefile文件,支持交叉编译 23 5.3 编译 23 5.4 创建根文件系统的目录结构 23 5.5 得到etc文件夹内容 24 5.6 复制_install文件夹内容 26 5.7 拷贝动态库

4、26 5.8 制作cramfs的文件系统 26 5.8 烧写文件系统 27 5.9 重设ARM开发板启动参数 27 6 模块驱动实验 28 6.1 编辑模块驱动程序demo.c和用户测试程序test_demo.c 28 6.2 编译和测试驱动程序(基于Linux虚拟机的驱动程序) 28 6.2.1 编译Linux虚拟机上的目标文件 28 6.2.2 在Linux虚拟机上插入设备驱动、建立设备节点 29 6.2.3 在Linux虚拟机上运行测试程序 29 6.3 交叉编译和测试驱动程序(基于ARM开发板的驱动程序) 29 6.3.1 编译ARM开发板上的目标文件 29 6

5、3.2 在ARM开发板上插入设备驱动、建立设备节点 29 6.3.3 在ARM开发板上运行测试程序 30 6.4 程序源码 30 6.4.1 demo.c 30 6.4.2 test_demo.c 33 7 A/D转换实验 35 7.1 重新编译和烧写内核 35 7.2 编辑驱动程序和用户测试程序 35 7.3 编译生成目标文件 35 7.4 将目标文件传到ARM开发板 35 7.5 驱动 36 7.6 测试 36 7.7 程序源码 36 7.7.1 s3c2410_adc.h 36 7.7.2 s3c2410_adc.c 36 7.7.3 main.c 40

6、 8 socket编程实验 42 8.1 demo1(假设Linux虚拟机是服务器,ARM开发板是客户端) 42 8.1.1 编辑skt_ser.c和skt_cli.c 42 8.1.2 编译 42 8.1.3 将客户端目标程序skt_cli传到ARM开发板 42 8.1.4 运行 42 8.2 demo2(假设ARM开发板是服务器,Linux虚拟机是客户端) 43 8.2.1 编辑server.c和client.c 43 8.2.2 编译 43 8.2.3 将服务器端目标程序server传到ARM开发板 43 8.2.4 运行 43 8.3 程序源码 43 8.3.1

7、 skt_ser.c 43 8.3.2 ske_cli.c 45 8.3.3 server.c 46 8.3.4 client.c 47 9 帧缓冲驱动实验 49 10 触摸屏驱动实验 50 10.1 得到tslib源码 50 10.2 生成可执行文件 50 10.3 将触摸屏库挂载到arm开发板 50 10.4 加载触摸屏驱动 51 10.5 设置环境变量 51 10.6 触摸屏校准和测试 51 11 WEB实验 52 11.1 运行原理 52 11.2 编辑和编译程序 52 11.2.1 编辑源程序 52 11.2.2 编译 52 11.3 加载ADC驱动

8、 52 11.4 得到WEB服务器boa 52 11.5 配置boa服务器 53 11.6 程序源码 53 12 视频实验 60 12.1 压缩包简介 60 12.2 解压并编译jpeg标准库 60 12.3 运行一个图像显示应用程序jpegshow 61 12.4 运行一个抓图应用程序mouse_capture 61 12.5 修改后再运行mouse_capture 62 12.6 更新jpeg标准库 62 12.7 运行一个抓图显示应用程序v4lcap 63 12.8 配置网络摄像头和WEB服务器 64 12.9 程序源码 65 12.9.1 jpegshow中

9、的main.c 65 12.9.2 jpegshow中的fb.h 66 12.9.3 jpegshow中的fb.c 67 12.9.4 mouse_capture中的server.c 68 12.9.5 mouse_capture中的run.sh 70 13 QT实验(For Linux) 71 13.1 编译QT-X11环境 71 13.2 编写QT-X11程序 71 13.3 编译、执行 71 13.4 程序源码 72 13.4.1 myqt.h 72 13.4.2 myqt.cpp 72 13.4.3 main.cpp 73 14 QT实验(For ARM) 7

10、4 14.1 挂载触摸屏库 74 14.2 编译和配置QT/E环境 74 14.3 驱动触摸屏 75 14.4 利用QT-X11的designer编写应用程序界面 75 14.5 在QT/E环境中编译 75 14.6 在ARM开发板上测试 76 15 GPRS实验 77 15.1 重新编译arm开发板的linux内核 77 15.2 将触摸屏库和QT/E库挂载到arm开发板 77 15.3 驱动触摸屏、设置环境变量、触摸屏校准 77 15.4 生成一个手机的应用程序 78 15.5 在ARM开发板上测试 78 15.6 程序源码 78 15.6.1 gprs.h 7

11、8 15.6.2 gprs.cpp 80 15.6.3 main.cpp 86 16 考核 88 16.1 过程简介 88 16.2 程序源码 89 16.2.1 led.c 89 16.2.2 myled.h 93 16.2.3 myled.cpp 93 16.2.4 main.cpp 95 7 UP2410 1 环境的搭建 1 环境的搭建 1.1 VMware Workstation

12、 (用于启动RedHat9 linux虚拟机) 1. 启动:双击redhat.vmx 2. 配置:打开菜单“虚拟机à设置” 硬件: (1)内存:256M(不能大于本机内存的1/3) (2)以太网:选择“桥接” (3)串口:选择“COM1”,不要选择“打开电源连接” 选项: (1)文件夹共享:选择“总是启用” 共享后的文件夹在“/mnt/hgfs”文件夹内可见 3. 第一次使用时,点击“打开虚拟机电源”后会有提示,“确定”即可。用户名“root”,密码“123456”。 1.2 超级终端 1. 启动:开始à程序à附件à通讯à超级终端 2. 是否将HyperTerminal

13、作为默认的telnet程序?“否” 3. 位置信息窗口。“取消” 4. 需要拨号位置的电话信息,确实要取消吗?“是”“确定” 5. 为新的连接取名:“ttyS0”(随便取) 6. 连接实验箱的串口:“COM1” 7. 端口设置(即串口COM1的设置) 串口波特率115200;数据位8;奇偶校验“无”;停止位1;数据流控制“无”。 8. 进入vivi启动界面。“文件à另存为”保存该连接设置。 1.3 XShell 1.3.1 连接ARM开发板 1. 超级终端、虚拟机、其他占用COM1的软件全部关闭,否则无法连接ARM开发板。 2. 启动:双击“XShell” 3. 点击

14、左上角图标,新建会话连接ARM开发板。 Name:arm Method:SERIAL setup(波特率=115200,Port=COM1,Data Bits=8,Stop Bits=1,Parity=None) 4. 选中“arm”,点击“connect”。 5. 此时已经连接上ARM开发板了,可以使用XShell与之进行交互了,如果有问题可以重新启动ARM开发板。 1.3.2 连接虚拟机(XP的本地连接可用时) 1. XP的本地IP地址192.168.1.11;子网掩码255.255.255.0;默认网关192.168.1.254 VMware Network Adapt

15、er VMnet1 自动获得IP地址 VMware Network Adapter VMnet8 自动获得IP地址 2. Linux虚拟机内运行命令ifconfig,查看虚拟机网络设置 IP地址192.168.1.12;子网掩码255.255.255.0;默认网关192.168.1.254 3. 启动XShell后,点击左上角图标,新建一个会话连接虚拟机。 Name:redhat(可以任意取名) Method:SSH Host:192.168.1.12(与Linux虚拟机的IP地址一致即可) Port Number:22 Method:Password User Name

16、root Password:123456 4. 选中“redhat”,点“connect”,选择“Accept&Save” 5. 此时已经连接上Linux虚拟机了,可以使用XShell访问Linux系统了。 1.3.3 连接虚拟机(XP的本地连接不可用时) 1. XP的本地IP地址192.168.1.11;子网掩码255.255.255.0;默认网关192.168.1.254 VMnet1本地IP地址192.168.1.15;子网掩码255.255.255.0;默认网关192.168.1.254 VMnet8自动获得IP地址 2-5同上 1.3.4 XShell其他配置

17、 1. 背景方案图标中可选择“白底黑字”或“黑底白字”等。 2. 中文乱码的解决:配置图标中选择“Advanced”à“utf8中文简体” 字体选择“仿宋” 1.4 Source Insight 1. 启动:双击“Insight3.exe” 2. “项目”à“新项目”。名称任意,存储路径最好与源代码在同一目录。 3. 共享全局配置文件 4. “项目源文件目录”右侧点击“浏览” 5. 选择要编辑的源码所在目录后,点击“添加树”,“关闭”即可。 6. 默认情况下,不能阅读汇编文件,解决办法:“选项”à“文档选项”,在文件过滤器中输入“*.c;*.h;*.s;*.S”,选

18、中“加入到项目时包含”,点击“关闭”即可。 7. 在菜单中选择“项目”à“同步文件”,选中“自动加入新文件”和“禁止警告信息”,同步后新的汇编代码就会自动添加到我们的工程里了。 1.5 虚拟机Samba服务器:将虚拟机中的文件夹共享给XP 1. 启动linux虚拟机,进入home文件夹(cd /home),创建uptech文件夹(mkdir uptech)。 2. 改变uptech文件夹的权限(chmod 777 uptech/)。任何用户可读可写可执行。 3. 在虚拟机的红帽菜单中“系统设置”à“服务器设置”à“samba” 4. 在Samba服务器配置中点击“添加”图标,来添加

19、共享文件夹的名称。 (1)目录:“/home/uptech” (2)共享名:“uptech” (3)权限:“读/写” (4)访问:选中“允许所有用户访问” 5. 在XP的地址栏中输入“//192.168.1.12”即可访问Linux虚拟机的“/home/uptech”了。 1.6 将XP中的文件夹共享给虚拟机 1. 在虚拟机菜单中选择“虚拟机à设置” 2. 选择“选项”à“文件夹共享”:选择“总是启用”,可以添加想要共享的文件夹。 3. 此时,XP的共享文件夹在linux的“/mnt/hgfs”文件夹内可见。 1.7 NFS共享:将虚拟机中的文件夹共享给ARM开发板

20、 1. 确保XP、linux虚拟机、ARM开发板三者的IP地址在同一网段,并且不冲突,能够互相ping通。 2. 在虚拟机中配置NFS:“系统设置”à“服务器设置”à“NFS”,点击“添加”图标 (1)目录:/home/uptech (任意,选择要共享给ARM开发板的目录) (2)目录主机:* (3)权限:读/写 (4)常规选项中选中“允许来自高于1024的端口的连接”和“按要求同步写操作” (5)用户访问中选中“把远程根用户当作本地根用户” 3. 在Linux虚拟机中输入命令“route del default”,取消虚拟机的默认路由。 4. 在ARM开发板上操作

21、如下: (1)ifconfig eth0 192.168.1.13 (配置ARM开发板的IP地址) (2)mount –o nolock,rsize=4096,wsize=4096 192.168.1.12:/home/uptech /mnt/nfs (将linux虚拟机 /home/uptech 目录挂载到ARM开发板的/mnt/nfs目录下) (3)cd /mnt/nfs (即可访问Linux共享的文件夹) UP2410

22、 2 Linux程序设计基础 2 Linux程序设计基础 2.1 在虚拟机上编辑、编译和运行程序 1. 启动Linux 2. 进入需要存放程序文件的文件夹“cd /home/uptech/……” 3. 编辑:vi 文件名。例如:“vi starfun.h”、“vi hello.h”、“vi hello.c”、“vi star.c” 编辑完每个文件后,使用ESC,shift+z+z保存退出 使用ESC,:w 保存文件 使用ESC,:q! 退出 (1)Starfun.h 文件内容如下: /*****starfun.h*****/ #ifndef STA

23、RFUN_H #define STARFUN_H #define NUM 4 #define NUMBER 3 int star1() { int i,j,k; for(k=1;k<=NUM;++k) { for(i=1;i<=(NUM-k);++i) printf(" "); for(j=1;j<=(2*k-1);++j) printf("*"); printf("\n"); } return 0; } int star2() { int i,j,k; for(k=NUMBER;k>=0;--k)

24、{ for(i=1;i<=(NUMBER-k+1);++i) printf(" "); for(j=1;j<=(2*k-1);++j) printf("*"); printf("\n"); } return 0; } #endif (2)hello.h文件内容如下: /*hello.h*/ #ifndef HELLO_H #define HELLO_H void hello() { star1(); printf("hello,my friends\n"); } #endif (3)h

25、ello.c 文件内容如下: void showhello() { hello(); } (4)star.c文件内容如下: #include "starfun.h" #include "hello.h" #include int main() { star1(); star2(); showhello(); return 0; } 4. 编译(分步编译): (1)gcc -c star.c -o star.o star.c+starfun.h生成star.o (2)gcc -c hello.c -o hello.o

26、 hello.c+hello.h+starfun.h生成hello.o (3)gcc star.o hello.o -o myprog hello.o+star.o生成应用程序myprog 编译(一步编译)star.c+hello.c+hello.h+starfun.h生成应用程序myprog gcc star.c hello.c -o myprog 5. 运行程序:“./myprog” (这个程序只能在Linux虚拟机中运行,不能在ARM中运行) 2.2 交叉编译(在虚拟机上编译ARM开发板上可运行的程序) 1. 在linux中编译生成ARM开发板上运行的程序: ar

27、m-linux-gcc star.c hello.c -o myprog 2. 将目标文件myprog传到ARM开发板: (1)在Linux虚拟机中将目标文件拷贝到tftpboot文件夹:cp myprog /tftpboot (2)在ARM上执行“tftp –r myprog –g 192.168.1.12” (3)在ARM开发板上修改myprog的权限: “chmod 777 myprog”或“chmod +x myprog” 3. 在ARM开发板上运行程序:“./myprog” 88 UP2410

28、 3 U-BOOT移植实验 3 U-BOOT移植实验 3.1 解压u-boot源码 1. 在虚拟机中,利用Samba共享一个文件夹给XP,例如共享“/home/uptech”文件夹 2. 将该文件夹的权限设为可读可写可执行“chmod 777 /home/uptech” 3. 在XP中,把“03/下午/src”文件夹拷贝到“//192.168.1.12”的共享文件夹uptech内,并把uptech中的“src”更名为“03 u-boot” 4. 在Linux虚拟机中进入该文件夹“cd

29、 /home/uptech/03 u-boot” 输入“ls”命令,可见该文件夹内有3个文件: “u-boot-1.3.2.tar.bz2” (u-boot-1.3.2源码压缩包) “dm9000x.h”、“dm9000x.c” (dm9000网卡驱动程序) 5. 解压u-boot源码压缩包,即输入命令“tar jxvf u-boot-1.3.2.tar.bz2” 3.2 建立UP2410的板级支持 1. 进入u-boot源码文件夹,输入命令“cd u-boot-1.3.2” 2. 建立UP2410板级支持包 “cd board” “mkdir up2410”

30、 在board文件夹内创建“up2410”文件夹 “cp smdk2410/* up2410/ -a” 将smdk2410文件夹的内容拷贝到up2410文件夹内 “cd ..” 返回u-boot-1.3.2目录 “cp include/config/smdk2410.h include/config/up2410.h” 以smdk2410为模板创建up2410配置文件up2410.h 3. 配置UP2410开发板,即修改“u-boot-1.3.2/Makefile”文件 “vi Makefile” 输入“/smdk2410”找到 smdk2400_confi

31、g : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 NULL s3c24x0 紧接这两行添加如下两行: up2410_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t up2410 NULL s3c24x0 其中第二行开始部分的空白是按TAB键获得的! 4. 保存退出Makefile文件。 ESC, shift+z z 3.3 让up2410的u-boot支持从Nand Flash启动 1. 修改“u-boot-1.3.2/cpu/arm920

32、t/start.S”文件 2. 新建“u-boot-1.3.2/ board/up2410/nand.c”文件 3. 修改“u-boot-1.3.2/board/up2410/Makefile”文件 4. 修改“u-boot-1.3.2/include/configs/up2410.h”文件 具体如下: 1、修改“u-boot-1.3.2/cpu/arm920t/start.S”文件(vi cpu/arm920t/start.S) ESC :set number (用于显示行号) (1)181行和201行前加上//,注释掉 181 //#ifdef CONFIG

33、AT91RM9200 201 //#endif (2)203行(即#ifndef CONFIG_SKIP_RELOCATE_UBOOT之后)加入: #ifdef CONFIG_S3C2410_NAND_BOOT bl copy_myself #else (3)“ble copy_loop”语句之后加入: #endif (4)“_start_armboot: .word start_armboot”语句之后加入copy_loop子程序: /* ***************************************************************

34、 * * copy u-boot to ram * ************************************************************************* */ #ifdef CONFIG_S3C2410_NAND_BOOT copy_myself: mov r10, lr @save return address to r10 ldr sp, DW_STACK_START mov fp, #0 bl NF_In

35、it ldr r0, =UBOOT_RAM_BASE mov r1, #0x0 mov r2, #0x30000 bl nand_read_whole tst r0, #0x0 beq ok_nand_read 1: b 1b ok_nand_read: mov r0, #0x00000000 ldr r1, =UBOOT_RAM_BASE mov r2, #0x400 go_next: ldr r3, [r0], #4 ldr r4,

36、[r1], #4 teq r3, r4 bne notmatch subs r2, r2, #4 beq done_nand_read bne go_next notmatch: 1: b 1b done_nand_read: mov pc, r10 #endif DW_STACK_START: .word STACK_BASE+STACK_SIZE-4 2、新建“u-boot-1.3.2/ board/up2410/nand.c”文件(vi board/up2410/na

37、nd.c) #include #include #include #define TACLS 0 #define TWRPH0 3 #define TWRPH1 0 #define U32 unsigned int extern unsigned long nand_probe(unsigned long physadr); static void NF_Reset(void) { int i; NF_nFCE_L(); NF_CMD(0xFF); for(i=0;i<10;i

38、); NF_WAITRB(); NF_nFCE_H(); } void NF_Init(void) { rNFCONF=(1<<15)|(1<<14)|(1<<13)|(1<<12)|(1<<11)|(TACLS<<8)|(TWRPH0<<4)|(TWRPH1<<0); NF_Reset(); } int nand_read_whole(unsigned char *buf, unsigned long start_addr, int size) { int i, j; if((start_addr & NAND_BLOCK_MASK) || (size & N

39、AND_BLOCK_MASK)) return 1; NF_nFCE_L(); for(i=0; i<10; i++); i = start_addr; while(i < start_addr + size) { rNFCMD = 0; rNFADDR = i & 0xff; rNFADDR = (i >> 9) & 0xff; rNFADDR = (i >> 17) & 0xff; rNFADDR = (i >> 25) & 0xff; NF_WAITRB(); for(j=0; j < NAND_SECTOR_SIZE; j++, i++) { *buf

40、 (rNFDATA & 0xff); buf++; } } NF_nFCE_H(); return 0; } 3、修改“u-boot-1.3.2/board/up2410/Makefile”文件(vi board/up2410/Makefile) 将“COBJS:= smdk2410.o flash.o”改为“COBJS:=smdk2410.o flash.o nand.o” 4、修改“u-boot-1.3.2/include/configs/up2410.h”文件(vi include/configs/up2410.h) 在文件的最后一个#endif的前面添加如下内容

41、 #define CONFIG_S3C2410_NAND_BOOT 1 #define STACK_BASE 0x33f00000 #define STACK_SIZE 0x8000 #define UBOOT_RAM_BASE 0x33f80000 #define CFG_NAND_BASE 0x4E000000 #define CFG_MAX_NAND_DEVICE 1 #define SECTORSIZE 512 #define NAND_SECTOR_SIZE SECTORSIZE #define NAND_BLOCK_MASK (NA

42、ND_SECTOR_SIZE - 1) #define ADDR_COLUMN 1 #define ADDR_PAGE 2 #define ADDR_COLUMN_PAGE 3 #define NAND_ChipID_UNKNOWN 0x00 #define NAND_MAX_FLOORS 1 #define NAND_MAX_CHIPS 1 #define WRITE_NAND_COMMAND(d, adr) do {rNFCMD = d;} while(0) #define WRITE_NAND_ADDRESS(d, adr) do {rNFADDR = d;} wh

43、ile(0) #define WRITE_NAND(d, adr) do {rNFDATA = d;} while(0) #define READ_NAND(adr) (rNFDATA) #define NAND_WAIT_READY(nand) {while(!(rNFSTAT&(1<<0)));} #define NAND_DISABLE_CE(nand) {rNFCONF |= (1<<11);} #define NAND_ENABLE_CE(nand) {rNFCONF &= ~(1<<11);} #define NAND_CTL_CLRALE(nandptr) #d

44、efine NAND_CTL_SETALE(nandptr) #define NAND_CTL_CLRCLE(nandptr) #define NAND_CTL_SETCLE(nandptr) #define CONFIG_MTD_NAND_VERIFY_WRITE 1 #define rNFCONF (*(volatile unsigned int *)0x4e000000) #define rNFCMD (*(volatile unsigned char *)0x4e000004) #define rNFADDR (*(volatile unsigned char *)

45、0x4e000008) #define rNFDATA (*(volatile unsigned char *)0x4e00000c) #define rNFSTAT (*(volatile unsigned int *)0x4e000010) #define rNFECC (*(volatile unsigned int *)0x4e000014) #define rNFECC0 (*(volatile unsigned char *)0x4e000014) #define rNFECC1 (*(volatile unsigned char *)0x4e000015) #defi

46、ne rNFECC2 (*(volatile unsigned char *)0x4e000016) #define NF_CMD(cmd) {rNFCMD=cmd;} #define NF_ADDR(addr) {rNFADDR=addr;} #define NF_nFCE_L() {rNFCONF&=~(1<<11);} #define NF_nFCE_H() {rNFCONF|=(1<<11);} #define NF_RSTECC() {rNFCONF|=(1<<12);} #define NF_RDDATA() (rNFDATA) #define NF_WRDATA

47、data) {rNFDATA=data;} #define NF_WAITRB() {while(!(rNFSTAT&(1<<0)));} 3.4 让up2410的u-boot支持dm9000网卡 1. 将“/home/uptech/03 u-boot/dm9000x.h”和“/home/uptech/03 u-boot/dm9000x.c”拷贝到“u-boot-1.3.2/drivers/net”文件夹内 cp /home/uptech/03 u-boot/dm9000x.* drivers/net/ 2. 修改“u-boot-1.3.2/include/configs/up

48、2410.h”文件(vi include/configs/up2410.h) (1)将原网卡“CS8900”改为“DM9000” (2)添加网络命令 (3)修改IP地址 (4)修改命令提示符 (5)修改默认下载地址 (6)修改环境变量在Nand Flash中的存储地址 具体如下: (1)将原网卡“CS8900”改为“DM9000” 注释掉: // #define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ // #define CS8900_BASE 0x19000

49、300 // #define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ 这3行之后添加: #define CONFIG_DRIVER_DM9000 1 #define CONFIG_DRIVER_DM9000_BASE 0x10000000 #define DM9000_IO CONFIG_DM9000_BASE #define DM9000_DATA (DM9000_IO + 2) #define CONFIG_DM9000_USE_16BIT (2)添加网络命令 找到

50、下面的几行: #define CONFIG_CMD_CACHE #define CONFIG_CMD_DATE #define CONFIG_CMD_ELF 在其下面添加下面几行: #define CONFIG_CMD_REGINFO #define CONFIG_CMD_NAND #define CONFIG_CMD_PING #define CONFIG_CMD_DLF #define CONFIG_CMD_ENV #define CONFIG_CMD_NET (3)修改IP地址 找到下面几行: #define CONFIG_BOOTDELAY 3

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服