DE1SOC传BMP中demo2_axi_app中内存可用地址的问题
[复制链接]
本帖最后由 cashong 于 2020-2-24 17:40 编辑
在training材料中,advanced例子中传bmp例子中,实现的功能主要是FPGA先把RGB写到HPS侧的DDR3中,然后linux读取DDR3并且将数据写到SD卡中。
demo2_axi_app.c这一文件中设置了内存的地址,在下面是标黄的。那么这个
static unsigned int DEMO_VGA_FRAME0_ADDR=0x3f200000; //存储帧的地址
我若改成3F3000000或3F3001000或3F3000100则报错,改成3F3000010或3F3000001或3F1F1000是可以的,不知道这个地址是如何来设定的。地址为何设置成这样,是否还有其他选择?有多少可用的空间,是否每次都是动态的?
#define BMP_WIDTH 640
#define BMP_HEIGHT 480
#define WRITE_COUNT_PILXEL 4
#define BMP_COUNT_PILXEL 3
#define BUFFER_SIZE BMP_WIDTH*BMP_HEIGHT*WRITE_COUNT_PILXEL//图像大小640*480*4 bytes
#define BMP_BUFFER_SIZE BMP_WIDTH*BMP_HEIGHT*BMP_COUNT_PILXEL//分配的内存区域大小640*480*4 bytes
static volatile unsigned long *h2p_vip_capture_addr=NULL; //static静态变量,但volatile表示每次使用它的时候必须从原内存中取出其值,因而编译器生成的汇编代码会从原内存地址中读取数据使用。
static unsigned int DEMO_VGA_FRAME0_ADDR=0x3f200000; //存储帧的地址
#define ALT_VIP_CAPTURE_BASE 0x00000000
|