This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

RL-ARM filesystem and SDRAM

Anybody using the file system with RTX o/s, saving data to SDRAM.

Have board 32MB SDRAM on DYCS0 map the memory in none RTX mode the code runs fine and can read write to files.

In RTX mode application hangs at finit(), when application is stopped its in the DAbt_Handler.

The code none RTX is really simple

int main (void) {

        int i;

        FILE *f_p, *f_rp;
        char line[80];

                while( 0 != finit() );

                i = fformat("R:");


                f_p = fopen("R:\\temp\test.txt", "w" );

                if (f_p != NULL){

                 fputs("Example of a string in ram.\n", f_p);


                 fclose(f_p);

                }

                //re open the file to read back
                f_rp = fopen("R:\\temp\test.txt", "r" );

                if (f_rp != NULL){

                        fgets(line, sizeof(line), f_rp);

                        fclose(f_rp);
                }

}

The RTX version

_task void init (void){


int i;
os_tsk_prio_self (100);
while( 0 != finit() );
i = fformat("R:");
os_tsk_create (timer_task, 40);
os_tsk_delete_self();
}
int main (void) { os_sys_init(init); while(1); }

The have increased the heap size, not using microlib, Imported swi_handler (i have used RTX before and the file system but not to SDRAM, previously use SDCARD).

Just after any pointers if anybody has some to share, bang head is getting painfull.

Thanks
Darren

Parents
  • Is the data maintained indefinitely when the memory is not accessed? Note that the DRAM memory can keep the contents for many seconds without accesses at room temperature. I would recommend that you give it several minutes with a sleeping processor before you scan the contents. The retention times in the datasheet have a lot of safety margins and they are specified at maximum temperature. You probably get a factor two extra retention for every 10°C lower temperature, so it is very, very easy to think the refresh is working, when it isn't.

    You have the same memory as a development board, but that does not mean that you have managed to exactly copy the RAM-controller initialization required.

Reply
  • Is the data maintained indefinitely when the memory is not accessed? Note that the DRAM memory can keep the contents for many seconds without accesses at room temperature. I would recommend that you give it several minutes with a sleeping processor before you scan the contents. The retention times in the datasheet have a lot of safety margins and they are specified at maximum temperature. You probably get a factor two extra retention for every 10°C lower temperature, so it is very, very easy to think the refresh is working, when it isn't.

    You have the same memory as a development board, but that does not mean that you have managed to exactly copy the RAM-controller initialization required.

Children