typedef unsigned int (*IAP)(unsigned int[], unsigned int[]); static const IAP iap_entry = (IAP) IAP_ADDRESS; static void iap_reinvoke_isp(void) { unsigned int command[5]; unsigned int result[4]; /* Set stack pointer to ROM value (reset default) */ __set_MSP(*((Int32U *) 0x1FFF0000)); command[0] = 57; iap_entry(command, result); /* Never return from here */ } |
MAINCLKUEN = 0; MAINCLKSEL = 0; MAINCLKUEN = 1; MAINCLKUEN = 0; MAINCLKSEL = 1; MAINCLKUEN = 1; |
void InitClock() { /* Enable XTAL Oscilator */ PDRUNCFG_bit.XTAL_PD = 1; /* Enable Internal RC oscilator */ PDRUNCFG_bit.IRC_PD = 0; /* Select internal RC oscilator for SYS clock source */ MAINCLKUEN = 0; MAINCLKSEL = 0; MAINCLKUEN = 1; MAINCLKUEN = 0; MAINCLKSEL = 1; MAINCLKUEN = 1; } |
//main.c #include "includes.h" /** external data **/ /** internal functions **/ /** public functions **/ void CopyInterruptToSRAM(void) { unsigned int * flashPtr, * ramPtr; unsigned int * uLimit = (unsigned int *) 0x200; ramPtr = (unsigned int *)0x10000000;//load RAM starting at 0x10000000, flashPtr = (unsigned int *)0x00;//start of interrupt vector table while(flashPtr < uLimit) { *ramPtr = *flashPtr; ramPtr++; flashPtr++; } } /************************************************************************* * Function Name: InitClock * Parameters: pllclock - PLL clock, ahbdiv - AHB divider * Return: void * * Description: Initialize PLL to desired clock and AHB divider * Sys clock is Sys PLL output * *************************************************************************/ void InitClock() { /* Enable XTAL Oscilator */ PDRUNCFG_bit.XTAL_PD = 1; /* Enable Internal RC oscilator */ PDRUNCFG_bit.IRC_PD = 0; /* Select internal RC oscilator for SYS clock source */ MAINCLKUEN = 0; MAINCLKSEL = 0; MAINCLKUEN = 1; MAINCLKUEN = 0; MAINCLKSEL = 1; MAINCLKUEN = 1; } /************************************************************************* * Function Name: GpioInit * Parameters: void * Return: void * * Description: Reset all GPIO pins to default: primary function * *************************************************************************/ void GpioInit(void) { /* Set to inputs */ P0DIR = 0; P1DIR = 0; /* Reset all GPIO pins to default primary function */ IOCON_P0_16 = 0x90; IOCON_P0_17 = 0x90; IOCON_P0_18 = 0x90; IOCON_P0_19 = 0x90; IOCON_P0_20 = 0x90; IOCON_P0_21 = 0x90; IOCON_P0_22 = 0x90; IOCON_P0_23 = 0x90; } #pragma language=extended #pragma segment="CSTACK" void entry_point(void); typedef void( *intfunc )( void ); typedef union { intfunc __fun; void * __ptr; } intvec_elem; // The vector table is normally located at address 0. // When debugging in RAM, it can be located in RAM, aligned to at least 2^6. // If you need to define interrupt service routines, // make a copy of this file and include it in your project. // The name "__vector_table" has special meaning for C-SPY: // it is where the SP start value is found, and the NVIC vector // table register (VTOR) is initialized to this address if != 0. #pragma location = ".intvec" const intvec_elem __vector_table[] = { { .__ptr = __sfe( "CSTACK" ) }, entry_point, }; /************************************************************************* * Function Name: main * Parameters: none * * Return: none * * Description: main * *************************************************************************/ int main(void) { Int8U counter=0; /* Init clock */ InitClock(); /* Enable GPIO Clock */ SYSAHBCLKCTRL_bit.GPIO = 1; /* Enable IOCON Clock */ SYSAHBCLKCTRL_bit.IOCON = 1; /* Set all pins as input ports */ GpioInit(); /* Init LED Ports */ LEDS_OFF(); LEDS_DIR |= LEDS_MASK; /* Main loop */ while(1) { /* Lights-up next LED */ /* if USER button is pressed, invert LEDs */ LEDS_OFF(); if(!(USER_PORT & USER_MASK)) { LEDS_ON(~(1 << (counter++%8))); } else { LEDS_ON(1 << (counter++%8)); } for (int i = 0; i < 100000; i++) asm("NOP"); } } #pragma required=__vector_table void entry_point() { main(); } |
############################################################################### # # # IAR ELF Linker V6.30.6.53336/W32 for ARM 14/Mar/2016 17:34:08 # # Copyright 2007-2012 IAR Systems AB. # # # # Output file = D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStartedCleanedRAM\Flash # # Debug\Exe\GettingStarted.out.tmp # # Map file = D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStartedCleanedRAM\Flash # # Debug\List\GettingStarted.map # # Command line = "D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Ge # # ttingStartedCleanedRAM\Flash Debug\Obj\cstartup_M.o" # # "D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Ge # # ttingStartedCleanedRAM\Flash Debug\Obj\drv_hd44780.o" # # "D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Ge # # ttingStartedCleanedRAM\Flash Debug\Obj\drv_hd44780_l.o" # # "D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Ge # # ttingStartedCleanedRAM\Flash Debug\Obj\drv_nvic.o" # # "D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Ge # # ttingStartedCleanedRAM\Flash Debug\Obj\main.o" # # --redirect _Printf=_PrintfTiny --redirect # # _Scanf=_ScanfSmall -o "D:\Desktop\arm\examples\NXP\LPC11 # # xx\IAR-LPC-11A14-SK\GettingStartedCleanedRAM\Flash # # Debug\Exe\GettingStarted.out.tmp" --map # # "D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Ge # # ttingStartedCleanedRAM\Flash # # Debug\List\GettingStarted.map" --config # # D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStartedCleanedRAM\config\LPC11A14_Flash.icf # # --semihosting --entry entry_point --inline # # --merge_duplicate_sections --vfe # # # # # ############################################################################### ******************************************************************************* *** RUNTIME MODEL ATTRIBUTES *** CppFlavor = * __SystemLibrary = DLib ******************************************************************************* *** PLACEMENT SUMMARY *** "P1": place in [from 0x10000200 to 0x100003ff] { section .intvec }; "P2": place in [from 0x10000200 to 0x10001fdf] { section .cstartup, ro, rw, block CSTACK, block HEAP }; Section Kind Address Size Object ------- ---- ------- ---- ------ "P1": 0x8 .intvec const 0x10000200 0x8 main.o [1] - 0x10000208 0x8 "P2": 0x8d8 .text ro code 0x10000208 0xd4 main.o [1] CSTACK 0x100002e0 0x800 <Block> CSTACK uninit 0x100002e0 0x800 <Block tail> - 0x10000ae0 0x8d8 Absolute sections, part 1 of 8: 0x20 .noinit uninit 0x40044040 0x4 main.o [1] .noinit uninit 0x40044044 0x4 main.o [1] .noinit uninit 0x40044048 0x4 main.o [1] .noinit uninit 0x4004404c 0x4 main.o [1] .noinit uninit 0x40044050 0x4 main.o [1] .noinit uninit 0x40044054 0x4 main.o [1] .noinit uninit 0x40044058 0x4 main.o [1] .noinit uninit 0x4004405c 0x4 main.o [1] - 0x40044060 0x20 Absolute sections, part 2 of 8: 0x8 .noinit uninit 0x40048070 0x4 main.o [1] .noinit uninit 0x40048074 0x4 main.o [1] - 0x40048078 0x8 Absolute sections, part 3 of 8: 0x4 .noinit uninit 0x40048080 0x4 main.o [1] - 0x40048084 0x4 Absolute sections, part 4 of 8: 0x4 .noinit uninit 0x40048238 0x4 main.o [1] - 0x4004823c 0x4 Absolute sections, part 5 of 8: 0x8 .noinit uninit 0x50002000 0x4 main.o [1] .noinit uninit 0x50002004 0x4 main.o [1] - 0x50002008 0x8 Absolute sections, part 6 of 8: 0x4 .noinit uninit 0x50002100 0x4 main.o [1] - 0x50002104 0x4 Absolute sections, part 7 of 8: 0x4 .noinit uninit 0x50002200 0x4 main.o [1] - 0x50002204 0x4 Absolute sections, part 8 of 8: 0x4 .noinit uninit 0x50002280 0x4 main.o [1] - 0x50002284 0x4 ******************************************************************************* *** MODULE SUMMARY *** Module ro code ro data rw data rw data (abs) ------ ------- ------- ------- ------- D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\GettingStartedCleanedRAM\Flash Debug\Obj: [1] main.o 212 8 68 -------------------------------------------------- Total: 212 8 68 Linker created 2 048 ------------------------------------------------------ Grand Total: 212 8 2 048 68 ******************************************************************************* *** ENTRY LIST *** Entry Address Size Type Object ----- ------- ---- ---- ------ CSTACK$$Base 0x100002e0 -- Gb - Linker created - CSTACK$$Limit 0x10000ae0 -- Gb - Linker created - GpioInit 0x1000022f 0x1e Code Gb main.o [1] InitClock 0x10000209 0x26 Code Gb main.o [1] Region$$Table$$Base 0x00000000 -- Gb - Linker created - Region$$Table$$Limit 0x00000000 -- Gb - Linker created - _A_IOCON_P0_16 0x40044040 0x4 Data Gb main.o [1] _A_IOCON_P0_17 0x40044044 0x4 Data Gb main.o [1] _A_IOCON_P0_18 0x40044048 0x4 Data Gb main.o [1] _A_IOCON_P0_19 0x4004404c 0x4 Data Gb main.o [1] _A_IOCON_P0_20 0x40044050 0x4 Data Gb main.o [1] _A_IOCON_P0_21 0x40044054 0x4 Data Gb main.o [1] _A_IOCON_P0_22 0x40044058 0x4 Data Gb main.o [1] _A_IOCON_P0_23 0x4004405c 0x4 Data Gb main.o [1] _A_MAINCLKSEL 0x40048070 0x4 Data Gb main.o [1] _A_MAINCLKUEN 0x40048074 0x4 Data Gb main.o [1] _A_P0CLR 0x50002280 0x4 Data Gb main.o [1] _A_P0DIR 0x50002000 0x4 Data Gb main.o [1] _A_P0PORT 0x50002100 0x4 Data Gb main.o [1] _A_P0SET 0x50002200 0x4 Data Gb main.o [1] _A_P1DIR 0x50002004 0x4 Data Gb main.o [1] _A_PDRUNCFG 0x40048238 0x4 Data Gb main.o [1] _A_SYSAHBCLKCTRL 0x40048080 0x4 Data Gb main.o [1] __vector_table 0x10000200 0x8 Data Gb main.o [1] entry_point 0x100002d5 0x8 Code Gb main.o [1] main 0x10000251 0x5e Code Gb main.o [1] [1] = D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\GettingStartedCleanedRAM\Flash Debug\Obj [2] = command line [3] = dl6M_tln.a [4] = rt6M_tl.a [5] = shb_l.a 212 bytes of readonly code memory 8 bytes of readonly data memory 2 048 bytes of readwrite data memory (+ 68 absolute) Errors: none Warnings: none |
/************************************************** * * Part one of the system initialization code, contains low-level * initialization, plain thumb variant. * * Copyright 2011 IAR Systems. All rights reserved. * * $Revision: 47021 $ * **************************************************/ ; ; The modules in this file are included in the libraries, and may be replaced ; by any user-defined modules that define the PUBLIC symbol _program_start or ; a user defined start symbol. ; To override the cstartup defined in the library, simply add your modified ; version to the workbench project. ; ; The vector table is normally located at address 0. ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. ; The name "__vector_table" has special meaning for C-SPY: ; it is where the SP start value is found, and the NVIC vector ; table register (VTOR) is initialized to this address if != 0. ; ; Cortex-M version ; MODULE ?cstartup ;; Forward declaration of sections. SECTION CSTACK:DATA:NOROOT(3) SECTION .intvec:CODE:NOROOT(2) EXTERN main //EXTERN __iar_program_start PUBLIC __vector_table PUBLIC __vector_table_0x1c DATA __vector_table DCD sfe(CSTACK) ; Top of Stack //DCD __iar_program_start __vector_table_0x1c DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved ; External Interrupts DCD GPIO0_IRQHandler ; All GPIO pin can be routed to FLEX_INTx ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Default interrupt handlers. ;; THUMB SECTION .text:CODE:REORDER:NOROOT(1) GPIO0_IRQHandler Default_Handler: B Default_Handler SECTION .crp:CODE:ROOT(2) DATA /* Code Read Protection NO_ISP 0x4E697370 - Prevents sampling of pin PIO0_1 for entering ISP mode CRP1 0x12345678 - Write to RAM command cannot access RAM below 0x10000300. - Copy RAM to flash command can not write to Sector 0. - Erase command can erase Sector 0 only when all sectors are selected for erase. - Compare command is disabled. - Read Memory command is disabled. CRP2 0x87654321 - Read Memory is disabled. - Write to RAM is disabled. - "Go" command is disabled. - Copy RAM to flash is disabled. - Compare is disabled. CRP3 0x43218765 - Access to chip via the SWD pins is disabled. ISP entry by pulling PIO0_1 LOW is disabled if a valid user code is present in flash sector 0. Caution: If CRP3 is selected, no future factory testing can be performed on the device. */ DCD0xFFFFFFFF END |
############################################################################### # # # IAR ELF Linker V6.30.6.53336/W32 for ARM 10/Mar/2016 09:31:34 # # Copyright 2007-2012 IAR Systems AB. # # # # Output file = D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStarted\Release\Exe\GettingStarted.out.tmp # # Map file = D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStarted\Release\List\GettingStarted.map # # Command line = D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStarted\Release\Obj\cstartup_M.o # # D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStarted\Release\Obj\main.o --redirect # # _Printf=_PrintfTiny --redirect _Scanf=_ScanfSmall -o # # D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStarted\Release\Exe\GettingStarted.out.tmp --map # # D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStarted\Release\List\GettingStarted.map --config # # D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\Get # # tingStarted\config\LPC11A14_Flash.icf --semihosting # # --inline --merge_duplicate_sections --vfe # # # # # ############################################################################### ******************************************************************************* *** RUNTIME MODEL ATTRIBUTES *** CppFlavor = * __SystemLibrary = DLib ******************************************************************************* *** PLACEMENT SUMMARY *** "A1": place at 0x10000000 { ro section .intvec }; "P1": place in [from 0x10000200 to 0x100004ff] { ro }; "P2": place in [from 0x10000500 to 0x10001de0] { rw, block CSTACK, block HEAP }; "P4": place in [from 0x000002fc to 0x000002ff] { section .crp }; Section Kind Address Size Object ------- ---- ------- ---- ------ "P4": 0x4 P4 s0 0x000002fc 0x4 <Init block> .crp inited 0x000002fc 0x4 cstartup_M.o [1] - 0x00000300 0x4 "A1": 0x20 .intvec ro code 0x10000000 0x20 cstartup_M.o [1] - 0x10000020 0x20 "P1": 0x1c8 .text ro code 0x10000200 0x2e copy_init3.o [4] .text ro code 0x1000022e 0x2 cstartup_M.o [1] .text ro code 0x10000230 0x2c data_init3.o [4] .iar.init_table const 0x1000025c 0x28 - Linker created - .text ro code 0x10000284 0x16 cmain.o [4] .text ro code 0x1000029c 0x14 exit.o [5] .text ro code 0x100002b0 0xc cstartup_M.o [4] .rodata const 0x100002bc 0x0 bwt_init3c.o [4] Initializer bytes ro data 0x100002bc 0x4 <for P4 s0> Initializer bytes ro data 0x100002c0 0x108 <for P2 s1> - 0x100003c8 0x1c8 "P2", part 1 of 2: 0x108 P2 s1 0x10000500 0x108 <Init block> RAMCODE inited 0x10000500 0xf4 main.o [1] .text inited 0x100005f4 0xa cexit.o [4] .text inited 0x100005fe 0x8 exit.o [3] - 0x10000608 0x108 "P2", part 2 of 2: 0x800 CSTACK 0x10000608 0x800 <Block> CSTACK uninit 0x10000608 0x800 <Block tail> - 0x10000e08 0x800 Absolute sections, part 1 of 9: 0x4 .noinit uninit 0x40044000 0x4 main.o [1] - 0x40044004 0x4 Absolute sections, part 2 of 9: 0x20 .noinit uninit 0x40044040 0x4 main.o [1] .noinit uninit 0x40044044 0x4 main.o [1] .noinit uninit 0x40044048 0x4 main.o [1] .noinit uninit 0x4004404c 0x4 main.o [1] .noinit uninit 0x40044050 0x4 main.o [1] .noinit uninit 0x40044054 0x4 main.o [1] .noinit uninit 0x40044058 0x4 main.o [1] .noinit uninit 0x4004405c 0x4 main.o [1] - 0x40044060 0x20 Absolute sections, part 3 of 9: 0x4 .noinit uninit 0x40048000 0x4 main.o [1] - 0x40048004 0x4 Absolute sections, part 4 of 9: 0xc .noinit uninit 0x40048070 0x4 main.o [1] .noinit uninit 0x40048074 0x4 main.o [1] .noinit uninit 0x40048078 0x4 main.o [1] - 0x4004807c 0xc Absolute sections, part 5 of 9: 0x4 .noinit uninit 0x40048080 0x4 main.o [1] - 0x40048084 0x4 Absolute sections, part 6 of 9: 0x4 .noinit uninit 0x40048238 0x4 main.o [1] - 0x4004823c 0x4 Absolute sections, part 7 of 9: 0x8 .noinit uninit 0x50002000 0x4 main.o [1] .noinit uninit 0x50002004 0x4 main.o [1] - 0x50002008 0x8 Absolute sections, part 8 of 9: 0x4 .noinit uninit 0x50002100 0x4 main.o [1] - 0x50002104 0x4 Absolute sections, part 9 of 9: 0x4 .noinit uninit 0x50002200 0x4 main.o [1] - 0x50002204 0x4 ******************************************************************************* *** INIT TABLE *** Address Size ------- ---- Copy (__iar_copy_init3) 1 source range, total size 0x4: 0x100002bc 0x4 1 destination range, total size 0x4: 0x000002fc 0x4 Copy (__iar_copy_init3) 1 source range, total size 0x108 (100% of destination): 0x100002c0 0x108 1 destination range, total size 0x106: 0x10000500 0x106 ******************************************************************************* *** MODULE SUMMARY *** Module ro code rw code ro data rw data rw data (abs) ------ ------- ------- ------- ------- ------- D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\GettingStarted\Release\Obj: [1] cstartup_M.o 34 4 4 main.o 244 244 76 ----------------------------------------------------------- Total: 34 248 248 76 command line: [2] ----------------------------------------------------------- Total: dl6M_tln.a: [3] exit.o 8 8 ----------------------------------------------------------- Total: 8 8 rt6M_tl.a: [4] bwt_init3c.o cexit.o 10 10 cmain.o 22 copy_init3.o 46 cstartup_M.o 12 data_init3.o 44 ----------------------------------------------------------- Total: 124 10 10 shb_l.a: [5] exit.o 20 ----------------------------------------------------------- Total: 20 Gaps 2 Linker created 42 2 048 --------------------------------------------------------------- Grand Total: 180 266 308 2 048 76 ******************************************************************************* *** ENTRY LIST *** Entry Address Size Type Object ----- ------- ---- ---- ------ ?main 0x10000285 Code Gb cmain.o [4] CSTACK$$Base 0x10000608 -- Gb - Linker created - CSTACK$$Limit 0x10000e08 -- Gb - Linker created - GpioInit 0x10000537 0x20 Code Gb main.o [1] InitClock 0x10000501 0x36 Code Gb main.o [1] Region$$Table$$Base 0x1000025c -- Gb - Linker created - Region$$Table$$Limit 0x10000284 -- Gb - Linker created - _A_IOCON_P0_16 0x40044040 0x4 Data Gb main.o [1] _A_IOCON_P0_17 0x40044044 0x4 Data Gb main.o [1] _A_IOCON_P0_18 0x40044048 0x4 Data Gb main.o [1] _A_IOCON_P0_19 0x4004404c 0x4 Data Gb main.o [1] _A_IOCON_P0_20 0x40044050 0x4 Data Gb main.o [1] _A_IOCON_P0_21 0x40044054 0x4 Data Gb main.o [1] _A_IOCON_P0_22 0x40044058 0x4 Data Gb main.o [1] _A_IOCON_P0_23 0x4004405c 0x4 Data Gb main.o [1] _A_IOCON_RESET_P0_0 0x40044000 0x4 Data Gb main.o [1] _A_MAINCLKSEL 0x40048070 0x4 Data Gb main.o [1] _A_MAINCLKUEN 0x40048074 0x4 Data Gb main.o [1] _A_P0DIR 0x50002000 0x4 Data Gb main.o [1] _A_P0PORT 0x50002100 0x4 Data Gb main.o [1] _A_P0SET 0x50002200 0x4 Data Gb main.o [1] _A_P1DIR 0x50002004 0x4 Data Gb main.o [1] _A_PDRUNCFG 0x40048238 0x4 Data Gb main.o [1] _A_SYSAHBCLKCTRL 0x40048080 0x4 Data Gb main.o [1] _A_SYSAHBCLKDIV 0x40048078 0x4 Data Gb main.o [1] _A_SYSMEMREMAP 0x40048000 0x4 Data Gb main.o [1] __cmain 0x10000285 Code Gb cmain.o [4] __exit 0x1000029d 0x14 Code Gb exit.o [5] __iar_SB 0x100002bc Data Gb bwt_init3c.o [4] __iar_copy_init3 0x10000201 0x2e Code Gb copy_init3.o [4] __iar_data_init3 0x10000231 0x2c Code Gb data_init3.o [4] __iar_program_start 0x100002b1 Code Gb cstartup_M.o [4] __vector_table 0x10000000 Data Gb cstartup_M.o [1] __vector_table_0x1c 0x10000004 Data Gb cstartup_M.o [1] _call_main 0x10000291 Code Gb cmain.o [4] _exit 0x100005f5 Code Gb cexit.o [4] _main 0x10000297 Code Gb cmain.o [4] exit 0x100005ff 0x8 Code Gb exit.o [3] main 0x10000559 0x6e Code Gb main.o [1] [1] = D:\Desktop\arm\examples\NXP\LPC11xx\IAR-LPC-11A14-SK\GettingStarted\Release\Obj [2] = command line [3] = dl6M_tln.a [4] = rt6M_tl.a [5] = shb_l.a 180 bytes of readonly code memory 266 bytes of readwrite code memory 308 bytes of readonly data memory 2 048 bytes of readwrite data memory (+ 76 absolute) Errors: none Warnings: none |