06-13-2011 07:51 AM - edited 06-13-2011 07:52 AM
Firstly - I'm not sure if i'm on the correct forum - please excuse me if i'm wrong (and point me in the right direction).
I'm a student working on a project - an embedded mp3 player running on Microblaze.
Spartan 3E (XC3S1200)
System Gates (1200K)
Distributed RAM(136 Kb)
Block RAM (504 Kb)
Dedicated Multipliers (28)
Flash PROMs (4 Mb x 2 XCF04S - Flash PROM)
SDRAM (MT48LC32M - 256Mb SDRAM)
+ SD Card (to store audio files)
Software tools : EDK 10.1, ISE 10.2
We are using a third party mp3 decoder library (libmad), and trying to port it to microblaze. However we fear the final program code is going to be too big for the BRAMS.
So we have 2 PROMS on the pcb, we are going to use 1 for config. data and the other to store program code.
What we are unsure of is the process involved to run our program code
- Do we need to read the PROM and download the code to BRAM ? (which is not possible, because not enough BRAM). then can we copy the code over to the SDRAM ? Can we keep swapping code from PROM in chunks ?
- How do we load the PROM with program data ?
- How do we copy the data across to SDRAM ? Do we need a bootloader ? can the bootloader be written in C ? where do we store the bootloader ? Will the bootloader need to use the memory controller (mpmc) to interface witht he SDRAM ?
- Does the EDK/ISE tools allow support for any of the above ? do we need any other tools ?
- how do we tell microblaze to execute code from SDRAM ?, instead of BRAMs ?
Sorry for all the questions - im a complete beginner and completely new to embedded systems.
Any advice/suggestions welcome,