版主: 51FPGA |
zwj1234
![]()
最后登陆时间:2015-01-06 14:26:12 |
功能需求:zedboard上跑linux系统,当有按键按下时,往sd卡的文件中写数据。
思路:vivado中添加一个gpio的IP,约束zedboard板上的5个按键,生成bit文件,整合到BOOT.BIN中(fsbl.elf+.bit+u-boot.elf),采用sd卡启动linux系统;vivado硬件导入sdk,创建linux工程文件,写程序实现按键动作,然后往sd卡写数据。 问题:1)这个思路是否正确? 2)sdk创建linux工程,没有对应的BSP板级开发包,无法调用库函数对gpio管脚进行初始化,使能等,按键也就不会有终端信号产生,如何解决按键产生信号? 3)linux编程,怎样实现代码和按键的相互关联?(AVNET提供的一个例程是使用mmap()函数实现内存共享,但是例程好像有问题,最终结果没有调出来)。
关键词:zedboard linux FPGA |
bluecd
![]()
最后登陆时间:2014-10-28 11:22:59 |
fpga部分的设计细节不了解。linux部分就是一个按键驱动的问题。 如果是用mmap。我想可能是这样的。 使用mmap,只需要用户态开发,不需要写驱动。 fpga里的工作是把按键的状态写到一个固定的物理地址中。 linux中用mmap映射/dev/mem文件。然后就可以访问这个物理地址了。
|
zwj1234
![]()
最后登陆时间:2015-01-06 14:26:12 |
bluecd的原帖 fpga部分的设计细节不了解。linux部分就是一个按键驱动的问题。 如果是用mmap。我想可能是这样的。 使用mmap,只需要用户态开发,不需要写驱动。 fpga里的工作是把按键的状态写到一个固定的物理地址中。 linux中用mmap映射/dev/mem文件。然后就可以访问这个物理地址了。
CTT5.4的例程,FPGA设计硬件,添加3个GPIO IP核,分别对应8个开关、8个LED、5个按键;将生成的bit流文件整合到BOOT.BIN中(fsbl.elf + .bit + u-boot.elf),添加zImage、devicetree.dtb ramdisk.image.gz到SD卡,上电启动系统跑起来,sdk下调试应用程序,最后在linux终端执行./leds.elf,代码运行成功,8个开关分别控制8个LED,按键控制LED亮灭。
个人的功能验证:硬件只需添加一个gpio,约束5个按键,sdk应用程序代码有问题,目前还没成功运行,不过思路是ok的。 |
共3条 1/1 1 |