Altera_Forum
Honored Contributor
20 years agobootloader in tightly coupled memory
I have the following tightly coupled memories
6k tightly coupled memory connected to cpu tightly coupled instruction master and cpu data master, the reset and exception address are located in this memory 2k tightly coupled memory connected to tightly coupled data master The 6k instruction tcm is initialized with a hex file that contains a bootloader. The bootloader waits for an update request from a pc after reset (it does not enable interrupts). If this times out it just jumps to the flash and executes the content. The flash content is generated with elf2flash and the boot copier. The program stored in flash uses the 6k tcm for irq handlers, the 2k data tcm as a seperate irq stack and sdram/sram for everything else. Besides the system has a 4k data cache and a 4k instruction cache. Before using tightly coupled memory I had just one 8k normal onchip memory for the bootloader and the irq stuff of the main application was in sdram. This setup worked without any problems. With the tightly coupled memories I could successfully start the bootloader in the 6k tcm from the IDE with Run as. Then flash content was uploaded and then excuted in the sdram and the tcms. However it fails to work stand-alone (just switching the device on). It does not respond to an upload request nor does it excute a program that is stored in flash memory. Can this be an issues with the generated hex files? I am using the latest quartus web edition 5.1 (db patch) and nios2 5.1 eval (still waiting for my updates)