驱动程序开发教程 1.驱动的安装
1.1首先安装openjtag的驱动
1.2.安装串口驱动(PL2303_Prolific_DriverInstaller_v1.7.0) 2.相关软件的安装 2.1 oflash的安装
复制光盘1\\windows\\tools中的文件(oflash.exe和FTD2XX.dll)到C:\\WINDOWS\\system目
录之下,就可以在命令行中运行了
2.2 SecureCRT的安装 光盘1\\windows\\tools\\scrt522中进行安装(使用时建立串口,
注意去掉流控选项)
注意点
1.串口的接口是USB-COM1,用于SecureCRT的使用。 2.USB用于在U-boot下用DNW下载数据
3.Openjtag和串口USB-COM1不可以同时使用,只是用串口是需要将OPenjtag(具有自动
复位,拉低)上的线拔下来,否则冲突。
4.USB和USB-COM1可以同时使用 烧写程序的方法 1.Openjtag下载程序
1.1 首先设置为nand启动,且安装了oflash,只采用openjtag连接电脑与开发板 1.2 cmd进入命令行模式, 输入程序目标盘符(D:) 1.3 cd D:\\work\\card1\\bin\\hardware 1.4 oflash leds.bin
2.u-boot烧写程序(DNW)
2.1 采用USB(下载程序)和USB-com1(SecureCRT)连接开发板,NOR启动模式
2.2 USB(下载程序)驱动安装目录D:\\work\\card1\\windows\\dnw中的(SECBULK.inf和
SECBULK.sys)
2.3 NOR下开发板上电,读秒的时候迅速按下空格,进入bootloader,在菜单下进行下载 2.4 程序下载到nand flash,选择[n] Download u-boot to Nand Flash下载 2.5 启动DNW,选择传送文件
2.6 断电,选择nand启动,重新上电就可以了 3.u-boot下载(tftp)
3.1 启动tftp进行设置,目录设置成程序所在的目录(下载时自动地位此目录,不需要再
cd切换),查看服务器的ip
3.1 SecureCRT下print查找 ipaddr=192.168.7.17 serverip=192.168.7.11 3.2 设置开发板和服务器ip set ipaddr 192.168.0.1(开发板) set serverip 192.168.0.100 (tftp软件生成的) 3.3 save进行保存 3.4 连接网线
3.5 ping 192.168.0.100开是否通了,只能开发板到电脑 3.6 下载tftp 30000000 lcd.bin 3.7 擦除tftp 30000000 lcd.bin
3.8 写nand write 30000000 bootloader 3.9 断电,改为NAND启动 重装系统参看学前班第0课3节 VMware的设置
1.安装7zip软件D:\\work\\card1\\windows下的7zip.msi
2.解压D:\\work\\card1\\VMWare下的Ubuntu9.10.7z到NTFS格式下的磁盘 Makefile规则解释 目标:依赖1 依赖2 TAB 命令
生成的条件是1.目标不存在 2.目标源文件已更新 目标: 依赖1 依赖2 hello : hello.c a.c TAB 命令(gcc) gcc - o hello hello.c a.c hello依赖hello.c和a.c进行生成 gcc是命令 可以改成下面的 hello : hello.o a.o gcc - o hello hello.o a.o hello.o : hello.c gcc - o hello.o -c hello.c a.o : a.c gcc - o a.o -c a.c hello依赖于hello.o和a.o
但是hello.o和a.o不存在需要到下面的文件命令中寻找,需要下面的两条命令 hello.o : hello.c gcc - o hello.o -c hello.c -c的意思是编译不链接
总结:就是在进行makefile时从第一条开始执行,遇到不存在或者不能执行的命令回到下
面中寻找
由于此Makefile中村子啊两条相似的指令,可以采用通配符进行替代,因此 hello : hello.o a.o gcc - o hello hello.o a.o hello.o : hello.c gcc - o hello.o -c hello.c a.o : a.c gcc - o a.o -c a.c 可以改写为下面的形式 hello : hello.o a.o gcc - o hello hello.o a.o 改为:
hello : hello.o a.o gcc - o $@ $^ 解释:
1. $@:代表目标 2. $^:代表两个依赖 下面的两条相似指令 hello.o : hello.c gcc - o hello.o -c hello.c a.o : a.c gcc - o a.o -c a.c
可以改写为 %.o :%.c gcc -0 $@ -c $< 解释:
1. %.o :%.c :%是通配符 2. $@:代表目标 3. $<: 代表1个依赖 makeclean 例子: clean : rm %.o hello 解释:
1.clean是一个虚拟的函数,生成不需要依赖
2.执行rm命令,删除中间产生的目标文件,和hello
3.执行一次,则全部删除,下一次执行时就不存在了,可以再次执行。 第2课 GPIO实验.avi LED点亮实验
1.配置功能寄存器(输入/输出) 2.配置数据寄存器(0/1) nor和nand的启动 --------
| | | CPU |------SDRAM(64M) | | | | NOR-----| SRAM |------NAND (2G)
NAND启动:1.NAND前4K(CPU结构决定)内容复制到SRAM上运行 2.CPU从SRAM上的0地址开始执行 C语言函数分析
1. 启动文件-crto.s(设置栈)
软件部分:1.指针SP直接指向SRAM 2.如果需要指向SDRAM需要设置 2.将NAND中的前4K复制到SRAM
硬件部分:1.关看门狗(3S自动复位 2.设置main函数的返回地址 3.调用main函数 4.清理栈
可执行文件生成
1.预处理(主要是查找语法错误) 2.编译 将.c文件---转化.s文件 3.汇编 将.s文件---转化.o文件
4.链接 将多个.o文件转化成1个可执行文件 crto.s文件解析 .text
.global _start _start: