Apr
2
PetaLinux v0.30rc1 on EDK 9.1.02
实验流程以及注意点
2008.04.02 - Initial Version
下载文件 (已下载 112 次)
实验流程以及注意点
2008.04.02 - Initial Version
下载文件 (已下载 112 次)
Mar
10
在EDK的Assembly界面中和mhs语法中,一般都是把整个bus整体连接到另一个bus的。如果说把busA[1]赋值到busB[0],这样的写法是不行的。如果要从一个bus里抽出一根net,该怎么办呢?
暂时想出来的解决方法:
方法1:用网线连接符号"&"。这种方法是把原来的想法反过来——本来是要分割bus,现在是连接bus。也就是说,给分割后的网线取名,比如busA_0, busA_1。到整条bus的地方,就叫busA_0 & busA_1。
方法2:用IP Catalog里的Utility --> Utility Bus Split 来分割Bus。
问题是这个IP只能把一个Bus分割为两部分,如果要去除一个Bus
方法3:自己写一个IP吧!
P.S. 有更好的方法请留言:)
暂时想出来的解决方法:
方法1:用网线连接符号"&"。这种方法是把原来的想法反过来——本来是要分割bus,现在是连接bus。也就是说,给分割后的网线取名,比如busA_0, busA_1。到整条bus的地方,就叫busA_0 & busA_1。
方法2:用IP Catalog里的Utility --> Utility Bus Split 来分割Bus。
问题是这个IP只能把一个Bus分割为两部分,如果要去除一个Bus
方法3:自己写一个IP吧!
P.S. 有更好的方法请留言:)
Mar
6
今天犯了一个傻错误。
要给EDK加一个Peripheral,但是这个peripheral只用了EDK系统中的时钟,没有用到任何bus信号。
我傻乎乎地把一个别的core的mpd和pao文件拷过来然后慢慢修改。居然最后也能用。
更快的办法是用create and import peripheral这个工具。
指定HDL语言,选择源文件,然后选no bus, no interrupt,一切就搞定了,最多就花一分钟而已。
要给EDK加一个Peripheral,但是这个peripheral只用了EDK系统中的时钟,没有用到任何bus信号。
我傻乎乎地把一个别的core的mpd和pao文件拷过来然后慢慢修改。居然最后也能用。
更快的办法是用create and import peripheral这个工具。
指定HDL语言,选择源文件,然后选no bus, no interrupt,一切就搞定了,最多就花一分钟而已。
Feb
14
ML410上手中......
[资料]
ML410官方网站
ML410 Data and Reference Design
[遇到问题]
1. ML410 System ACE中初始配置是一个ACE Loader,当把板子和Dell工作站连接的时候正常,和Dell笔记本连接时笔记本读到的数据是乱码,但是送出的数据是正常的。按2加载VxWorks后UART就正常了。
解决:Root Cause找不到。把默认的UART16550的Core换成UARTLite就没有问题了。改MHS, MSS, UCF,当然还有软件函数。
2. MGT Protector
V4的MGT在没有使用时需要例化,否则会损坏。在EDK 9.1以后的BSB Wizard会提示插入MGT Protector,但是EDK 8.2中还没有。需要使用AR 23410的解决方法。
下载null_pair_example.zip,解压至pcores目录。在MHS和UCF文件中添加相应代码。
[资料]
ML410官方网站
ML410 Data and Reference Design
[遇到问题]
1. ML410 System ACE中初始配置是一个ACE Loader,当把板子和Dell工作站连接的时候正常,和Dell笔记本连接时笔记本读到的数据是乱码,但是送出的数据是正常的。按2加载VxWorks后UART就正常了。
解决:Root Cause找不到。把默认的UART16550的Core换成UARTLite就没有问题了。改MHS, MSS, UCF,当然还有软件函数。
2. MGT Protector
V4的MGT在没有使用时需要例化,否则会损坏。在EDK 9.1以后的BSB Wizard会提示插入MGT Protector,但是EDK 8.2中还没有。需要使用AR 23410的解决方法。
下载null_pair_example.zip,解压至pcores目录。在MHS和UCF文件中添加相应代码。
Jan
8
[Tips]
1. use xil_printf or print, not printf.
xil_printf基本和ANSI printf功能一致,只是没有浮点功能,但是和printf的大小相差比较多。
比较:一个用xil_printf的工程和一个用printf的工程:
2. 调用XIo_Out32的所有函数,比如xxx_WriteReg(Baseaddr, Offset, Data),要写一个32位的数,此时OFFSET的后两bit是不解码的,也就是说,Offset = 00, 01, 02, 03都是写到00去的,结果就是00-03都被写入了数据,而04则没有改变。
3. xmd.ini
如果工程文件夹目录中有xmd.ini文件,打开XMD时就会自动读取这个文件并且执行其中的命令。
[Common Codes]
1. GPIO - LED
1. use xil_printf or print, not printf.
xil_printf基本和ANSI printf功能一致,只是没有浮点功能,但是和printf的大小相差比较多。
比较:一个用xil_printf的工程和一个用printf的工程:
引用
printf xil_printf
.text 57524 4997
.data 1912 116
.bss 1120 1056
Total 60556 6169
.text 57524 4997
.data 1912 116
.bss 1120 1056
Total 60556 6169
2. 调用XIo_Out32的所有函数,比如xxx_WriteReg(Baseaddr, Offset, Data),要写一个32位的数,此时OFFSET的后两bit是不解码的,也就是说,Offset = 00, 01, 02, 03都是写到00去的,结果就是00-03都被写入了数据,而04则没有改变。
3. xmd.ini
如果工程文件夹目录中有xmd.ini文件,打开XMD时就会自动读取这个文件并且执行其中的命令。
[Common Codes]
1. GPIO - LED
引用
#include "xgpio.h"
XGpio gpio;
XGpio_Initialize(&gpio, XPAR_LEDS_4BIT_DEVICE_ID);
XGpio_SetDataDirection(&gpio,LEDChan, 0); //device channel count from 1
XGpio_mSetDataReg(XPAR_LEDS_4BIT_DEVICE_ID,LEDChan, count);
XGpio gpio;
XGpio_Initialize(&gpio, XPAR_LEDS_4BIT_DEVICE_ID);
XGpio_SetDataDirection(&gpio,LEDChan, 0); //device channel count from 1
XGpio_mSetDataReg(XPAR_LEDS_4BIT_DEVICE_ID,LEDChan, count);







