xilinx vivado下microblaze里面C编程中,怎么通过串口实现PC机和FPGA中RAM数据相互读写?
我搭建在环境里可以在SDK中运行memorytest.c程序,我现在不知道怎么通过函数来实现PC机与片上的Ram进行数据的读写,要求通过串口来传递数据。...
我搭建在环境里可以在SDK中运行memorytest.c程序,我现在不知道怎么通过函数来实现PC机与片上的Ram进行数据的读写,要求通过串口来传递数据。
展开
2个回答
展开全部
1. 可以在vivado中通过block diagram生成microblaze的硬件,注意Xilinx提供了一个microblaze的例子,如果有问题可以参考这个例子来实现;
2. 画好bd以后,先保存,然后verify,然后保存,然后点“生成bitstram”Vivado会自动按照综合——实现——生成bit文件的顺序执行;
如果其中出现错误,一定要仔细参考message的提示,然后从网上和Xilinx的文档中寻找解决的办法;
3. 输出到SDK的时候要特别注意,一般第一次的时候他会帮你输出.bmm文件,后面就只有.bit文件和.xml文件了;但是实际上.bmm文件对打包生成最后的download.bit文件很重要,如果.bit文件和.bmm不对应的话,你生成的download.bit文件下载到FPGA之后可能会起不来。
4. Microblaze的IC/DC总线接口去连接一块内存时,这块内存的地址必须在cache的地址范围内,比如cache范围为0x0000_0000~0x7FFF_FFFF,否则可能无法写入;
5. Microblaze的IP/DP总线接口去连接一块内存时,这块内存的地址必须在cache的地址范围外,比如cache范围为0x0000_0000~0x7FFF_FFFF,该内存地址范围为0x8000_0000~0xFFFF_FFFF,否则也可能访问不正常;
2. 画好bd以后,先保存,然后verify,然后保存,然后点“生成bitstram”Vivado会自动按照综合——实现——生成bit文件的顺序执行;
如果其中出现错误,一定要仔细参考message的提示,然后从网上和Xilinx的文档中寻找解决的办法;
3. 输出到SDK的时候要特别注意,一般第一次的时候他会帮你输出.bmm文件,后面就只有.bit文件和.xml文件了;但是实际上.bmm文件对打包生成最后的download.bit文件很重要,如果.bit文件和.bmm不对应的话,你生成的download.bit文件下载到FPGA之后可能会起不来。
4. Microblaze的IC/DC总线接口去连接一块内存时,这块内存的地址必须在cache的地址范围内,比如cache范围为0x0000_0000~0x7FFF_FFFF,否则可能无法写入;
5. Microblaze的IP/DP总线接口去连接一块内存时,这块内存的地址必须在cache的地址范围外,比如cache范围为0x0000_0000~0x7FFF_FFFF,该内存地址范围为0x8000_0000~0xFFFF_FFFF,否则也可能访问不正常;
追问
你的回答不能为我解决问题,希望有大神给我解答!!!
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
char seg7[10]={0xc0,0xf9,0xa4,0xb0,0x9,0x92,0x82,0xf8,0x80} sbit w1=b2^0; sbit w2=b2^1; sbit k1=b3^0; /=1表示键盘按下 char cou...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
好像有个串口的IP核? 一般生成系统的时候,系统会自己加一个串口ip上去貌似,需要正确设置(10.1的时候是这样,不知道现在sdk工程向导什么样了)。貌似memorytest的结果也是在串口上输出的吧。。。
如果有这个ip的话,可以在sdk里的ip列表中找到,右键点view ip datasheet(driver)之类的可以知道ip的API函数。
然后写程序,读取RAM,通过串口传输,PC再接收。
时间久远,好久不用了,忘了许多,哎..................
如果有这个ip的话,可以在sdk里的ip列表中找到,右键点view ip datasheet(driver)之类的可以知道ip的API函数。
然后写程序,读取RAM,通过串口传输,PC再接收。
时间久远,好久不用了,忘了许多,哎..................
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询