AG32与内置FPGA的FLASH空间如何划分
关于芯片flash 大小:
不管所选型号的flash 是多大,请注意最后100K 是留给fpga 使用的。
如果使用的芯片是256K 的flash 空间,那么就是156K 程序+100K fpga,用户程序不能
超过156K。如果超过156K 编译是可以通过的,但烧录后会冲掉ve 配置部分。
ve 配置被冲掉后,程序运行会表现出各种异常(连系统时钟初始化都跑不过)。
如果程序使用的空间较大,fpga 又刚好比较小,可以调整这个界限的值。调整方法如下:
board_logic.compress = true //(可选)对fpga 部分进行压缩,更省空间
board_upload.logic_address = 0x80034000 //根据实际情况调整该边界值
flash 的大小是在agrv2k_103.json 中定义的。
flash 起始地址是0x80000000,ram 是0x20000000。
另:
分散加载中, 如果连AgRV2K_FLASH.ld 都想自己指定, 则需要修改
platformio.ini 中配置项:
board_build.ldscript = AgRV2K_FLASH.ld