Demo using extra 16K SRAM banks on LPC1768 for C object storage

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //Demo using additional SRAM Banks on LPC1768
00002 #include "mbed.h"
00003 Serial pc(USBTX,USBRX);
00004 DigitalOut myled(LED1);
00005 int i=0;
00006 int buffer_SRAM[3000]; //regular SRAM use by compiler
00007 int buffer_SRAM_Bank0[4000] __attribute__((section("AHBSRAM0"))); //put in extra 16K bank
00008 int buffer_SRAM_Bank1[4000] __attribute__((section("AHBSRAM1"))); //put in other extra 16K bank
00009 int main()
00010 {
00011     pc.printf("Hello Extra SRAM\n\r");
00012     pc.printf("size of int %d bytes\n\r",sizeof(buffer_SRAM[0]));
00013     pc.printf("address of buffer_SRAM %x\n\r",buffer_SRAM);
00014     pc.printf("address of buffer_SRAM_Bank0 %x\n\r",buffer_SRAM_Bank0);
00015     pc.printf("address of buffer_SRAM_Bank1 %x\n\r",buffer_SRAM_Bank1);
00016     wait(5);
00017     while(1) {
00018         myled = 1;
00019         for(i=0; i<4000; i++) {
00020             buffer_SRAM_Bank0[i]=i;
00021         }
00022         for(i=0; i<4000; i++) {
00023             buffer_SRAM_Bank1[i]= -i;
00024         }
00025         for(i=0; i<3000; i++) {
00026             buffer_SRAM[i]= 0;
00027         }
00028         myled=0;
00029         for (i=0; i<4000; i++) {
00030             pc.printf("%d\n\r",buffer_SRAM_Bank0[i]);
00031         }
00032         for (i=0; i<4000; i++) {
00033             pc.printf("%d\n\r",buffer_SRAM_Bank1[i]);
00034         }
00035         for (i=0; i<3000; i++) {
00036             pc.printf("%d\n\r",buffer_SRAM[i]);
00037         }
00038         myled = 1;
00039     }
00040 }