基于FPGA的嵌入式系统开发_第1页
基于FPGA的嵌入式系统开发_第2页
基于FPGA的嵌入式系统开发_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 FPGA 的嵌入式系统开发的实验报告应福军徐飞Linux LinuxFPGA 生产商 XilinxPowerPCMicroBlazePicoBlazeRISC,MicroBlazeCoreConnect有兼容性、可配置性以及重复利用性,能够根据成本和性能要求提供高性价比的处理性能。支持 MicroBlazeC/OS-II、BuleCat ME Linux、RTA MB、ThreadX、PetaL-inuxxilinx 公司的 spartan_3E 开发板上移植 petalinux 内核一、实验目的础的嵌入式开发能力,为今后的更大的项目实践打下基础二、实验步骤在 EDK 中建立基本硬件系统

2、新建工程,添加 DCE,LED,FLASH,DDRAM,MAC,以及定时器等 IP 核EDKBSP 为了支持操作系统,使之能够更好的运行于硬件主板。BSPBSP,VxWorksBSPLinux 的 BSP 相对于某一 CPU 来说尽管实现的功能一样,可是写法和接口定义BSPBSP(BSPBSPOSOS。修改 debug 模式以及软件环境Device Configuration-Updata Bitstream。到这里,bitLinuxBSPPetaLinux 内核的移植PetaLinuxMicroBlazeLinux操作系统。其发布采用了“all inone”的整合方式,将针对 MicroBl

3、aze 处理器硬件平台配置,集成在一个压缩包内发行,极大地方便了开发人员的使用。解压压缩包:tar zxvf petalinux-v0.40-rc2.tar.gz设置环境变量$ cd petalinux$ source ./settings.csh添加新的开发平台由于Petalinux 默认配置里面没有Spartan3E 开发板所以必须添加新的开发平台$ cd $PETALINUX/software/petalinux-dist$ petalinux-new-platform -v Xilinx -p Spartan3E -k 2.6PetaLinux$ petalinux-copy-auto

4、config配置编译 Petalinux$ cd $PETALINUX/software/petalinux-dist$ make menuconfig进行一些必要的配置后编译$ cd $PETALINUX/software/petalinux-dist$ yes | make oldconfig dep all/tftpboot 目录下生成 image.bin image.elf image.srecimage.ub linux.bin romfs.img u-boot.bin u-boot.srec u-boot-s.binu-boot-s.elf u-boot-s.srec ub.con

5、fig.img 内核文件和 u_boot下载比特流文件$ make -f system.make download终端显示u-boot srecu-boot$ cat /tftpboot/u-boot.srec /dev/ttyS0启动 uboot,这时是在内存里面启动的flash,U-Bootloadb0 x90000000(内存起始地址)Ctrl- + CKermitC-Kermitsend /bin /tftpboot/ub.config.imgCuboot, U-Bootautoscr$(fileaddr)U-Boot loadb 0 x90000000Ctrl- + CKermitC

6、-Kermitsend /bin /tftpboot/u-boot-s.binCuboot,U-Boot protect off $(bootstart) +$(bootsize)U-Boot erase $(bootstart) +$(bootsize)U-Boot cp.b $(clobstart) $(bootstart) $(filesize)tftpimage.ub上电启动成功登入系统界面实验总结:PetalinuxFPGA识,我想这些都将成为我未来项目的宝贵经验Spartan3EARM驱动的代码,请老师谅解。/ LED驱动源代码及说明/ #include #include #inc

7、lude #include #include #include #include #include #include #include #include #include#defineDEVICE_NAMEleds/*定义led设备的名字*/#defineLED_MAJOR 231 /*定义led设备的主设备号*/long led_table/*I/O方式led设备对应的硬件资源*/GPIO_B7,GPIO_B8, GPIO_B9, GPIO_B10,;/*使用ioctl控制led*/static int matrix4_leds_ioctl(struct inode *inode, stru

8、ct file *file,unsignedint cmd, unsigned long arg)switch(cmd) case0:case1:if (arg 4) return-EINVAL;write_gpio_bit(led_tablearg, !cmd);default:return-EINVAL;static struct file_operations matrix4_leds_fops = owner: THIS_MODULE,ioctl: matrix4_leds_ioctl,;staticdevfs_handle_t devfs_handle;staticintint re

9、t;inti;init matrix4_leds_init(void)/*在内核中注册设备*/ret = register_chrdev(LED_MAJOR, DEVICE_NAME, &matrix4_leds_fops);if(ret 0) printk(DEVICE_NAME cant register major numbern);returnret;devfs_handle = devfs_register(NULL, DEVICE_NAME, DEVFS_FL_DEFAULT, LED_MAJOR,0,S_IFCHR|S_IRUSR|S_IWUSR,&matrix4_leds_fo

10、ps,NULL);/*使用宏进行端口初始化,set_gpio_ctrlwrite_gpio_bit*/for(i = 0; i 8; i+) set_gpio_ctrl (led_tablei | GPIO_PULLUP_EN | GPIO_MODE_OUT);write_gpio_bit(led_tablei, 1);printk(DEVICE_NAME initializedn);return0;staticvoidexit matrix4_leds_exit(void)devfs_unregister(devfs_handle); unregister_chrdev(LED_MAJOR,DEVICE_NAME);module_init(matrix4_leds_init);module_exit(matrix4_leds_exit);测试程序#include #include #include #includeintmain(int argc, char *argv)int on;int led_no;int fd;if (argc != 3 | sscanf(argv1, %d, &led_no) != 1 |sscanf(argv2,%d, &on) != 1 |on 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论