• 0

PMODSD


ejc
Share

    Question

    I was trying to use ip integrator and vitis to examine how to write and read to an SD card.

    I have used the ip integrator with PmodMTDS and PmodKYBD successfully using the example codes supplied.

    I assume the code is written in c++ and that is what I set the vitis project for.

    However, with PmodSD the example code in main.cc is not building.

    After examination, there is one line of code in the example main.cc that is a syntax error, sqiggly lines on the code and when I run the mouse over it, it tells me syntax error.

    DFATFS::fsmount(disk, szDriveNbr, 1);

    There are also many syntax error in the #include "DXSPISDVOL.h".

    practically half of it has the squiggly lines.

    Below is what I get when trying to build the project.

    Description Resource Path Location Type
    make: *** [makefile:50: sdtest.elf] Error 1 sdtest C/C++ Problem
    region `microblaze_0_local_memory_ilmb_bram_if_cntlr_Mem_microblaze_0_local_memory_dlmb_bram_if_cntlr_Mem' overflowed by 63000 bytes sdtest C/C++ Problem
    sdtest.elf section `.text' will not fit in region `microblaze_0_local_memory_ilmb_bram_if_cntlr_Mem_microblaze_0_local_memory_dlmb_bram_if_cntlr_Mem' sdtest C/C++ Problem

    So if the syntax errors are causing this, what is the fix?

    I am using ARTY A7 with 35T csg324 board.

    Link to comment
    Share on other sites

    1 answer to this question

    Recommended Posts

    • 0

    Hello@ejc,

    The build errors from above is not caused by syntax errors. This application needs more memory resources and the build errors are caused by the insufficient memory that was set in Microblaze.

    Because the Arty A7 35T has only 225 KB of BRAM, then the maximum memory you can set in Microblaze is 128 KB. I don't think this is enough memory to run the PmodSD application.

    To solve the memory problem you should use the 256MB DDR3L SDRAM memoryhttps://reference.digilentinc.com/reference/programmable-logic/arty-a7/reference-manual#memory

    I suppose you installed the board files for the Arty A7 35T. When you add the MIG (Memory Interface Generator) to your design, the MIG preset for this board will be loaded and you don't have to manually configure the DDR3L settings for the Arty A7, specified in the Reference Manual.

    You can find in this tutorial how to add and configure MIGhttps://reference.digilentinc.com/learn/programmable-logic/tutorials/arty-getting-started-with-microblaze/start?s[]=mig

    Also you can check this forum posthttps://forum.digilentinc.com/topic/18555-arty-a7-and-mig/

    Link to comment
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    Share