Question 3 (10 pts): Memory Map Practice
a) In order to debug an embedded application or to understand an embedded application developed by someone else, it is often necessary to understand how data memory is modified by C code statements. Fill in the given memory map after the C fragment below has been executed. Note: The TM4C123 uses Little Endian ordering for memory (i.e. lower significant bytes of an element are stored at lower addresses). (7 pts)
char msg[4] = “Sal”;
short age[1] = {0x2070};
int speed[2];
msg[3] = 0x61;
msg[1] = 0x6F;
age[0] = age[0] + 2;
speed[0] = 0x696C6345;
age[3] = 0x7370;
age[4] = 0x65;
printf(“%s”, msg);
Memory
Location |
0xFF00 | 0xFF01 | 0xFF02 | 0xFF03 | 0xFF04 | 0xFF05 | 0xFF06 | 0xFF07 | 0xFF08 | 0xFF09 | 0xFF0A | 0xFF0B | 0xFF0C | 0xFF0D |
Value | ||||||||||||||
Array | msg | age | speed | |||||||||||
Index | 0 | 1 | 2 | 3 | 0 | 0 | 1 |
b) What message will printf print for part a) (3 pts)
Question 3 (10 pts): Memory Map Practice a) In order to debug an embedded application or to understand an embedded application developed by someone else, it is often necessary to understand how data memory is modified by C code statements Fill in the given memory map after the C fragment below has been executed. Note: The TM4C123 uses Little Endian ordering for memory (i.e. lower significant bytes of an element are stored at lower addresses).(7 pts) char msq[4] “Sal”; short age [1] {0x2070}; int, speed [2]: msg [3] msg [1] 0x61; 0x6F; age [0] = age [0] + 2; speed [0] 0x696C6345; age [3] age [4] = 0x7370; = 0x65; printf(“%s”, msg); Mem Location 0xFF00lOxFF01 0xFF02 0xFF03 0xFF04 0xFF05 0xFF06 0xFF07 0xFF08 0xFF09 0xFFOAlOxFFOB 0xFFOCIOxFFOD Value ms age speed Index0 0 0 1 b) What message will printf print for part a)(3 pts)