OPENHW大赛,跟同学讨论后的备忘笔记

来源:互联网 发布:记忆碎片剧情解析知乎 编辑:程序博客网 时间:2024/03/29 19:31
xilinx zynq-7000开发《宽带实时自适应滤波器》,主要包含:GAL-NLMS算法,linux操作系统和QT图形界面。
1,ramdisk不用也可以启动操作系统。可以将ramfs作为根文件系统,也可以将SD卡的ext4分区作为根文件系统。具体是哪一个,涉及到编译设备树的时候
修改启动参数。不过,必须有一个作为根文件系统。
2,以ramfs作为根文件系统的时候,SD卡的ext4分区会在系统启动之后自动挂载,而FAT分区则必须手动挂载,这个其实可以在rcS文件中修改。
以SD卡的ext4分区的文件系统作为根文件系统,启动之后SD卡毫无疑问是可用的。
3,NFS文件系统的支持,可以让程序看起来像是在PC机上运行。实际上,程序是在开发板上运行的,但是不需要显式地拷贝PC上的交叉编译过的代码到开发板上,NFS会自动保证这种拷贝,并将运行后的结果回传给PC上的minicom来显示。
     如果使用tftp的话,那么需要显式地用下载命令将代码从PC上拷贝到开发板上,比较麻烦,而且速度也不够快。
4,PL部分的配置,需要在设备树里面体现,这样就可以通过/dev下面的文件来访问该设备。所以设备树其实就是PL在Linux内核的注册,提供一个用户程序访问的接口。
5,使用HP接口让PS和PL通信可以大大增加速度,但是存在着同步的问题。数据如果是异步收发的话,那么就需要一种机制保证处理不会发生混乱。

 1,ramdisk文件其实就是ramfs文件系统的安装包,这是一个只存在于内存中的文件系统。linux内核启动之后,加载这个文件系统到内存,掉电之后消失。生成ramdisk时用到busybox,并建立一系列文件夹,这些都会被加载到内存中。在这些文件夹下面新建的文件掉电之后消失。
2,linaro文件系统其实就是支持ext4文件系统,被解压到SD卡中ext4分区。linux系统从SD卡启动之后,SD卡需要挂载才能使用,因为SD卡此时只是外设。挂载时要指明挂载的文件系统格式。在SD卡ext4分区中新建的文件会直接保存在SD卡上。
3,官网上下载的linaro文件系统需要解压到ext4分区,这就证明linaro文件系统其实就是支持ext4分区的文件系统。单独的分区没有内容,而将文件系统解压到ext4分区,就使得ext4分区有了文件组织。(个人认为给磁盘分区,只不过是在内核注册了对这个分区的操作办法,没什么实质内容,磁盘上面仍然一无所有,没有文件,安装了文件系统之后就有了。)
3,从SD卡启动之后,linux内核和ramdisk文件都会被完全加载到内存。因为这个时候拔掉SD卡,会发现系统仍然可以运行。
4,SD卡在/dev下面被叫做mmc,有两个分区,两个分区单独挂载。
5,linux下的minicom要比windows xp的超级终端更加好用。对vi的支持更好。可能是因为PC和开发板都是linux操作系统。
6,自己编译文件系统以及内核可能不如开发板自带的内容好。因为SD卡自带的内容,除了有ramdisk这个ramfs文件系统外,还有linaro文件系统,这使得SD可以使用。如果不使用linaro文件系统,仅仅使用ramdisk,那么SD卡就没有ext4文件系统可用。
7,xilinx官网上的教程得到的结果并不能完全支持zynq上的外设,比如OLED,虽然可以启动成功。而且不知到它究竟做了什么东西。

 1,该设计的目的不是为了除噪的,所以输入的直接是信号与噪声的混合,yn就是滤波后的信号,en是噪声。这点与齐海兵的文献不一样。
 2,planahead可以实现C与FPGA的联合编程开发。
 3,NLMS是递归算法,所以不需要并行处理,使用PS来实习。格型滤波部分,km会定下来,以后不会变化,所以用FPGA实现。根据文献描述,km在调至合适以后,以后的变化基本都是受噪声的影响,所以km只有保持不变才能滤除噪声。据说,FPGA不太适合用在经常变化的系数更新上,因为系数跟新需要时延,容易与信号产生竞争冒险。PL部分也可以做浮点运算,但是会消耗大量的资源。
 4,最后要设计一个实时处理系统。由matlab产生信号,通过网线传到板子,然后输出接回主机,最好能有显示的图形用户界面,可以并排显示输入和处理之后的输出。