Tool/software: Code Composer Studio
Hello,
I use CCS v8
I have been trying for some time to put the 3D fields in RAM memory. But there are always problems.
Ask:
1. First store array [64] [16] [2] in FLASH first and then in RAM
postponed?
2. I do it that way
2.1 #pragma DATA_SECTION (start_up_mode_stage_1_RAM, "expdata0")
const unsigned int start_up_mode_stage_1_RAM [64] [16] [2] = {... 0,1,2,3, ...}
It did not work for me without const. Although there are examples without const. Can constants be stored in RAM at all? Or something like that is only for FRAM?
2.2
or something like that. First the values in FRAM.
#pragma DATA_SECTION (start_up_mode_stage_1_FLASH, "expdata0")
const unsigned int start_up_mode_stage_1_FLASH [64] [16] [2] = {... 0,1,2,3, ...}
but then move it to main () from FLASH to RAM ?? Like here.
/*extern const unsigned int start_up_mode_stage_1[ 64 ] [ 16 ] [ 2 ]*/
//unsigned int ***start_up_mode_stage_1_RAM ; -> als global init
start_up_mode_stage_1_RAM = ( unsigned int *** ) malloc( 64 * sizeof( unsigned int ** ) ) ; // 64 x 2D Felder
for( i = 0; i < 64; i ++ ) {
start_up_mode_stage_1_RAM[ i ] = ( unsigned int ** ) malloc( 16 * sizeof( unsigned int * ) ) ;
for( j = 0; j < 16; j ++ ) {
start_up_mode_stage_1_RAM[ i ] [ j ] = ( unsigned int * ) malloc( 2 * sizeof( unsigned int ) ) ;
}
}
/**/
for( val_one = 0; val_one < 64; val_one ++ ) {
for( val_two = 0; val_two < 16; val_two ++ ) {
for( val_tree = 0; val_tree < 2; val_tree ++ ) {
start_up_mode_stage_1_RAM[ val_one ] [ val_two ] [ val_tree ] = ( unsigned int ) start_up_mode_stage_1_FLASH[ val_one ] [ val_two ] [ val_tree ] ;
}
}
}
/*Hilfsvariable auf Null setzen*/
i = 0 ;
j = 0 ;
val_one = 0 ;
val_two = 0 ;
val_tree = 0 ;
/*extern const unsigned int start_up_mode_stage_2[ 64 ] [ 64 ] 64 x 64*/
//unsigned int **start_up_mode_stage_2_RAM ; ->als global init
start_up_mode_stage_2_RAM = ( unsigned int ** ) malloc( 64 * sizeof( unsigned int * ) ) ;
for( i = 0; i < 64; i ++ ) {
start_up_mode_stage_2_RAM[ i ] = ( unsigned int * ) malloc( 64 * sizeof( unsigned int ) ) ;
}
/**/
for( val_one = 0; val_one < 64; val_one ++ ) {
for( val_two = 0; val_two < 64; val_two ++ ) {
start_up_mode_stage_2_RAM[ val_one ] [ val_two ] = (unsigned int ) start_up_mode_stage_2_FLASH[ val_one ] [ val_two ] ;
}
}
/*Hilfsvariable auf Null setzen*/
i = 0 ;
j = 0 ;
val_one = 0 ;
val_two = 0 ;
val_tree = 0 ;
I have a problem. I can either start_up_mode_stage_1_RAM, or start_up_mode_stage_2_RAM Save. But not both at the same time.
So I need a safe method as I could store multiple arrays in RAM.
Thank you in advance !