Important changes to forums

We’re making some changes to the Mbed forums. From 10th December 2019 all new discussions will take place on our new forum site. You can continue to reply to existing threads for the next two weeks. After that we will archive this forum so you can return to useful posts in the future.

using CANRAM fails - why?

15 Jun 2014

Hello,

I'm trying to use CANRAM for logging purposes (CAN-hardware is not used). So I wrote a small test-program to try this. I'm wondering why everything works if only AHBSRAM0+1 is used, but the code don't even start if the line (35) where CANRAM is accessed is uncommented?

#include "mbed.h"
#define BYTES_DISPLAY_PER_ROW 16

__attribute((section("AHBSRAM0"))) char mem1[1];
__attribute((section("AHBSRAM1"))) char mem2[1];
__attribute((section("CANRAM")))   char mem3[1];

DigitalOut myled(LED1);

int DispHex(char* data,int count)
{
    printf("\r\n\r\n## Memory-dump at 0x%4.4x ##\r\n",(int)data);

    int width=BYTES_DISPLAY_PER_ROW;
    for (int i=0; i<count; i++) {
        if (width==BYTES_DISPLAY_PER_ROW) {
            printf("\r\n0x%4.4X: %2.2X ",data+i,(char*)data[i]);
            width=0;
        } else {
            printf("%2.2X ",(char*)data[i]);
        }
        width++;
    }
    return(0);
}

int main()
{

    printf("\n\rAHBSRAM0:\n\r");
    DispHex(&mem1[0],512);
    printf("\n\rAHBSRAM1:\n\r");
    DispHex(&mem2[0],512);
    printf("\n\rCANRAM:\n\r");
    // DispHex(&mem3[0],512);                      // works only if commented out

    while(1) {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}

Must the can-controller be powered on to use its ram (and is it powered off if mbed is started without using can-related functions) or why does mbed hang?

BTW: I'm trying this to collect debug-info which is beeing sent by e-mail if there's a watchdog-reset, for example. I guess this ram-area isn't 0-initialized if CAN-hardware isn't used - that was the reason for this test-code. If it' initialized anyway my code would be useless unless removing initialization in the mbed-source...

Any help is welcome...

Thanks, Michael

You need to log in to post a reply