diff --git a/firmware/.cproject b/firmware/.cproject index cbc6f60..f33bf38 100644 --- a/firmware/.cproject +++ b/firmware/.cproject @@ -116,7 +116,6 @@ - @@ -136,8 +135,8 @@ - + @@ -163,7 +162,7 @@ - + diff --git a/firmware/inc/InitDevice.h b/firmware/inc/InitDevice.h index 1b10438..356bc5b 100644 --- a/firmware/inc/InitDevice.h +++ b/firmware/inc/InitDevice.h @@ -27,6 +27,10 @@ extern void TIMER01_0_enter_DefaultMode_from_RESET(void); extern void TIMER16_2_enter_DefaultMode_from_RESET(void); extern void TIMER16_3_enter_DefaultMode_from_RESET(void); extern void TIMER_SETUP_0_enter_DefaultMode_from_RESET(void); +extern void PCA_0_enter_DefaultMode_from_RESET(void); +extern void PCACH_0_enter_DefaultMode_from_RESET(void); +extern void PCACH_1_enter_DefaultMode_from_RESET(void); +extern void PCACH_2_enter_DefaultMode_from_RESET(void); extern void SMBUS_0_enter_DefaultMode_from_RESET(void); extern void UART_0_enter_DefaultMode_from_RESET(void); extern void INTERRUPT_0_enter_DefaultMode_from_RESET(void); diff --git a/firmware/inc/app.h b/firmware/inc/app.h index 5399944..aa2a23e 100644 --- a/firmware/inc/app.h +++ b/firmware/inc/app.h @@ -32,6 +32,7 @@ typedef enum } APP_STATE; + typedef enum { ERROR_NOTHING = 0, @@ -51,7 +52,7 @@ APP_ERROR_CODE; struct APP_DATA { - // must be at least 37 bytes + // must be at least 70 bytes uint8_t tmp[70]; uint8_t state; uint8_t error; @@ -79,10 +80,12 @@ extern data struct APP_DATA appdata; void set_app_u2f_hid_msg(struct u2f_hid_msg * msg ); void set_app_error(APP_ERROR_CODE ec); +void rgb(uint8_t r, uint8_t g, uint8_t b); // should be called after initializing eeprom void u2f_init(); + #ifdef ATECC_SETUP_DEVICE void atecc_setup_device(struct config_msg * msg); diff --git a/firmware/inc/bsp.h b/firmware/inc/bsp.h index 9722d1f..b234208 100644 --- a/firmware/inc/bsp.h +++ b/firmware/inc/bsp.h @@ -25,9 +25,25 @@ extern SI_SEGMENT_VARIABLE(myUsbDevice, USBD_Device_TypeDef, MEM_MODEL_SEG); SI_SBIT(LED_B, SFR_P0, 6); SI_SBIT(LED_G, SFR_P0, 7); SI_SBIT(LED_R, SFR_P1, 0); + SI_SBIT(U2F_BUTTON, SFR_P0, 2); SI_SBIT(U2F_BUTTON_VAL, SFR_P0, 3); +#define U2F_BUTTON_IS_PRESSED() (U2F_BUTTON == 0) + +// Set brightness via PWM +#define LED_B(x)\ + PCA0CPL0 = ((((uint8_t)(x))) << PCA0CPL0_PCA0CPL0__SHIFT);\ + PCA0CPH0 = ((((uint8_t)(x))) << PCA0CPH0_PCA0CPH0__SHIFT) + +#define LED_G(x) \ + PCA0CPL1 = ((((uint8_t)(x))) << PCA0CPL1_PCA0CPL1__SHIFT); \ + PCA0CPH1 = ((((uint8_t)(x))) << PCA0CPH1_PCA0CPH1__SHIFT) + +#define LED_R(x)\ + PCA0CPL2 = ((((uint8_t)(x))) << PCA0CPL2_PCA0CPL2__SHIFT);\ + PCA0CPH2 = ((((uint8_t)(x))) << PCA0CPH2_PCA0CPH2__SHIFT) + void u2f_delay(int16_t ms); diff --git a/firmware/inc/i2c.h b/firmware/inc/i2c.h index 58168e9..ed14826 100644 --- a/firmware/inc/i2c.h +++ b/firmware/inc/i2c.h @@ -32,7 +32,7 @@ struct smb_interrupt_interface }; extern struct smb_interrupt_interface SMB; -extern volatile uint8_t SMB_FLAGS; +extern data volatile uint8_t SMB_FLAGS; #define SMB_MAX_ERRORS 15 #define SMB_ERRORS_EXCEEDED(inter) ((inter)->errors > SMB_MAX_ERRORS) diff --git a/firmware/release/Keil 8051 v9.53 - Release/lib/efm8_assert/subdir.mk b/firmware/release/Keil 8051 v9.53 - Release/lib/efm8_assert/subdir.mk deleted file mode 100644 index be68b00..0000000 --- a/firmware/release/Keil 8051 v9.53 - Release/lib/efm8_assert/subdir.mk +++ /dev/null @@ -1,11 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -OBJ_UPPER_SRCS += \ -../Keil\ 8051\ v9.53\ -\ Release/lib/efm8_assert/assert.OBJ - - -# Each subdirectory must supply rules for building sources it contributes - diff --git a/firmware/release/Keil 8051 v9.53 - Release/lib/efm8_usb/src/subdir.mk b/firmware/release/Keil 8051 v9.53 - Release/lib/efm8_usb/src/subdir.mk deleted file mode 100644 index b528b3a..0000000 --- a/firmware/release/Keil 8051 v9.53 - Release/lib/efm8_usb/src/subdir.mk +++ /dev/null @@ -1,14 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -OBJ_UPPER_SRCS += \ -../Keil\ 8051\ v9.53\ -\ Release/lib/efm8_usb/src/efm8_usbd.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/lib/efm8_usb/src/efm8_usbdch9.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/lib/efm8_usb/src/efm8_usbdep.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/lib/efm8_usb/src/efm8_usbdint.OBJ - - -# Each subdirectory must supply rules for building sources it contributes - diff --git a/firmware/release/Keil 8051 v9.53 - Release/lib/efm8ub1/peripheralDrivers/src/subdir.mk b/firmware/release/Keil 8051 v9.53 - Release/lib/efm8ub1/peripheralDrivers/src/subdir.mk deleted file mode 100644 index b9db6df..0000000 --- a/firmware/release/Keil 8051 v9.53 - Release/lib/efm8ub1/peripheralDrivers/src/subdir.mk +++ /dev/null @@ -1,11 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -OBJ_UPPER_SRCS += \ -../Keil\ 8051\ v9.53\ -\ Release/lib/efm8ub1/peripheralDrivers/src/usb_0.OBJ - - -# Each subdirectory must supply rules for building sources it contributes - diff --git a/firmware/release/Keil 8051 v9.53 - Release/src/subdir.mk b/firmware/release/Keil 8051 v9.53 - Release/src/subdir.mk deleted file mode 100644 index 86e7fca..0000000 --- a/firmware/release/Keil 8051 v9.53 - Release/src/subdir.mk +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -OBJ_UPPER_SRCS += \ -../Keil\ 8051\ v9.53\ -\ Release/src/InitDevice.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/Interrupts.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/SILABS_STARTUP.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/atecc508a.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/bsp.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/callback.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/descriptors.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/eeprom.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/i2c.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/idle.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/main.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/u2f-atecc.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/u2f.OBJ \ -../Keil\ 8051\ v9.53\ -\ Release/src/u2f_hid.OBJ - - -# Each subdirectory must supply rules for building sources it contributes - diff --git a/firmware/release/Keil 8051 v9.53 - Release/tests/subdir.mk b/firmware/release/Keil 8051 v9.53 - Release/tests/subdir.mk deleted file mode 100644 index 99c93ac..0000000 --- a/firmware/release/Keil 8051 v9.53 - Release/tests/subdir.mk +++ /dev/null @@ -1,11 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -OBJ_UPPER_SRCS += \ -../Keil\ 8051\ v9.53\ -\ Release/tests/tests.OBJ - - -# Each subdirectory must supply rules for building sources it contributes - diff --git a/firmware/release/lib/efm8_assert/assert.OBJ b/firmware/release/lib/efm8_assert/assert.OBJ index 26da295..3dd4a43 100644 Binary files a/firmware/release/lib/efm8_assert/assert.OBJ and b/firmware/release/lib/efm8_assert/assert.OBJ differ diff --git a/firmware/release/lib/efm8_assert/assert.__i b/firmware/release/lib/efm8_assert/assert.__i index 9245f39..f4d0285 100644 --- a/firmware/release/lib/efm8_assert/assert.__i +++ b/firmware/release/lib/efm8_assert/assert.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/lib/efm8_assert/assert.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_assert/assert.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_assert/assert.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/lib/efm8_assert/assert.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_assert/assert.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_assert/assert.OBJ) \ No newline at end of file diff --git a/firmware/release/lib/efm8_assert/assert.lst b/firmware/release/lib/efm8_assert/assert.lst index 2f505c9..947c6c0 100644 --- a/firmware/release/lib/efm8_assert/assert.lst +++ b/firmware/release/lib/efm8_assert/assert.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 ASSERT 03/28/2016 20:17:26 PAGE 1 +C51 COMPILER V9.53.0.0 ASSERT 03/29/2016 00:06:40 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE ASSERT @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\lib/efm8_assert/assert.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/lib/efm8_assert/assert.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,S -IZE) INTVECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc; - -/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/ - -sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/ - -SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3// - -Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/Si - -mplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_assert/assert.ls - -t) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\lib/efm8_assert/assert.OBJ) + -/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/h + -ome/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v + -3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_ + -v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/ + -/Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_assert/assert.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJEC + -T(.\lib/efm8_assert/assert.OBJ) line level source diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbd.OBJ b/firmware/release/lib/efm8_usb/src/efm8_usbd.OBJ index a9b2cff..1b67d8e 100644 Binary files a/firmware/release/lib/efm8_usb/src/efm8_usbd.OBJ and b/firmware/release/lib/efm8_usb/src/efm8_usbd.OBJ differ diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbd.__i b/firmware/release/lib/efm8_usb/src/efm8_usbd.__i index e0f76c9..fb2d250 100644 --- a/firmware/release/lib/efm8_usb/src/efm8_usbd.__i +++ b/firmware/release/lib/efm8_usb/src/efm8_usbd.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/lib/efm8_usb/src/efm8_usbd.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbd.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_usb/src/efm8_usbd.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/lib/efm8_usb/src/efm8_usbd.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbd.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_usb/src/efm8_usbd.OBJ) \ No newline at end of file diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbd.lst b/firmware/release/lib/efm8_usb/src/efm8_usbd.lst index c2edd5a..5f00e95 100644 --- a/firmware/release/lib/efm8_usb/src/efm8_usbd.lst +++ b/firmware/release/lib/efm8_usb/src/efm8_usbd.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 1 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE EFM8_USBD @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\lib/efm8_usb/src/efm8_usbd.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/lib/efm8_usb/src/efm8_usbd.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE -(9,SIZE) INTVECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/ - -inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/develo - -per/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home - -/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/ - -v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/p - -p/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8 - -_usbd.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\lib/efm8_usb/src/efm8_usbd.OBJ) + -inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Bas + -e;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si80 + -51/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStu + -dio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051 + -/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbd.lst) COND PAGEWIDTH(120) PAGELENGTH(6 + -5) OBJECT(.\lib/efm8_usb/src/efm8_usbd.OBJ) line level source @@ -63,7 +63,7 @@ line level source 46 // USB API Functions 47 48 void USBD_AbortAllTransfers(void) -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 2 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 2 49 { 50 1 uint8_t i; @@ -128,7 +128,7 @@ line level source 109 4 break; 110 4 #endif 111 4 #if SLAB_USB_EP2OUT_USED -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 3 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 3 case EP2OUT: USB_AbortOutEp(2); @@ -193,7 +193,7 @@ line level source 172 USBD_State_TypeDef USBD_GetUsbState(void) 173 { 174 1 return myUsbDevice.state; -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 4 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 4 175 1 } 176 @@ -258,7 +258,7 @@ line level source #endif 236 1 237 1 // Only enable USB interrupts when not in polled mode -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 5 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 5 238 1 #if (SLAB_USB_POLLED_MODE == 0) 239 1 USB_EnableInts(); @@ -323,7 +323,7 @@ line level source 298 2 if (ep->state == D_EP_STALL) 299 2 { 300 3 return USB_STATUS_EP_STALLED; -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 6 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 6 301 3 } 302 2 else @@ -388,7 +388,7 @@ line level source 361 1 USB_SaveSfrPage(); 362 1 363 1 // Verify the endpoint address is valid and not Endpoint 0. -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 7 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 7 364 1 if ((epAddr == EP0) || (epAddr >= SLAB_USB_NUM_EPS_USED)) 365 1 { @@ -453,7 +453,7 @@ line level source 424 1 } 425 426 void USBD_Stop(void) -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 8 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 8 427 { 428 1 USB_DisableInts(); @@ -518,7 +518,7 @@ line level source 487 3 #if SLAB_USB_REMOTE_WAKEUP_ENABLED // If remote wakeup is enabled, query the application if the remote // wakeup event occurred. If so, exit USBD_Suspend(). -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 9 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 9 if (USB_IsSuspended() == true) { @@ -583,7 +583,7 @@ line level source 550 3 #if SLAB_USB_EP1IN_USED 551 3 case (EP1IN): 552 3 myUsbDevice.ep1in.state = D_EP_IDLE; -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 10 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 10 553 3 USB_SetIndex(1); 554 3 USB_EpnInEndStall(); @@ -648,7 +648,7 @@ line level source 613 1 { 614 2 case EP0: 615 2 #if SLAB_USB_EP1IN_USED -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 11 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 11 616 2 case EP1IN: 617 2 #endif @@ -713,7 +713,7 @@ line level source 676 2 677 2 // For data endpoints, we will call USB_WriteFIFO here to reduce latency 678 2 // between the call to USBD_Write() and the first packet being sent. -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 12 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 12 679 2 #if SLAB_USB_EP1IN_USED 680 2 case (EP1IN): @@ -778,7 +778,7 @@ line level source 735 2 #if (SLAB_USB_SUPPORT_ALT_INTERFACES) for (i = 0; i < SLAB_USB_NUM_INTERFACES; i++) { -C51 COMPILER V9.53.0.0 EFM8_USBD 03/28/2016 20:17:26 PAGE 13 +C51 COMPILER V9.53.0.0 EFM8_USBD 03/29/2016 00:06:40 PAGE 13 myUsbDevice.interfaceAltSetting[i] = 0; } diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbdch9.OBJ b/firmware/release/lib/efm8_usb/src/efm8_usbdch9.OBJ index c3a157d..0292b37 100644 Binary files a/firmware/release/lib/efm8_usb/src/efm8_usbdch9.OBJ and b/firmware/release/lib/efm8_usb/src/efm8_usbdch9.OBJ differ diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbdch9.__i b/firmware/release/lib/efm8_usb/src/efm8_usbdch9.__i index faf4fb9..1f64562 100644 --- a/firmware/release/lib/efm8_usb/src/efm8_usbdch9.__i +++ b/firmware/release/lib/efm8_usb/src/efm8_usbdch9.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/lib/efm8_usb/src/efm8_usbdch9.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbdch9.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_usb/src/efm8_usbdch9.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/lib/efm8_usb/src/efm8_usbdch9.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbdch9.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_usb/src/efm8_usbdch9.OBJ) \ No newline at end of file diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbdch9.lst b/firmware/release/lib/efm8_usb/src/efm8_usbdch9.lst index 6ec3274..59e139e 100644 --- a/firmware/release/lib/efm8_usb/src/efm8_usbdch9.lst +++ b/firmware/release/lib/efm8_usb/src/efm8_usbdch9.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 1 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE EFM8_USBDCH9 @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\lib/efm8_usb/src/efm8_usbdch9.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/lib/efm8_usb/src/efm8_usbdch9.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIM -IZE(9,SIZE) INTVECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmwa - -re/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/dev - -eloper/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/h - -ome/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si80 - -51/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/hom - -e/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/e - -fm8_usbdch9.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\lib/efm8_usb/src/efm8_usbdch9.OBJ) + -re/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051 + -Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/s + -i8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/Simplicity + -Studio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8 + -051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbdch9.lst) COND PAGEWIDTH(120) PAGELE + -NGTH(65) OBJECT(.\lib/efm8_usb/src/efm8_usbdch9.OBJ) line level source @@ -63,7 +63,7 @@ line level source 46 * stored in @ref myUsbDevice.setup. 47 ******************************************************************************/ 48 USB_Status_TypeDef USBDCH9_SetupCmd(void) -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 2 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 2 49 { 50 1 USB_Status_TypeDef status = USB_STATUS_OK; @@ -128,7 +128,7 @@ line level source 109 * @details Supports CLEAR_FEATURE for Remote Wakeup and Endpoint Halt 110 * @return Status of request (type @ref USB_Status_TypeDef) 111 * @note This function takes no parameters, but it uses the setup command -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 3 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 3 112 * stored in @ref myUsbDevice.setup. 113 ******************************************************************************/ @@ -193,7 +193,7 @@ line level source 172 6 #endif 173 6 #if SLAB_USB_EP2OUT_USED case (USB_EP_DIR_OUT | 2): -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 4 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 4 if (myUsbDevice.ep2out.state != D_EP_RECEIVING) { @@ -258,7 +258,7 @@ line level source 235 1 && (myUsbDevice.setup.wLength == 1) 236 1 && (myUsbDevice.setup.bmRequestType.Direction == USB_SETUP_DIR_IN) 237 1 && (myUsbDevice.setup.bmRequestType.Recipient == USB_SETUP_RECIPIENT_DEVICE)) -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 5 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 5 238 1 { 239 2 if (myUsbDevice.state == USBD_STATE_ADDRESSED) @@ -323,7 +323,7 @@ line level source 298 3 case USB_STRING_DESCRIPTOR: 299 3 #if (SLAB_USB_NUM_LANGUAGES == 1) 300 3 -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 6 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 6 301 3 dat = (uint8_t *)myUsbDevice.stringDescriptors[index]; 302 3 @@ -388,7 +388,7 @@ line level source } } #endif // ( SLAB_USB_NUM_LANGUAGES == 1 ) -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 7 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 7 364 3 } 365 2 @@ -453,7 +453,7 @@ line level source 424 static USB_Status_TypeDef GetStatus(void) 425 { 426 1 USB_Status_TypeDef retVal = USB_STATUS_REQ_ERR; -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 8 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 8 427 1 428 1 if ((myUsbDevice.setup.wLength == 2) @@ -518,7 +518,7 @@ line level source 487 6 } 488 5 retVal = USB_STATUS_OK; 489 5 break; -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 9 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 9 490 5 #endif 491 5 #if SLAB_USB_EP2OUT_USED @@ -583,7 +583,7 @@ line level source 550 551 /***************************************************************************//** 552 * @brief Sets the Address -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 10 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 10 553 * @return Status of request (type @ref USB_Status_TypeDef) 554 * @note This function takes no parameters, but it uses the setup command @@ -648,7 +648,7 @@ line level source 613 2 // was sent, enter the Configured state. 614 2 if (myUsbDevice.state == USBD_STATE_ADDRESSED) 615 2 { -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 11 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 11 616 3 if ((myUsbDevice.setup.wValue == 0) 617 3 || (myUsbDevice.setup.wValue == myUsbDevice.configDescriptor->bConfigurationValue)) @@ -713,7 +713,7 @@ line level source } break; #endif // SLAB_USB_REMOTE_WAKEUP_ENABLED -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 12 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 12 679 3 case USB_SETUP_RECIPIENT_ENDPOINT: 680 3 // Device does not support halting endpoint 0, but do not return @@ -778,7 +778,7 @@ line level source break; #endif 741 5 } -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 13 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 13 742 4 } 743 3 } @@ -843,7 +843,7 @@ line level source 802 2 #endif 803 2 #if SLAB_USB_EP2IN_USED myUsbDevice.ep2in.state = D_EP_IDLE; -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 14 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 14 #endif 806 2 #if SLAB_USB_EP3IN_USED @@ -908,7 +908,7 @@ line level source 865 * @brief Sets up an Endpoint 0 Write 866 * @param dat 867 * Data to transmit on Endpoint 0 -C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/28/2016 20:17:26 PAGE 15 +C51 COMPILER V9.53.0.0 EFM8_USBDCH9 03/29/2016 00:06:40 PAGE 15 868 * @param numBytes 869 * Number of bytes to transmit on Endpoint 0 diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbdep.OBJ b/firmware/release/lib/efm8_usb/src/efm8_usbdep.OBJ index f827015..e2af48f 100644 Binary files a/firmware/release/lib/efm8_usb/src/efm8_usbdep.OBJ and b/firmware/release/lib/efm8_usb/src/efm8_usbdep.OBJ differ diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbdep.__i b/firmware/release/lib/efm8_usb/src/efm8_usbdep.__i index 3389d90..37ac866 100644 --- a/firmware/release/lib/efm8_usb/src/efm8_usbdep.__i +++ b/firmware/release/lib/efm8_usb/src/efm8_usbdep.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/lib/efm8_usb/src/efm8_usbdep.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbdep.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_usb/src/efm8_usbdep.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/lib/efm8_usb/src/efm8_usbdep.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbdep.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_usb/src/efm8_usbdep.OBJ) \ No newline at end of file diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbdep.lst b/firmware/release/lib/efm8_usb/src/efm8_usbdep.lst index 49bfbe6..f8d3aca 100644 --- a/firmware/release/lib/efm8_usb/src/efm8_usbdep.lst +++ b/firmware/release/lib/efm8_usb/src/efm8_usbdep.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 1 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE EFM8_USBDEP @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\lib/efm8_usb/src/efm8_usbdep.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/lib/efm8_usb/src/efm8_usbdep.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMI -ZE(9,SIZE) INTVECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmwar - -e/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/deve - -loper/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/ho - -me/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si805 - -1/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home - -/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/ef - -m8_usbdep.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\lib/efm8_usb/src/efm8_usbdep.OBJ) + -e/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051B + -ase;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si + -8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityS + -tudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si80 + -51/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbdep.lst) COND PAGEWIDTH(120) PAGELENG + -TH(65) OBJECT(.\lib/efm8_usb/src/efm8_usbdep.OBJ) line level source @@ -63,7 +63,7 @@ line level source 38 39 #else -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 2 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 2 // ------------------------------- // Generic FIFO access functions @@ -128,7 +128,7 @@ line level source uint8_t numBytesWrite; // USB_WriteFIFO() accepts a maximum of 255 bytes. If the number of bytes to -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 3 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 3 // send is greated than 255, call USB_WriteFIFO() multiple times. while (numBytes > 0) @@ -193,7 +193,7 @@ line level source 162 2 } 163 1 } 164 #endif // SLAB_USB_EP1IN_USED -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 4 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 4 165 166 #if SLAB_USB_EP2IN_USED @@ -258,7 +258,7 @@ line level source void handleUsbIn3Int(void) { #if SLAB_USB_EP3IN_TRANSFER_TYPE == USB_EPTYPE_ISOC -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 5 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 5 uint16_t xferred, nextIdx; #else @@ -323,7 +323,7 @@ line level source if (callback == true) { USBD_XferCompleteCb(EP3IN, USB_STATUS_OK, xferred, myUsbDevice.ep3in.remaining); -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 6 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 6 } #elif (SLAB_USB_EP3IN_TRANSFER_TYPE == USB_EPTYPE_ISOC) @@ -388,7 +388,7 @@ line level source 346 3 } 347 2 else 348 2 { -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 7 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 7 349 3 USB_ReadFIFO(1, count, myUsbDevice.ep1out.buf); 350 3 @@ -453,7 +453,7 @@ line level source status = USB_STATUS_EP_RX_BUFFER_OVERRUN; } else -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 8 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 8 { USB_ReadFIFO(2, count, myUsbDevice.ep2out.buf); @@ -518,7 +518,7 @@ line level source { count = USB_EpOutGetCount(); -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 9 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 9 // If USBD_Read() has not been called, return an error if (myUsbDevice.ep3out.state != D_EP_RECEIVING) @@ -583,7 +583,7 @@ line level source } #if ((SLAB_USB_EP3OUT_TRANSFER_TYPE == USB_EPTYPE_BULK) || (SLAB_USB_EP3OUT_TRANSFER_TYPE == USB_EPTYPE_I -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 10 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 10 -NTR)) USBD_XferCompleteCb(EP3OUT, status, count, myUsbDevice.ep3out.remaining); @@ -648,7 +648,7 @@ line level source 593 3 #endif 594 3 595 3 default: -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 11 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 11 596 3 break; 597 3 } @@ -713,7 +713,7 @@ line level source 656 2 #endif 657 2 658 2 case SI_GPTR_MTYPE_CODE: -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 12 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 12 659 2 USB_WriteFIFO_Code(numBytes, dat); 660 2 break; @@ -778,7 +778,7 @@ line level source 718 1 { 719 2 USB_SetFIFOByte(*dat); 720 2 dat++; -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 13 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 13 721 2 } 722 1 } @@ -843,7 +843,7 @@ line level source 779 1 } 780 781 /***************************************************************************//** -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 14 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 14 782 * @brief Writes data held in paged XRAM to the USB FIFO 783 * @details The FIFO to write must be set before calling the function with @@ -908,7 +908,7 @@ line level source 841 * @brief Writes data held in code space to the USB FIFO 842 * @details The FIFO to write must be set before calling the function with 843 * @ref USB_EnableWriteFIFO(). -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 15 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 15 844 * @param numBytes 845 * Number of bytes to write to the FIFO @@ -973,7 +973,7 @@ MODULE INFORMATION: STATIC OVERLAYABLE DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- 3 -C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/28/2016 20:17:26 PAGE 16 +C51 COMPILER V9.53.0.0 EFM8_USBDEP 03/29/2016 00:06:40 PAGE 16 EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbdint.OBJ b/firmware/release/lib/efm8_usb/src/efm8_usbdint.OBJ index 3837bbf..2fdbd62 100644 Binary files a/firmware/release/lib/efm8_usb/src/efm8_usbdint.OBJ and b/firmware/release/lib/efm8_usb/src/efm8_usbdint.OBJ differ diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbdint.__i b/firmware/release/lib/efm8_usb/src/efm8_usbdint.__i index 37656f6..aa46514 100644 --- a/firmware/release/lib/efm8_usb/src/efm8_usbdint.__i +++ b/firmware/release/lib/efm8_usb/src/efm8_usbdint.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/lib/efm8_usb/src/efm8_usbdint.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbdint.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_usb/src/efm8_usbdint.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/lib/efm8_usb/src/efm8_usbdint.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbdint.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8_usb/src/efm8_usbdint.OBJ) \ No newline at end of file diff --git a/firmware/release/lib/efm8_usb/src/efm8_usbdint.lst b/firmware/release/lib/efm8_usb/src/efm8_usbdint.lst index ee79672..c3a0d64 100644 --- a/firmware/release/lib/efm8_usb/src/efm8_usbdint.lst +++ b/firmware/release/lib/efm8_usb/src/efm8_usbdint.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 1 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE EFM8_USBDINT @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\lib/efm8_usb/src/efm8_usbdint.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/lib/efm8_usb/src/efm8_usbdint.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIM -IZE(9,SIZE) INTVECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmwa - -re/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/dev - -eloper/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/h - -ome/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si80 - -51/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/hom - -e/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/e - -fm8_usbdint.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\lib/efm8_usb/src/efm8_usbdint.OBJ) + -re/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051 + -Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/s + -i8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/Simplicity + -Studio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8 + -051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8_usb/src/efm8_usbdint.lst) COND PAGEWIDTH(120) PAGELE + -NGTH(65) OBJECT(.\lib/efm8_usb/src/efm8_usbdint.OBJ) line level source @@ -63,7 +63,7 @@ line level source void handleUsbOut3Int(void); #endif // SLAB_USB_EP3OUT_USED 48 -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 2 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 2 49 void SendEp0Stall(void); 50 @@ -128,7 +128,7 @@ line level source 106 2 { 107 3 USB_SetOut1IntActive(statusOut); 108 3 } -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 3 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 3 109 2 #endif 110 2 #if SLAB_USB_EP2OUT_USED @@ -193,7 +193,7 @@ line level source 166 1 167 1 #if SLAB_USB_EP2IN_USED if (USB_IsIn2IntActive(statusIn)) -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 4 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 4 { handleUsbIn2Int(); @@ -258,7 +258,7 @@ line level source 229 3 } 230 2 else if (myUsbDevice.ep0.state == D_EP_IDLE) 231 2 { -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 5 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 5 232 3 myUsbDevice.ep0String.c = USB_STRING_DESCRIPTOR_UTF16LE; 233 3 USB_ReadFIFOSetup(); @@ -323,7 +323,7 @@ line level source 292 1 ptr[2] = le16toh(ptr[2]); 293 1 ptr[3] = le16toh(ptr[3]); 294 1 } -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 6 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 6 295 296 /***************************************************************************//** @@ -388,7 +388,7 @@ line level source #endif // (!(SLAB_USB_PWRSAVE_MODE & USB_PWRSAVE_MODE_ONVBUSOFF)) 356 1 357 1 #if SLAB_USB_RESET_CB -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 7 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 7 358 1 // Make the USB Reset Callback 359 1 USBD_ResetCb(); @@ -453,7 +453,7 @@ line level source 418 3 USB_WriteFIFO(0, 2, myUsbDevice.ep0.buf, false); 419 3 myUsbDevice.ep0.buf += 2; 420 3 count -= 2; -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 8 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 8 421 3 myUsbDevice.ep0String.encoding.init = false; 422 3 } @@ -518,7 +518,7 @@ line level source 481 1 if (myUsbDevice.ep0.remaining < count) 482 1 { 483 2 myUsbDevice.ep0.state = D_EP_IDLE; -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 9 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 9 484 2 myUsbDevice.ep0.misc.bits.outPacketPending = true; 485 2 status = USB_STATUS_EP_RX_BUFFER_OVERRUN; @@ -583,7 +583,7 @@ MODULE INFORMATION: STATIC OVERLAYABLE EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- -C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/28/2016 20:17:26 PAGE 10 +C51 COMPILER V9.53.0.0 EFM8_USBDINT 03/29/2016 00:06:40 PAGE 10 FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION. diff --git a/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.OBJ b/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.OBJ index 9d3bdfd..69db826 100644 Binary files a/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.OBJ and b/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.OBJ differ diff --git a/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.__i b/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.__i index 057c82c..2246723 100644 --- a/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.__i +++ b/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/lib/efm8ub1/peripheralDrivers/src/usb_0.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8ub1/peripheralDrivers/src/usb_0.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8ub1/peripheralDrivers/src/usb_0.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/lib/efm8ub1/peripheralDrivers/src/usb_0.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\lib/efm8ub1/peripheralDrivers/src/usb_0.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\lib/efm8ub1/peripheralDrivers/src/usb_0.OBJ) \ No newline at end of file diff --git a/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.lst b/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.lst index e61e2b0..aebfb5c 100644 --- a/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.lst +++ b/firmware/release/lib/efm8ub1/peripheralDrivers/src/usb_0.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 USB_0 03/28/2016 20:17:26 PAGE 1 +C51 COMPILER V9.53.0.0 USB_0 03/29/2016 00:06:40 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE USB_0 @@ -6,13 +6,12 @@ OBJECT MODULE PLACED IN .\lib/efm8ub1/peripheralDrivers/src/usb_0.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/lib/efm8ub1/peripheralDrivers/src/usb_0.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZ -Y(3) OPTIMIZE(9,SIZE) INTVECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-z - -ero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStu - -dio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/ - -EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer - -/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_drive - -r/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8 - -ub1/peripheralDrivers/src/usb_0.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\lib/efm8ub1/peripheralDrivers/src/usb_0 - -.OBJ) + -ero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/sha + -red/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/develo + -per/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/ + -SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/develope + -r/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\lib/efm8ub1/peripheralDrivers/src/usb_0.lst) COND P + -AGEWIDTH(120) PAGELENGTH(65) OBJECT(.\lib/efm8ub1/peripheralDrivers/src/usb_0.OBJ) line level source @@ -63,9 +62,9 @@ line level source 45 uint8_t USB_GetCommonInts(void) 46 { 47 1 USB_READ_BYTE(CMINT); -C51 COMPILER V9.53.0.0 USB_0 03/28/2016 20:17:26 PAGE 2 - 48 1 return USB0DAT; +C51 COMPILER V9.53.0.0 USB_0 03/29/2016 00:06:40 PAGE 2 + 49 1 } 50 51 uint8_t USB_GetInInts(void) @@ -128,9 +127,9 @@ line level source 108 1 return (bool)(USB0DAT & EINCSRL_STSTL__SET); 109 1 } 110 -C51 COMPILER V9.53.0.0 USB_0 03/28/2016 20:17:26 PAGE 3 - 111 void USB_AbortInEp(uint8_t fifoNum) +C51 COMPILER V9.53.0.0 USB_0 03/29/2016 00:06:40 PAGE 3 + 112 { 113 1 USB_SetIndex(fifoNum); 114 1 USB_EpnInFlush(); @@ -193,9 +192,9 @@ line level source 171 2 if (splitMode == true) 172 2 { 173 3 CSRH_mask |= EINCSRH_SPLIT__ENABLED; -C51 COMPILER V9.53.0.0 USB_0 03/28/2016 20:17:26 PAGE 4 - 174 3 } +C51 COMPILER V9.53.0.0 USB_0 03/29/2016 00:06:40 PAGE 4 + 175 2 USB_WRITE_BYTE(EINCSRL, EINCSRL_CLRDT__BMASK); 176 2 USB_WRITE_BYTE(EINCSRH, CSRH_mask); 177 2 } @@ -258,9 +257,9 @@ line level source MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 511 ---- -C51 COMPILER V9.53.0.0 USB_0 03/28/2016 20:17:26 PAGE 5 - CONSTANT SIZE = ---- ---- +C51 COMPILER V9.53.0.0 USB_0 03/29/2016 00:06:40 PAGE 5 + XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- diff --git a/firmware/release/src/InitDevice.OBJ b/firmware/release/src/InitDevice.OBJ index 2a0dce9..67d42a2 100644 Binary files a/firmware/release/src/InitDevice.OBJ and b/firmware/release/src/InitDevice.OBJ differ diff --git a/firmware/release/src/InitDevice.__i b/firmware/release/src/InitDevice.__i index 8a57d6f..0eb7989 100644 --- a/firmware/release/src/InitDevice.__i +++ b/firmware/release/src/InitDevice.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/InitDevice.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/InitDevice.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/InitDevice.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/InitDevice.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/InitDevice.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/InitDevice.OBJ) \ No newline at end of file diff --git a/firmware/release/src/InitDevice.lst b/firmware/release/src/InitDevice.lst index 18e277d..68b1b7c 100644 --- a/firmware/release/src/InitDevice.lst +++ b/firmware/release/src/InitDevice.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 1 +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE INITDEVICE @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\src/InitDevice.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/InitDevice.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INT -VECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp - -/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8 - -051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/Simplici - -tyStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8 - -_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/Simplicity - -Studio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/InitDevice.lst) COND PAGEWIDT - -H(120) PAGELENGTH(65) OBJECT(.\src/InitDevice.OBJ) + -/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/S + -implicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Devic + -e/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/devel + -oper/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm + -8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/InitDevice.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/InitDevi + -ce.OBJ) line level source @@ -54,779 +54,974 @@ line level source 37 1 TIMER16_2_enter_DefaultMode_from_RESET(); 38 1 TIMER16_3_enter_DefaultMode_from_RESET(); 39 1 TIMER_SETUP_0_enter_DefaultMode_from_RESET(); - 40 1 SMBUS_0_enter_DefaultMode_from_RESET(); - 41 1 UART_0_enter_DefaultMode_from_RESET(); - 42 1 INTERRUPT_0_enter_DefaultMode_from_RESET(); - 43 1 USBLIB_0_enter_DefaultMode_from_RESET(); - 44 1 // Restore the SFRPAGE - 45 1 SFRPAGE = SFRPAGE_save; - 46 1 // [Config Calls]$ - 47 1 - 48 1 } -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 2 + 40 1 PCA_0_enter_DefaultMode_from_RESET(); + 41 1 PCACH_0_enter_DefaultMode_from_RESET(); + 42 1 PCACH_1_enter_DefaultMode_from_RESET(); + 43 1 PCACH_2_enter_DefaultMode_from_RESET(); + 44 1 SMBUS_0_enter_DefaultMode_from_RESET(); + 45 1 UART_0_enter_DefaultMode_from_RESET(); + 46 1 INTERRUPT_0_enter_DefaultMode_from_RESET(); + 47 1 USBLIB_0_enter_DefaultMode_from_RESET(); + 48 1 // Restore the SFRPAGE +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 2 - 49 - 50 //================================================================================ - 51 // WDT_0_enter_DefaultMode_from_RESET - 52 //================================================================================ - 53 extern void WDT_0_enter_DefaultMode_from_RESET(void) { - 54 1 // $[WDTCN - Watchdog Timer Control] - 55 1 SFRPAGE = 0x00; - 56 1 //Disable Watchdog with key sequence - 57 1 WDTCN = 0xDE; //First key - 58 1 WDTCN = 0xAD; //Second key - 59 1 // [WDTCN - Watchdog Timer Control]$ - 60 1 - 61 1 } - 62 - 63 //================================================================================ - 64 // VREG_0_enter_DefaultMode_from_RESET - 65 //================================================================================ - 66 extern void VREG_0_enter_DefaultMode_from_RESET(void) { - 67 1 // $[REG0CN - Voltage Regulator 0 Control] - 68 1 // [REG0CN - Voltage Regulator 0 Control]$ - 69 1 - 70 1 // $[REG1CN - Voltage Regulator 1 Control] - 71 1 /* - 72 1 // REG1ENB (Voltage Regulator 1 Disable) = ENABLED (Regulator is - 73 1 // enabled.) - 74 1 // BIASENB (Regulator Bias Disable) = DISABLED (Regulator bias is - 75 1 // disabled.) - 76 1 // SUSEN (Voltage Regulator 1 Suspend Enable) = NORMAL (The 5V regulator - 77 1 // is in normal power mode. Normal mode is the highest performance mode - 78 1 // for the regulator.) - 79 1 */ - 80 1 SFRPAGE = 0x20; - 81 1 REG1CN = REG1CN_REG1ENB__ENABLED | REG1CN_BIASENB__DISABLED - 82 1 | REG1CN_SUSEN__NORMAL; - 83 1 // [REG1CN - Voltage Regulator 1 Control]$ - 84 1 - 85 1 } - 86 - 87 //================================================================================ - 88 // PORTS_0_enter_DefaultMode_from_RESET - 89 //================================================================================ - 90 extern void PORTS_0_enter_DefaultMode_from_RESET(void) { - 91 1 // $[P0 - Port 0 Pin Latch] - 92 1 /* - 93 1 // B0 (Port 0 Bit 0 Latch) = HIGH (P0.0 is high. Set P0.0 to drive or - 94 1 // float high.) - 95 1 // B1 (Port 0 Bit 1 Latch) = HIGH (P0.1 is high. Set P0.1 to drive or - 96 1 // float high.) - 97 1 // B2 (Port 0 Bit 2 Latch) = HIGH (P0.2 is high. Set P0.2 to drive or + 49 1 SFRPAGE = SFRPAGE_save; + 50 1 // [Config Calls]$ + 51 1 + 52 1 } + 53 + 54 //================================================================================ + 55 // WDT_0_enter_DefaultMode_from_RESET + 56 //================================================================================ + 57 extern void WDT_0_enter_DefaultMode_from_RESET(void) { + 58 1 // $[WDTCN - Watchdog Timer Control] + 59 1 SFRPAGE = 0x00; + 60 1 //Disable Watchdog with key sequence + 61 1 WDTCN = 0xDE; //First key + 62 1 WDTCN = 0xAD; //Second key + 63 1 // [WDTCN - Watchdog Timer Control]$ + 64 1 + 65 1 } + 66 + 67 //================================================================================ + 68 // VREG_0_enter_DefaultMode_from_RESET + 69 //================================================================================ + 70 extern void VREG_0_enter_DefaultMode_from_RESET(void) { + 71 1 // $[REG0CN - Voltage Regulator 0 Control] + 72 1 // [REG0CN - Voltage Regulator 0 Control]$ + 73 1 + 74 1 // $[REG1CN - Voltage Regulator 1 Control] + 75 1 /* + 76 1 // REG1ENB (Voltage Regulator 1 Disable) = ENABLED (Regulator is + 77 1 // enabled.) + 78 1 // BIASENB (Regulator Bias Disable) = DISABLED (Regulator bias is + 79 1 // disabled.) + 80 1 // SUSEN (Voltage Regulator 1 Suspend Enable) = NORMAL (The 5V regulator + 81 1 // is in normal power mode. Normal mode is the highest performance mode + 82 1 // for the regulator.) + 83 1 */ + 84 1 SFRPAGE = 0x20; + 85 1 REG1CN = REG1CN_REG1ENB__ENABLED | REG1CN_BIASENB__DISABLED + 86 1 | REG1CN_SUSEN__NORMAL; + 87 1 // [REG1CN - Voltage Regulator 1 Control]$ + 88 1 + 89 1 } + 90 + 91 //================================================================================ + 92 // PORTS_0_enter_DefaultMode_from_RESET + 93 //================================================================================ + 94 extern void PORTS_0_enter_DefaultMode_from_RESET(void) { + 95 1 // $[P0 - Port 0 Pin Latch] + 96 1 /* + 97 1 // B0 (Port 0 Bit 0 Latch) = HIGH (P0.0 is high. Set P0.0 to drive or 98 1 // float high.) - 99 1 // B3 (Port 0 Bit 3 Latch) = HIGH (P0.3 is high. Set P0.3 to drive or + 99 1 // B1 (Port 0 Bit 1 Latch) = HIGH (P0.1 is high. Set P0.1 to drive or 100 1 // float high.) - 101 1 // B4 (Port 0 Bit 4 Latch) = HIGH (P0.4 is high. Set P0.4 to drive or + 101 1 // B2 (Port 0 Bit 2 Latch) = HIGH (P0.2 is high. Set P0.2 to drive or 102 1 // float high.) - 103 1 // B5 (Port 0 Bit 5 Latch) = HIGH (P0.5 is high. Set P0.5 to drive or + 103 1 // B3 (Port 0 Bit 3 Latch) = HIGH (P0.3 is high. Set P0.3 to drive or 104 1 // float high.) - 105 1 // B6 (Port 0 Bit 6 Latch) = HIGH (P0.6 is high. Set P0.6 to drive or + 105 1 // B4 (Port 0 Bit 4 Latch) = HIGH (P0.4 is high. Set P0.4 to drive or 106 1 // float high.) - 107 1 // B7 (Port 0 Bit 7 Latch) = HIGH (P0.7 is high. Set P0.7 to drive or + 107 1 // B5 (Port 0 Bit 5 Latch) = HIGH (P0.5 is high. Set P0.5 to drive or 108 1 // float high.) - 109 1 */ - 110 1 SFRPAGE = 0x00; - 111 1 P0 = P0_B0__HIGH | P0_B1__HIGH | P0_B2__HIGH | P0_B3__HIGH | P0_B4__HIGH -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 3 + 109 1 // B6 (Port 0 Bit 6 Latch) = HIGH (P0.6 is high. Set P0.6 to drive or + 110 1 // float high.) + 111 1 // B7 (Port 0 Bit 7 Latch) = HIGH (P0.7 is high. Set P0.7 to drive or +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 3 - 112 1 | P0_B5__HIGH | P0_B6__HIGH | P0_B7__HIGH; - 113 1 // [P0 - Port 0 Pin Latch]$ - 114 1 - 115 1 // $[P0MDOUT - Port 0 Output Mode] - 116 1 /* - 117 1 // B0 (Port 0 Bit 0 Output Mode) = OPEN_DRAIN (P0.0 output is open- - 118 1 // drain.) - 119 1 // B1 (Port 0 Bit 1 Output Mode) = OPEN_DRAIN (P0.1 output is open- - 120 1 // drain.) - 121 1 // B2 (Port 0 Bit 2 Output Mode) = PUSH_PULL (P0.2 output is push-pull.) - 122 1 // B3 (Port 0 Bit 3 Output Mode) = PUSH_PULL (P0.3 output is push-pull.) - 123 1 // B4 (Port 0 Bit 4 Output Mode) = PUSH_PULL (P0.4 output is push-pull.) - 124 1 // B5 (Port 0 Bit 5 Output Mode) = OPEN_DRAIN (P0.5 output is open- - 125 1 // drain.) - 126 1 // B6 (Port 0 Bit 6 Output Mode) = PUSH_PULL (P0.6 output is push-pull.) - 127 1 // B7 (Port 0 Bit 7 Output Mode) = PUSH_PULL (P0.7 output is push-pull.) - 128 1 */ - 129 1 P0MDOUT = P0MDOUT_B0__OPEN_DRAIN | P0MDOUT_B1__OPEN_DRAIN - 130 1 | P0MDOUT_B2__PUSH_PULL | P0MDOUT_B3__PUSH_PULL - 131 1 | P0MDOUT_B4__PUSH_PULL | P0MDOUT_B5__OPEN_DRAIN - 132 1 | P0MDOUT_B6__PUSH_PULL | P0MDOUT_B7__PUSH_PULL; - 133 1 // [P0MDOUT - Port 0 Output Mode]$ - 134 1 - 135 1 // $[P0MDIN - Port 0 Input Mode] - 136 1 /* - 137 1 // B0 (Port 0 Bit 0 Input Mode) = DIGITAL (P0.0 pin is configured for - 138 1 // digital mode.) - 139 1 // B1 (Port 0 Bit 1 Input Mode) = DIGITAL (P0.1 pin is configured for - 140 1 // digital mode.) - 141 1 // B2 (Port 0 Bit 2 Input Mode) = DIGITAL (P0.2 pin is configured for + 112 1 // float high.) + 113 1 */ + 114 1 SFRPAGE = 0x00; + 115 1 P0 = P0_B0__HIGH | P0_B1__HIGH | P0_B2__HIGH | P0_B3__HIGH | P0_B4__HIGH + 116 1 | P0_B5__HIGH | P0_B6__HIGH | P0_B7__HIGH; + 117 1 // [P0 - Port 0 Pin Latch]$ + 118 1 + 119 1 // $[P0MDOUT - Port 0 Output Mode] + 120 1 /* + 121 1 // B0 (Port 0 Bit 0 Output Mode) = OPEN_DRAIN (P0.0 output is open- + 122 1 // drain.) + 123 1 // B1 (Port 0 Bit 1 Output Mode) = OPEN_DRAIN (P0.1 output is open- + 124 1 // drain.) + 125 1 // B2 (Port 0 Bit 2 Output Mode) = PUSH_PULL (P0.2 output is push-pull.) + 126 1 // B3 (Port 0 Bit 3 Output Mode) = PUSH_PULL (P0.3 output is push-pull.) + 127 1 // B4 (Port 0 Bit 4 Output Mode) = PUSH_PULL (P0.4 output is push-pull.) + 128 1 // B5 (Port 0 Bit 5 Output Mode) = OPEN_DRAIN (P0.5 output is open- + 129 1 // drain.) + 130 1 // B6 (Port 0 Bit 6 Output Mode) = PUSH_PULL (P0.6 output is push-pull.) + 131 1 // B7 (Port 0 Bit 7 Output Mode) = PUSH_PULL (P0.7 output is push-pull.) + 132 1 */ + 133 1 P0MDOUT = P0MDOUT_B0__OPEN_DRAIN | P0MDOUT_B1__OPEN_DRAIN + 134 1 | P0MDOUT_B2__PUSH_PULL | P0MDOUT_B3__PUSH_PULL + 135 1 | P0MDOUT_B4__PUSH_PULL | P0MDOUT_B5__OPEN_DRAIN + 136 1 | P0MDOUT_B6__PUSH_PULL | P0MDOUT_B7__PUSH_PULL; + 137 1 // [P0MDOUT - Port 0 Output Mode]$ + 138 1 + 139 1 // $[P0MDIN - Port 0 Input Mode] + 140 1 /* + 141 1 // B0 (Port 0 Bit 0 Input Mode) = DIGITAL (P0.0 pin is configured for 142 1 // digital mode.) - 143 1 // B3 (Port 0 Bit 3 Input Mode) = DIGITAL (P0.3 pin is configured for + 143 1 // B1 (Port 0 Bit 1 Input Mode) = DIGITAL (P0.1 pin is configured for 144 1 // digital mode.) - 145 1 // B4 (Port 0 Bit 4 Input Mode) = DIGITAL (P0.4 pin is configured for + 145 1 // B2 (Port 0 Bit 2 Input Mode) = DIGITAL (P0.2 pin is configured for 146 1 // digital mode.) - 147 1 // B5 (Port 0 Bit 5 Input Mode) = DIGITAL (P0.5 pin is configured for + 147 1 // B3 (Port 0 Bit 3 Input Mode) = DIGITAL (P0.3 pin is configured for 148 1 // digital mode.) - 149 1 // B6 (Port 0 Bit 6 Input Mode) = DIGITAL (P0.6 pin is configured for + 149 1 // B4 (Port 0 Bit 4 Input Mode) = DIGITAL (P0.4 pin is configured for 150 1 // digital mode.) - 151 1 // B7 (Port 0 Bit 7 Input Mode) = DIGITAL (P0.7 pin is configured for + 151 1 // B5 (Port 0 Bit 5 Input Mode) = DIGITAL (P0.5 pin is configured for 152 1 // digital mode.) - 153 1 */ - 154 1 P0MDIN = P0MDIN_B0__DIGITAL | P0MDIN_B1__DIGITAL | P0MDIN_B2__DIGITAL - 155 1 | P0MDIN_B3__DIGITAL | P0MDIN_B4__DIGITAL | P0MDIN_B5__DIGITAL - 156 1 | P0MDIN_B6__DIGITAL | P0MDIN_B7__DIGITAL; - 157 1 // [P0MDIN - Port 0 Input Mode]$ - 158 1 - 159 1 // $[P0SKIP - Port 0 Skip] - 160 1 /* - 161 1 // B0 (Port 0 Bit 0 Skip) = NOT_SKIPPED (P0.0 pin is not skipped by the - 162 1 // crossbar.) - 163 1 // B1 (Port 0 Bit 1 Skip) = NOT_SKIPPED (P0.1 pin is not skipped by the - 164 1 // crossbar.) - 165 1 // B2 (Port 0 Bit 2 Skip) = NOT_SKIPPED (P0.2 pin is not skipped by the + 153 1 // B6 (Port 0 Bit 6 Input Mode) = DIGITAL (P0.6 pin is configured for + 154 1 // digital mode.) + 155 1 // B7 (Port 0 Bit 7 Input Mode) = DIGITAL (P0.7 pin is configured for + 156 1 // digital mode.) + 157 1 */ + 158 1 P0MDIN = P0MDIN_B0__DIGITAL | P0MDIN_B1__DIGITAL | P0MDIN_B2__DIGITAL + 159 1 | P0MDIN_B3__DIGITAL | P0MDIN_B4__DIGITAL | P0MDIN_B5__DIGITAL + 160 1 | P0MDIN_B6__DIGITAL | P0MDIN_B7__DIGITAL; + 161 1 // [P0MDIN - Port 0 Input Mode]$ + 162 1 + 163 1 // $[P0SKIP - Port 0 Skip] + 164 1 /* + 165 1 // B0 (Port 0 Bit 0 Skip) = NOT_SKIPPED (P0.0 pin is not skipped by the 166 1 // crossbar.) - 167 1 // B3 (Port 0 Bit 3 Skip) = NOT_SKIPPED (P0.3 pin is not skipped by the + 167 1 // B1 (Port 0 Bit 1 Skip) = NOT_SKIPPED (P0.1 pin is not skipped by the 168 1 // crossbar.) - 169 1 // B4 (Port 0 Bit 4 Skip) = NOT_SKIPPED (P0.4 pin is not skipped by the + 169 1 // B2 (Port 0 Bit 2 Skip) = SKIPPED (P0.2 pin is skipped by the 170 1 // crossbar.) - 171 1 // B5 (Port 0 Bit 5 Skip) = NOT_SKIPPED (P0.5 pin is not skipped by the + 171 1 // B3 (Port 0 Bit 3 Skip) = SKIPPED (P0.3 pin is skipped by the 172 1 // crossbar.) - 173 1 // B6 (Port 0 Bit 6 Skip) = NOT_SKIPPED (P0.6 pin is not skipped by the + 173 1 // B4 (Port 0 Bit 4 Skip) = NOT_SKIPPED (P0.4 pin is not skipped by the 174 1 // crossbar.) -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 4 +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 4 - 175 1 // B7 (Port 0 Bit 7 Skip) = NOT_SKIPPED (P0.7 pin is not skipped by the + 175 1 // B5 (Port 0 Bit 5 Skip) = NOT_SKIPPED (P0.5 pin is not skipped by the 176 1 // crossbar.) - 177 1 */ - 178 1 P0SKIP = P0SKIP_B0__NOT_SKIPPED | P0SKIP_B1__NOT_SKIPPED - 179 1 | P0SKIP_B2__NOT_SKIPPED | P0SKIP_B3__NOT_SKIPPED - 180 1 | P0SKIP_B4__NOT_SKIPPED | P0SKIP_B5__NOT_SKIPPED - 181 1 | P0SKIP_B6__NOT_SKIPPED | P0SKIP_B7__NOT_SKIPPED; - 182 1 // [P0SKIP - Port 0 Skip]$ - 183 1 - 184 1 // $[P0MASK - Port 0 Mask] - 185 1 /* - 186 1 // B0 (Port 0 Bit 0 Mask Value) = IGNORED (P0.0 pin logic value is - 187 1 // ignored and will not cause a port mismatch event.) - 188 1 // B1 (Port 0 Bit 1 Mask Value) = IGNORED (P0.1 pin logic value is - 189 1 // ignored and will not cause a port mismatch event.) - 190 1 // B2 (Port 0 Bit 2 Mask Value) = IGNORED (P0.2 pin logic value is + 177 1 // B6 (Port 0 Bit 6 Skip) = NOT_SKIPPED (P0.6 pin is not skipped by the + 178 1 // crossbar.) + 179 1 // B7 (Port 0 Bit 7 Skip) = NOT_SKIPPED (P0.7 pin is not skipped by the + 180 1 // crossbar.) + 181 1 */ + 182 1 P0SKIP = P0SKIP_B0__NOT_SKIPPED | P0SKIP_B1__NOT_SKIPPED + 183 1 | P0SKIP_B2__SKIPPED | P0SKIP_B3__SKIPPED | P0SKIP_B4__NOT_SKIPPED + 184 1 | P0SKIP_B5__NOT_SKIPPED | P0SKIP_B6__NOT_SKIPPED + 185 1 | P0SKIP_B7__NOT_SKIPPED; + 186 1 // [P0SKIP - Port 0 Skip]$ + 187 1 + 188 1 // $[P0MASK - Port 0 Mask] + 189 1 /* + 190 1 // B0 (Port 0 Bit 0 Mask Value) = IGNORED (P0.0 pin logic value is 191 1 // ignored and will not cause a port mismatch event.) - 192 1 // B3 (Port 0 Bit 3 Mask Value) = IGNORED (P0.3 pin logic value is + 192 1 // B1 (Port 0 Bit 1 Mask Value) = IGNORED (P0.1 pin logic value is 193 1 // ignored and will not cause a port mismatch event.) - 194 1 // B4 (Port 0 Bit 4 Mask Value) = IGNORED (P0.4 pin logic value is + 194 1 // B2 (Port 0 Bit 2 Mask Value) = IGNORED (P0.2 pin logic value is 195 1 // ignored and will not cause a port mismatch event.) - 196 1 // B5 (Port 0 Bit 5 Mask Value) = IGNORED (P0.5 pin logic value is + 196 1 // B3 (Port 0 Bit 3 Mask Value) = IGNORED (P0.3 pin logic value is 197 1 // ignored and will not cause a port mismatch event.) - 198 1 // B6 (Port 0 Bit 6 Mask Value) = IGNORED (P0.6 pin logic value is + 198 1 // B4 (Port 0 Bit 4 Mask Value) = IGNORED (P0.4 pin logic value is 199 1 // ignored and will not cause a port mismatch event.) - 200 1 // B7 (Port 0 Bit 7 Mask Value) = IGNORED (P0.7 pin logic value is + 200 1 // B5 (Port 0 Bit 5 Mask Value) = IGNORED (P0.5 pin logic value is 201 1 // ignored and will not cause a port mismatch event.) - 202 1 */ - 203 1 P0MASK = P0MASK_B0__IGNORED | P0MASK_B1__IGNORED | P0MASK_B2__IGNORED - 204 1 | P0MASK_B3__IGNORED | P0MASK_B4__IGNORED | P0MASK_B5__IGNORED - 205 1 | P0MASK_B6__IGNORED | P0MASK_B7__IGNORED; - 206 1 // [P0MASK - Port 0 Mask]$ - 207 1 - 208 1 // $[P0MAT - Port 0 Match] - 209 1 /* - 210 1 // B0 (Port 0 Bit 0 Match Value) = HIGH (P0.0 pin logic value is compared - 211 1 // with logic HIGH.) - 212 1 // B1 (Port 0 Bit 1 Match Value) = HIGH (P0.1 pin logic value is compared - 213 1 // with logic HIGH.) - 214 1 // B2 (Port 0 Bit 2 Match Value) = HIGH (P0.2 pin logic value is compared + 202 1 // B6 (Port 0 Bit 6 Mask Value) = IGNORED (P0.6 pin logic value is + 203 1 // ignored and will not cause a port mismatch event.) + 204 1 // B7 (Port 0 Bit 7 Mask Value) = IGNORED (P0.7 pin logic value is + 205 1 // ignored and will not cause a port mismatch event.) + 206 1 */ + 207 1 P0MASK = P0MASK_B0__IGNORED | P0MASK_B1__IGNORED | P0MASK_B2__IGNORED + 208 1 | P0MASK_B3__IGNORED | P0MASK_B4__IGNORED | P0MASK_B5__IGNORED + 209 1 | P0MASK_B6__IGNORED | P0MASK_B7__IGNORED; + 210 1 // [P0MASK - Port 0 Mask]$ + 211 1 + 212 1 // $[P0MAT - Port 0 Match] + 213 1 /* + 214 1 // B0 (Port 0 Bit 0 Match Value) = HIGH (P0.0 pin logic value is compared 215 1 // with logic HIGH.) - 216 1 // B3 (Port 0 Bit 3 Match Value) = HIGH (P0.3 pin logic value is compared + 216 1 // B1 (Port 0 Bit 1 Match Value) = HIGH (P0.1 pin logic value is compared 217 1 // with logic HIGH.) - 218 1 // B4 (Port 0 Bit 4 Match Value) = HIGH (P0.4 pin logic value is compared + 218 1 // B2 (Port 0 Bit 2 Match Value) = HIGH (P0.2 pin logic value is compared 219 1 // with logic HIGH.) - 220 1 // B5 (Port 0 Bit 5 Match Value) = HIGH (P0.5 pin logic value is compared + 220 1 // B3 (Port 0 Bit 3 Match Value) = HIGH (P0.3 pin logic value is compared 221 1 // with logic HIGH.) - 222 1 // B6 (Port 0 Bit 6 Match Value) = HIGH (P0.6 pin logic value is compared + 222 1 // B4 (Port 0 Bit 4 Match Value) = HIGH (P0.4 pin logic value is compared 223 1 // with logic HIGH.) - 224 1 // B7 (Port 0 Bit 7 Match Value) = HIGH (P0.7 pin logic value is compared + 224 1 // B5 (Port 0 Bit 5 Match Value) = HIGH (P0.5 pin logic value is compared 225 1 // with logic HIGH.) - 226 1 */ - 227 1 P0MAT = P0MAT_B0__HIGH | P0MAT_B1__HIGH | P0MAT_B2__HIGH | P0MAT_B3__HIGH - 228 1 | P0MAT_B4__HIGH | P0MAT_B5__HIGH | P0MAT_B6__HIGH | P0MAT_B7__HIGH; - 229 1 // [P0MAT - Port 0 Match]$ - 230 1 - 231 1 } - 232 - 233 //================================================================================ - 234 // PORTS_1_enter_DefaultMode_from_RESET - 235 //================================================================================ - 236 extern void PORTS_1_enter_DefaultMode_from_RESET(void) { - 237 1 // $[P1 - Port 1 Pin Latch] -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 5 + 226 1 // B6 (Port 0 Bit 6 Match Value) = HIGH (P0.6 pin logic value is compared + 227 1 // with logic HIGH.) + 228 1 // B7 (Port 0 Bit 7 Match Value) = HIGH (P0.7 pin logic value is compared + 229 1 // with logic HIGH.) + 230 1 */ + 231 1 P0MAT = P0MAT_B0__HIGH | P0MAT_B1__HIGH | P0MAT_B2__HIGH | P0MAT_B3__HIGH + 232 1 | P0MAT_B4__HIGH | P0MAT_B5__HIGH | P0MAT_B6__HIGH | P0MAT_B7__HIGH; + 233 1 // [P0MAT - Port 0 Match]$ + 234 1 + 235 1 } + 236 + 237 //================================================================================ +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 5 - 238 1 /* - 239 1 // B0 (Port 1 Bit 0 Latch) = HIGH (P1.0 is high. Set P1.0 to drive or - 240 1 // float high.) - 241 1 // B1 (Port 1 Bit 1 Latch) = HIGH (P1.1 is high. Set P1.1 to drive or - 242 1 // float high.) - 243 1 // B2 (Port 1 Bit 2 Latch) = HIGH (P1.2 is high. Set P1.2 to drive or + 238 // PORTS_1_enter_DefaultMode_from_RESET + 239 //================================================================================ + 240 extern void PORTS_1_enter_DefaultMode_from_RESET(void) { + 241 1 // $[P1 - Port 1 Pin Latch] + 242 1 /* + 243 1 // B0 (Port 1 Bit 0 Latch) = HIGH (P1.0 is high. Set P1.0 to drive or 244 1 // float high.) - 245 1 */ - 246 1 P1 = P1_B0__HIGH | P1_B1__HIGH | P1_B2__HIGH; - 247 1 // [P1 - Port 1 Pin Latch]$ - 248 1 - 249 1 // $[P1MDOUT - Port 1 Output Mode] - 250 1 /* - 251 1 // B0 (Port 1 Bit 0 Output Mode) = PUSH_PULL (P1.0 output is push-pull.) - 252 1 // B1 (Port 1 Bit 1 Output Mode) = OPEN_DRAIN (P1.1 output is open- - 253 1 // drain.) - 254 1 // B2 (Port 1 Bit 2 Output Mode) = OPEN_DRAIN (P1.2 output is open- - 255 1 // drain.) - 256 1 */ - 257 1 P1MDOUT = P1MDOUT_B0__PUSH_PULL | P1MDOUT_B1__OPEN_DRAIN - 258 1 | P1MDOUT_B2__OPEN_DRAIN; - 259 1 // [P1MDOUT - Port 1 Output Mode]$ - 260 1 - 261 1 // $[P1MDIN - Port 1 Input Mode] - 262 1 /* - 263 1 // B0 (Port 1 Bit 0 Input Mode) = DIGITAL (P1.0 pin is configured for - 264 1 // digital mode.) - 265 1 // B1 (Port 1 Bit 1 Input Mode) = DIGITAL (P1.1 pin is configured for - 266 1 // digital mode.) - 267 1 // B2 (Port 1 Bit 2 Input Mode) = DIGITAL (P1.2 pin is configured for + 245 1 // B1 (Port 1 Bit 1 Latch) = HIGH (P1.1 is high. Set P1.1 to drive or + 246 1 // float high.) + 247 1 // B2 (Port 1 Bit 2 Latch) = HIGH (P1.2 is high. Set P1.2 to drive or + 248 1 // float high.) + 249 1 */ + 250 1 P1 = P1_B0__HIGH | P1_B1__HIGH | P1_B2__HIGH; + 251 1 // [P1 - Port 1 Pin Latch]$ + 252 1 + 253 1 // $[P1MDOUT - Port 1 Output Mode] + 254 1 /* + 255 1 // B0 (Port 1 Bit 0 Output Mode) = PUSH_PULL (P1.0 output is push-pull.) + 256 1 // B1 (Port 1 Bit 1 Output Mode) = OPEN_DRAIN (P1.1 output is open- + 257 1 // drain.) + 258 1 // B2 (Port 1 Bit 2 Output Mode) = OPEN_DRAIN (P1.2 output is open- + 259 1 // drain.) + 260 1 */ + 261 1 P1MDOUT = P1MDOUT_B0__PUSH_PULL | P1MDOUT_B1__OPEN_DRAIN + 262 1 | P1MDOUT_B2__OPEN_DRAIN; + 263 1 // [P1MDOUT - Port 1 Output Mode]$ + 264 1 + 265 1 // $[P1MDIN - Port 1 Input Mode] + 266 1 /* + 267 1 // B0 (Port 1 Bit 0 Input Mode) = DIGITAL (P1.0 pin is configured for 268 1 // digital mode.) - 269 1 */ - 270 1 P1MDIN = P1MDIN_B0__DIGITAL | P1MDIN_B1__DIGITAL | P1MDIN_B2__DIGITAL; - 271 1 // [P1MDIN - Port 1 Input Mode]$ - 272 1 - 273 1 // $[P1SKIP - Port 1 Skip] - 274 1 /* - 275 1 // B0 (Port 1 Bit 0 Skip) = NOT_SKIPPED (P1.0 pin is not skipped by the - 276 1 // crossbar.) - 277 1 // B1 (Port 1 Bit 1 Skip) = NOT_SKIPPED (P1.1 pin is not skipped by the - 278 1 // crossbar.) - 279 1 // B2 (Port 1 Bit 2 Skip) = NOT_SKIPPED (P1.2 pin is not skipped by the + 269 1 // B1 (Port 1 Bit 1 Input Mode) = DIGITAL (P1.1 pin is configured for + 270 1 // digital mode.) + 271 1 // B2 (Port 1 Bit 2 Input Mode) = DIGITAL (P1.2 pin is configured for + 272 1 // digital mode.) + 273 1 */ + 274 1 P1MDIN = P1MDIN_B0__DIGITAL | P1MDIN_B1__DIGITAL | P1MDIN_B2__DIGITAL; + 275 1 // [P1MDIN - Port 1 Input Mode]$ + 276 1 + 277 1 // $[P1SKIP - Port 1 Skip] + 278 1 /* + 279 1 // B0 (Port 1 Bit 0 Skip) = NOT_SKIPPED (P1.0 pin is not skipped by the 280 1 // crossbar.) - 281 1 */ - 282 1 P1SKIP = P1SKIP_B0__NOT_SKIPPED | P1SKIP_B1__NOT_SKIPPED - 283 1 | P1SKIP_B2__NOT_SKIPPED; - 284 1 // [P1SKIP - Port 1 Skip]$ - 285 1 - 286 1 // $[P1MASK - Port 1 Mask] - 287 1 /* - 288 1 // B0 (Port 1 Bit 0 Mask Value) = IGNORED (P1.0 pin logic value is - 289 1 // ignored and will not cause a port mismatch event.) - 290 1 // B1 (Port 1 Bit 1 Mask Value) = IGNORED (P1.1 pin logic value is - 291 1 // ignored and will not cause a port mismatch event.) - 292 1 // B2 (Port 1 Bit 2 Mask Value) = IGNORED (P1.2 pin logic value is + 281 1 // B1 (Port 1 Bit 1 Skip) = NOT_SKIPPED (P1.1 pin is not skipped by the + 282 1 // crossbar.) + 283 1 // B2 (Port 1 Bit 2 Skip) = NOT_SKIPPED (P1.2 pin is not skipped by the + 284 1 // crossbar.) + 285 1 */ + 286 1 P1SKIP = P1SKIP_B0__NOT_SKIPPED | P1SKIP_B1__NOT_SKIPPED + 287 1 | P1SKIP_B2__NOT_SKIPPED; + 288 1 // [P1SKIP - Port 1 Skip]$ + 289 1 + 290 1 // $[P1MASK - Port 1 Mask] + 291 1 /* + 292 1 // B0 (Port 1 Bit 0 Mask Value) = IGNORED (P1.0 pin logic value is 293 1 // ignored and will not cause a port mismatch event.) - 294 1 */ - 295 1 P1MASK = P1MASK_B0__IGNORED | P1MASK_B1__IGNORED | P1MASK_B2__IGNORED; - 296 1 // [P1MASK - Port 1 Mask]$ - 297 1 - 298 1 // $[P1MAT - Port 1 Match] - 299 1 /* - 300 1 // B0 (Port 1 Bit 0 Match Value) = HIGH (P1.0 pin logic value is compared -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 6 + 294 1 // B1 (Port 1 Bit 1 Mask Value) = IGNORED (P1.1 pin logic value is + 295 1 // ignored and will not cause a port mismatch event.) + 296 1 // B2 (Port 1 Bit 2 Mask Value) = IGNORED (P1.2 pin logic value is + 297 1 // ignored and will not cause a port mismatch event.) + 298 1 */ + 299 1 P1MASK = P1MASK_B0__IGNORED | P1MASK_B1__IGNORED | P1MASK_B2__IGNORED; + 300 1 // [P1MASK - Port 1 Mask]$ +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 6 - 301 1 // with logic HIGH.) - 302 1 // B1 (Port 1 Bit 1 Match Value) = HIGH (P1.1 pin logic value is compared - 303 1 // with logic HIGH.) - 304 1 // B2 (Port 1 Bit 2 Match Value) = HIGH (P1.2 pin logic value is compared + 301 1 + 302 1 // $[P1MAT - Port 1 Match] + 303 1 /* + 304 1 // B0 (Port 1 Bit 0 Match Value) = HIGH (P1.0 pin logic value is compared 305 1 // with logic HIGH.) - 306 1 */ - 307 1 P1MAT = P1MAT_B0__HIGH | P1MAT_B1__HIGH | P1MAT_B2__HIGH; - 308 1 // [P1MAT - Port 1 Match]$ - 309 1 - 310 1 } - 311 - 312 //================================================================================ - 313 // PORTS_2_enter_DefaultMode_from_RESET - 314 //================================================================================ - 315 extern void PORTS_2_enter_DefaultMode_from_RESET(void) { - 316 1 // $[P2 - Port 2 Pin Latch] - 317 1 /* - 318 1 // B0 (Port 2 Bit 0 Latch) = HIGH (P2.0 is high. Set P2.0 to drive or - 319 1 // float high.) - 320 1 */ - 321 1 P2 = P2_B0__HIGH; - 322 1 // [P2 - Port 2 Pin Latch]$ - 323 1 - 324 1 // $[P2MDOUT - Port 2 Output Mode] - 325 1 /* - 326 1 // B0 (Port 2 Bit 0 Output Mode) = OPEN_DRAIN (P2.0 output is open- - 327 1 // drain.) - 328 1 */ - 329 1 P2MDOUT = P2MDOUT_B0__OPEN_DRAIN; - 330 1 // [P2MDOUT - Port 2 Output Mode]$ - 331 1 - 332 1 // $[P2MDIN - Port 2 Input Mode] - 333 1 /* - 334 1 // B0 (Port 2 Bit 0 Input Mode) = DIGITAL (P2.0 pin is configured for - 335 1 // digital mode.) - 336 1 */ - 337 1 SFRPAGE = 0x20; - 338 1 P2MDIN = P2MDIN_B0__DIGITAL; - 339 1 // [P2MDIN - Port 2 Input Mode]$ - 340 1 - 341 1 // $[P2SKIP - Port 2 Skip] - 342 1 /* - 343 1 // B0 (Port 2 Bit 0 Skip) = SKIPPED (P2.0 pin is skipped by the - 344 1 // crossbar.) - 345 1 */ - 346 1 P2SKIP = P2SKIP_B0__SKIPPED; - 347 1 // [P2SKIP - Port 2 Skip]$ - 348 1 - 349 1 // $[P2MASK - Port 2 Mask] - 350 1 /* - 351 1 // B0 (Port 2 Bit 0 Mask Value) = IGNORED (P2.0 pin logic value is - 352 1 // ignored and will not cause a port mismatch event.) - 353 1 */ - 354 1 P2MASK = P2MASK_B0__IGNORED; - 355 1 // [P2MASK - Port 2 Mask]$ - 356 1 - 357 1 // $[P2MAT - Port 2 Match] - 358 1 /* - 359 1 // B0 (Port 2 Bit 0 Match Value) = HIGH (P2.0 pin logic value is compared - 360 1 // with logic HIGH.) - 361 1 */ - 362 1 P2MAT = P2MAT_B0__HIGH; - 363 1 // [P2MAT - Port 2 Match]$ -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 7 + 306 1 // B1 (Port 1 Bit 1 Match Value) = HIGH (P1.1 pin logic value is compared + 307 1 // with logic HIGH.) + 308 1 // B2 (Port 1 Bit 2 Match Value) = HIGH (P1.2 pin logic value is compared + 309 1 // with logic HIGH.) + 310 1 */ + 311 1 P1MAT = P1MAT_B0__HIGH | P1MAT_B1__HIGH | P1MAT_B2__HIGH; + 312 1 // [P1MAT - Port 1 Match]$ + 313 1 + 314 1 } + 315 + 316 //================================================================================ + 317 // PORTS_2_enter_DefaultMode_from_RESET + 318 //================================================================================ + 319 extern void PORTS_2_enter_DefaultMode_from_RESET(void) { + 320 1 // $[P2 - Port 2 Pin Latch] + 321 1 /* + 322 1 // B0 (Port 2 Bit 0 Latch) = HIGH (P2.0 is high. Set P2.0 to drive or + 323 1 // float high.) + 324 1 */ + 325 1 P2 = P2_B0__HIGH; + 326 1 // [P2 - Port 2 Pin Latch]$ + 327 1 + 328 1 // $[P2MDOUT - Port 2 Output Mode] + 329 1 /* + 330 1 // B0 (Port 2 Bit 0 Output Mode) = OPEN_DRAIN (P2.0 output is open- + 331 1 // drain.) + 332 1 */ + 333 1 P2MDOUT = P2MDOUT_B0__OPEN_DRAIN; + 334 1 // [P2MDOUT - Port 2 Output Mode]$ + 335 1 + 336 1 // $[P2MDIN - Port 2 Input Mode] + 337 1 /* + 338 1 // B0 (Port 2 Bit 0 Input Mode) = DIGITAL (P2.0 pin is configured for + 339 1 // digital mode.) + 340 1 */ + 341 1 SFRPAGE = 0x20; + 342 1 P2MDIN = P2MDIN_B0__DIGITAL; + 343 1 // [P2MDIN - Port 2 Input Mode]$ + 344 1 + 345 1 // $[P2SKIP - Port 2 Skip] + 346 1 /* + 347 1 // B0 (Port 2 Bit 0 Skip) = SKIPPED (P2.0 pin is skipped by the + 348 1 // crossbar.) + 349 1 */ + 350 1 P2SKIP = P2SKIP_B0__SKIPPED; + 351 1 // [P2SKIP - Port 2 Skip]$ + 352 1 + 353 1 // $[P2MASK - Port 2 Mask] + 354 1 /* + 355 1 // B0 (Port 2 Bit 0 Mask Value) = IGNORED (P2.0 pin logic value is + 356 1 // ignored and will not cause a port mismatch event.) + 357 1 */ + 358 1 P2MASK = P2MASK_B0__IGNORED; + 359 1 // [P2MASK - Port 2 Mask]$ + 360 1 + 361 1 // $[P2MAT - Port 2 Match] + 362 1 /* + 363 1 // B0 (Port 2 Bit 0 Match Value) = HIGH (P2.0 pin logic value is compared +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 7 - 364 1 - 365 1 } - 366 - 367 //================================================================================ - 368 // PBCFG_0_enter_DefaultMode_from_RESET - 369 //================================================================================ - 370 extern void PBCFG_0_enter_DefaultMode_from_RESET(void) { - 371 1 // $[XBR2 - Port I/O Crossbar 2] - 372 1 /* - 373 1 // WEAKPUD (Port I/O Weak Pullup Disable) = PULL_UPS_ENABLED (Weak - 374 1 // Pullups enabled (except for Ports whose I/O are configured for analog - 375 1 // mode).) - 376 1 // XBARE (Crossbar Enable) = ENABLED (Crossbar enabled.) - 377 1 // URT1E (UART1 I/O Enable) = DISABLED (UART1 I/O unavailable at Port - 378 1 // pin.) - 379 1 // URT1RTSE (UART1 RTS Output Enable) = DISABLED (UART1 RTS1 unavailable - 380 1 // at Port pin.) - 381 1 // URT1CTSE (UART1 CTS Input Enable) = DISABLED (UART1 CTS1 unavailable - 382 1 // at Port pin.) - 383 1 */ - 384 1 XBR2 = XBR2_WEAKPUD__PULL_UPS_ENABLED | XBR2_XBARE__ENABLED - 385 1 | XBR2_URT1E__DISABLED | XBR2_URT1RTSE__DISABLED - 386 1 | XBR2_URT1CTSE__DISABLED; - 387 1 // [XBR2 - Port I/O Crossbar 2]$ - 388 1 - 389 1 // $[PRTDRV - Port Drive Strength] - 390 1 // [PRTDRV - Port Drive Strength]$ - 391 1 - 392 1 // $[XBR0 - Port I/O Crossbar 0] - 393 1 /* - 394 1 // URT0E (UART0 I/O Enable) = ENABLED (UART0 TX0, RX0 routed to Port pins - 395 1 // P0.4 and P0.5.) - 396 1 // SPI0E (SPI I/O Enable) = DISABLED (SPI I/O unavailable at Port pins.) - 397 1 // SMB0E (SMB0 I/O Enable) = ENABLED (SMBus 0 I/O routed to Port pins.) - 398 1 // CP0E (Comparator0 Output Enable) = DISABLED (CP0 unavailable at Port - 399 1 // pin.) - 400 1 // CP0AE (Comparator0 Asynchronous Output Enable) = DISABLED - 401 1 // (Asynchronous CP0 unavailable at Port pin.) - 402 1 // CP1E (Comparator1 Output Enable) = DISABLED (CP1 unavailable at Port + 364 1 // with logic HIGH.) + 365 1 */ + 366 1 P2MAT = P2MAT_B0__HIGH; + 367 1 // [P2MAT - Port 2 Match]$ + 368 1 + 369 1 } + 370 + 371 //================================================================================ + 372 // PBCFG_0_enter_DefaultMode_from_RESET + 373 //================================================================================ + 374 extern void PBCFG_0_enter_DefaultMode_from_RESET(void) { + 375 1 // $[XBR2 - Port I/O Crossbar 2] + 376 1 /* + 377 1 // WEAKPUD (Port I/O Weak Pullup Disable) = PULL_UPS_ENABLED (Weak + 378 1 // Pullups enabled (except for Ports whose I/O are configured for analog + 379 1 // mode).) + 380 1 // XBARE (Crossbar Enable) = ENABLED (Crossbar enabled.) + 381 1 // URT1E (UART1 I/O Enable) = DISABLED (UART1 I/O unavailable at Port + 382 1 // pin.) + 383 1 // URT1RTSE (UART1 RTS Output Enable) = DISABLED (UART1 RTS1 unavailable + 384 1 // at Port pin.) + 385 1 // URT1CTSE (UART1 CTS Input Enable) = DISABLED (UART1 CTS1 unavailable + 386 1 // at Port pin.) + 387 1 */ + 388 1 XBR2 = XBR2_WEAKPUD__PULL_UPS_ENABLED | XBR2_XBARE__ENABLED + 389 1 | XBR2_URT1E__DISABLED | XBR2_URT1RTSE__DISABLED + 390 1 | XBR2_URT1CTSE__DISABLED; + 391 1 // [XBR2 - Port I/O Crossbar 2]$ + 392 1 + 393 1 // $[PRTDRV - Port Drive Strength] + 394 1 // [PRTDRV - Port Drive Strength]$ + 395 1 + 396 1 // $[XBR0 - Port I/O Crossbar 0] + 397 1 /* + 398 1 // URT0E (UART0 I/O Enable) = ENABLED (UART0 TX0, RX0 routed to Port pins + 399 1 // P0.4 and P0.5.) + 400 1 // SPI0E (SPI I/O Enable) = DISABLED (SPI I/O unavailable at Port pins.) + 401 1 // SMB0E (SMB0 I/O Enable) = ENABLED (SMBus 0 I/O routed to Port pins.) + 402 1 // CP0E (Comparator0 Output Enable) = DISABLED (CP0 unavailable at Port 403 1 // pin.) - 404 1 // CP1AE (Comparator1 Asynchronous Output Enable) = DISABLED - 405 1 // (Asynchronous CP1 unavailable at Port pin.) - 406 1 // SYSCKE (SYSCLK Output Enable) = DISABLED (SYSCLK unavailable at Port + 404 1 // CP0AE (Comparator0 Asynchronous Output Enable) = DISABLED + 405 1 // (Asynchronous CP0 unavailable at Port pin.) + 406 1 // CP1E (Comparator1 Output Enable) = DISABLED (CP1 unavailable at Port 407 1 // pin.) - 408 1 */ - 409 1 XBR0 = XBR0_URT0E__ENABLED | XBR0_SPI0E__DISABLED | XBR0_SMB0E__ENABLED - 410 1 | XBR0_CP0E__DISABLED | XBR0_CP0AE__DISABLED | XBR0_CP1E__DISABLED - 411 1 | XBR0_CP1AE__DISABLED | XBR0_SYSCKE__DISABLED; - 412 1 // [XBR0 - Port I/O Crossbar 0]$ - 413 1 - 414 1 // $[XBR1 - Port I/O Crossbar 1] - 415 1 // [XBR1 - Port I/O Crossbar 1]$ - 416 1 - 417 1 } - 418 - 419 //================================================================================ - 420 // CIP51_0_enter_DefaultMode_from_RESET - 421 //================================================================================ - 422 extern void CIP51_0_enter_DefaultMode_from_RESET(void) { - 423 1 // $[PFE0CN - Prefetch Engine Control] - 424 1 /* - 425 1 // PFEN (Prefetch Enable) = ENABLED (Enable the prefetch engine (SYSCLK > - 426 1 // 25 MHz).) -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 8 + 408 1 // CP1AE (Comparator1 Asynchronous Output Enable) = DISABLED + 409 1 // (Asynchronous CP1 unavailable at Port pin.) + 410 1 // SYSCKE (SYSCLK Output Enable) = DISABLED (SYSCLK unavailable at Port + 411 1 // pin.) + 412 1 */ + 413 1 XBR0 = XBR0_URT0E__ENABLED | XBR0_SPI0E__DISABLED | XBR0_SMB0E__ENABLED + 414 1 | XBR0_CP0E__DISABLED | XBR0_CP0AE__DISABLED | XBR0_CP1E__DISABLED + 415 1 | XBR0_CP1AE__DISABLED | XBR0_SYSCKE__DISABLED; + 416 1 // [XBR0 - Port I/O Crossbar 0]$ + 417 1 + 418 1 // $[XBR1 - Port I/O Crossbar 1] + 419 1 /* + 420 1 // PCA0ME (PCA Module I/O Enable) = CEX0_CEX1_CEX2 (CEX0, CEX1, CEX2 + 421 1 // routed to Port pins.) + 422 1 // ECIE (PCA0 External Counter Input Enable) = DISABLED (ECI unavailable + 423 1 // at Port pin.) + 424 1 // T0E (T0 Enable) = DISABLED (T0 unavailable at Port pin.) + 425 1 // T1E (T1 Enable) = DISABLED (T1 unavailable at Port pin.) + 426 1 // T2E (T2 Enable) = DISABLED (T2 unavailable at Port pin.) +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 8 - 427 1 // FLRT (Flash Read Timing) = SYSCLK_BELOW_50_MHZ (SYSCLK < 50 MHz.) - 428 1 */ - 429 1 SFRPAGE = 0x10; - 430 1 PFE0CN = PFE0CN_PFEN__ENABLED | PFE0CN_FLRT__SYSCLK_BELOW_50_MHZ; - 431 1 // [PFE0CN - Prefetch Engine Control]$ - 432 1 - 433 1 } - 434 - 435 //================================================================================ - 436 // CLOCK_0_enter_DefaultMode_from_RESET - 437 //================================================================================ - 438 extern void CLOCK_0_enter_DefaultMode_from_RESET(void) { - 439 1 // $[HFOSC1 Setup] - 440 1 // Ensure SYSCLK is > 24 MHz before switching to HFOSC1 - 441 1 SFRPAGE = 0x00; - 442 1 CLKSEL = CLKSEL_CLKSL__HFOSC0 | CLKSEL_CLKDIV__SYSCLK_DIV_1; - 443 1 CLKSEL = CLKSEL_CLKSL__HFOSC0 | CLKSEL_CLKDIV__SYSCLK_DIV_1; - 444 1 while (CLKSEL & CLKSEL_DIVRDY__BMASK == CLKSEL_DIVRDY__NOT_READY) - 445 1 ; - 446 1 // [HFOSC1 Setup]$ + 427 1 */ + 428 1 XBR1 = XBR1_PCA0ME__CEX0_CEX1_CEX2 | XBR1_ECIE__DISABLED + 429 1 | XBR1_T0E__DISABLED | XBR1_T1E__DISABLED | XBR1_T2E__DISABLED; + 430 1 // [XBR1 - Port I/O Crossbar 1]$ + 431 1 + 432 1 } + 433 + 434 //================================================================================ + 435 // CIP51_0_enter_DefaultMode_from_RESET + 436 //================================================================================ + 437 extern void CIP51_0_enter_DefaultMode_from_RESET(void) { + 438 1 // $[PFE0CN - Prefetch Engine Control] + 439 1 /* + 440 1 // PFEN (Prefetch Enable) = ENABLED (Enable the prefetch engine (SYSCLK > + 441 1 // 25 MHz).) + 442 1 // FLRT (Flash Read Timing) = SYSCLK_BELOW_50_MHZ (SYSCLK < 50 MHz.) + 443 1 */ + 444 1 SFRPAGE = 0x10; + 445 1 PFE0CN = PFE0CN_PFEN__ENABLED | PFE0CN_FLRT__SYSCLK_BELOW_50_MHZ; + 446 1 // [PFE0CN - Prefetch Engine Control]$ 447 1 - 448 1 // $[CLKSEL - Clock Select] - 449 1 /* - 450 1 // CLKSL (Clock Source Select) = HFOSC1 (Clock derived from the Internal - 451 1 // High Frequency Oscillator 1.) - 452 1 // CLKDIV (Clock Source Divider) = SYSCLK_DIV_1 (SYSCLK is equal to - 453 1 // selected clock source divided by 1.) - 454 1 // CLKSL (Clock Source Select) = HFOSC1 (Clock derived from the Internal - 455 1 // High Frequency Oscillator 1.) - 456 1 // CLKDIV (Clock Source Divider) = SYSCLK_DIV_1 (SYSCLK is equal to - 457 1 // selected clock source divided by 1.) - 458 1 */ - 459 1 CLKSEL = CLKSEL_CLKSL__HFOSC1 | CLKSEL_CLKDIV__SYSCLK_DIV_1; - 460 1 CLKSEL = CLKSEL_CLKSL__HFOSC1 | CLKSEL_CLKDIV__SYSCLK_DIV_1; - 461 1 while (CLKSEL & CLKSEL_DIVRDY__BMASK == CLKSEL_DIVRDY__NOT_READY) - 462 1 ; - 463 1 // [CLKSEL - Clock Select]$ - 464 1 - 465 1 } - 466 - 467 //================================================================================ - 468 // TIMER01_0_enter_DefaultMode_from_RESET - 469 //================================================================================ - 470 extern void TIMER01_0_enter_DefaultMode_from_RESET(void) { - 471 1 // $[Timer Initialization] - 472 1 //Save Timer Configuration - 473 1 uint8_t TCON_save; - 474 1 TCON_save = TCON; - 475 1 //Stop Timers - 476 1 TCON &= ~TCON_TR0__BMASK & ~TCON_TR1__BMASK; - 477 1 - 478 1 // [Timer Initialization]$ + 448 1 } + 449 + 450 //================================================================================ + 451 // CLOCK_0_enter_DefaultMode_from_RESET + 452 //================================================================================ + 453 extern void CLOCK_0_enter_DefaultMode_from_RESET(void) { + 454 1 // $[HFOSC1 Setup] + 455 1 // Ensure SYSCLK is > 24 MHz before switching to HFOSC1 + 456 1 SFRPAGE = 0x00; + 457 1 CLKSEL = CLKSEL_CLKSL__HFOSC0 | CLKSEL_CLKDIV__SYSCLK_DIV_1; + 458 1 CLKSEL = CLKSEL_CLKSL__HFOSC0 | CLKSEL_CLKDIV__SYSCLK_DIV_1; + 459 1 while (CLKSEL & CLKSEL_DIVRDY__BMASK == CLKSEL_DIVRDY__NOT_READY) + 460 1 ; + 461 1 // [HFOSC1 Setup]$ + 462 1 + 463 1 // $[CLKSEL - Clock Select] + 464 1 /* + 465 1 // CLKSL (Clock Source Select) = HFOSC1 (Clock derived from the Internal + 466 1 // High Frequency Oscillator 1.) + 467 1 // CLKDIV (Clock Source Divider) = SYSCLK_DIV_1 (SYSCLK is equal to + 468 1 // selected clock source divided by 1.) + 469 1 // CLKSL (Clock Source Select) = HFOSC1 (Clock derived from the Internal + 470 1 // High Frequency Oscillator 1.) + 471 1 // CLKDIV (Clock Source Divider) = SYSCLK_DIV_1 (SYSCLK is equal to + 472 1 // selected clock source divided by 1.) + 473 1 */ + 474 1 CLKSEL = CLKSEL_CLKSL__HFOSC1 | CLKSEL_CLKDIV__SYSCLK_DIV_1; + 475 1 CLKSEL = CLKSEL_CLKSL__HFOSC1 | CLKSEL_CLKDIV__SYSCLK_DIV_1; + 476 1 while (CLKSEL & CLKSEL_DIVRDY__BMASK == CLKSEL_DIVRDY__NOT_READY) + 477 1 ; + 478 1 // [CLKSEL - Clock Select]$ 479 1 - 480 1 // $[TH0 - Timer 0 High Byte] - 481 1 // [TH0 - Timer 0 High Byte]$ - 482 1 - 483 1 // $[TL0 - Timer 0 Low Byte] - 484 1 // [TL0 - Timer 0 Low Byte]$ - 485 1 - 486 1 // $[TH1 - Timer 1 High Byte] - 487 1 /* - 488 1 // TH1 (Timer 1 High Byte) = 0x30 - 489 1 */ -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 9 + 480 1 } + 481 + 482 //================================================================================ + 483 // TIMER01_0_enter_DefaultMode_from_RESET + 484 //================================================================================ + 485 extern void TIMER01_0_enter_DefaultMode_from_RESET(void) { + 486 1 // $[Timer Initialization] + 487 1 //Save Timer Configuration + 488 1 uint8_t TCON_save; + 489 1 TCON_save = TCON; +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 9 - 490 1 TH1 = (0x30 << TH1_TH1__SHIFT); - 491 1 // [TH1 - Timer 1 High Byte]$ + 490 1 //Stop Timers + 491 1 TCON &= ~TCON_TR0__BMASK & ~TCON_TR1__BMASK; 492 1 - 493 1 // $[TL1 - Timer 1 Low Byte] - 494 1 // [TL1 - Timer 1 Low Byte]$ - 495 1 - 496 1 // $[Timer Restoration] - 497 1 //Restore Timer Configuration - 498 1 TCON |= (TCON_save & TCON_TR0__BMASK) | (TCON_save & TCON_TR1__BMASK); - 499 1 - 500 1 // [Timer Restoration]$ - 501 1 - 502 1 } - 503 - 504 //================================================================================ - 505 // TIMER16_2_enter_DefaultMode_from_RESET - 506 //================================================================================ - 507 extern void TIMER16_2_enter_DefaultMode_from_RESET(void) { - 508 1 // $[Timer Initialization] - 509 1 // Save Timer Configuration - 510 1 uint8_t TMR2CN0_TR2_save; - 511 1 TMR2CN0_TR2_save = TMR2CN0 & TMR2CN0_TR2__BMASK; - 512 1 // Stop Timer - 513 1 TMR2CN0 &= ~(TMR2CN0_TR2__BMASK); - 514 1 // [Timer Initialization]$ - 515 1 - 516 1 // $[TMR2CN1 - Timer 2 Control 1] - 517 1 // [TMR2CN1 - Timer 2 Control 1]$ - 518 1 - 519 1 // $[TMR2CN0 - Timer 2 Control] - 520 1 // [TMR2CN0 - Timer 2 Control]$ - 521 1 - 522 1 // $[TMR2H - Timer 2 High Byte] - 523 1 // [TMR2H - Timer 2 High Byte]$ - 524 1 - 525 1 // $[TMR2L - Timer 2 Low Byte] - 526 1 // [TMR2L - Timer 2 Low Byte]$ - 527 1 - 528 1 // $[TMR2RLH - Timer 2 Reload High Byte] - 529 1 /* - 530 1 // TMR2RLH (Timer 2 Reload High Byte) = 0x44 - 531 1 */ - 532 1 TMR2RLH = (0x44 << TMR2RLH_TMR2RLH__SHIFT); - 533 1 // [TMR2RLH - Timer 2 Reload High Byte]$ - 534 1 - 535 1 // $[TMR2RLL - Timer 2 Reload Low Byte] - 536 1 /* - 537 1 // TMR2RLL (Timer 2 Reload Low Byte) = 0x80 - 538 1 */ - 539 1 TMR2RLL = (0x80 << TMR2RLL_TMR2RLL__SHIFT); - 540 1 // [TMR2RLL - Timer 2 Reload Low Byte]$ - 541 1 - 542 1 // $[TMR2CN0] - 543 1 /* - 544 1 // TR2 (Timer 2 Run Control) = RUN (Start Timer 2 running.) - 545 1 */ - 546 1 TMR2CN0 |= TMR2CN0_TR2__RUN; - 547 1 // [TMR2CN0]$ - 548 1 - 549 1 // $[Timer Restoration] - 550 1 // Restore Timer Configuration - 551 1 TMR2CN0 |= TMR2CN0_TR2_save; - 552 1 // [Timer Restoration]$ -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 10 + 493 1 // [Timer Initialization]$ + 494 1 + 495 1 // $[TH0 - Timer 0 High Byte] + 496 1 // [TH0 - Timer 0 High Byte]$ + 497 1 + 498 1 // $[TL0 - Timer 0 Low Byte] + 499 1 // [TL0 - Timer 0 Low Byte]$ + 500 1 + 501 1 // $[TH1 - Timer 1 High Byte] + 502 1 /* + 503 1 // TH1 (Timer 1 High Byte) = 0x30 + 504 1 */ + 505 1 TH1 = (0x30 << TH1_TH1__SHIFT); + 506 1 // [TH1 - Timer 1 High Byte]$ + 507 1 + 508 1 // $[TL1 - Timer 1 Low Byte] + 509 1 // [TL1 - Timer 1 Low Byte]$ + 510 1 + 511 1 // $[Timer Restoration] + 512 1 //Restore Timer Configuration + 513 1 TCON |= (TCON_save & TCON_TR0__BMASK) | (TCON_save & TCON_TR1__BMASK); + 514 1 + 515 1 // [Timer Restoration]$ + 516 1 + 517 1 } + 518 + 519 //================================================================================ + 520 // TIMER16_2_enter_DefaultMode_from_RESET + 521 //================================================================================ + 522 extern void TIMER16_2_enter_DefaultMode_from_RESET(void) { + 523 1 // $[Timer Initialization] + 524 1 // Save Timer Configuration + 525 1 uint8_t TMR2CN0_TR2_save; + 526 1 TMR2CN0_TR2_save = TMR2CN0 & TMR2CN0_TR2__BMASK; + 527 1 // Stop Timer + 528 1 TMR2CN0 &= ~(TMR2CN0_TR2__BMASK); + 529 1 // [Timer Initialization]$ + 530 1 + 531 1 // $[TMR2CN1 - Timer 2 Control 1] + 532 1 // [TMR2CN1 - Timer 2 Control 1]$ + 533 1 + 534 1 // $[TMR2CN0 - Timer 2 Control] + 535 1 // [TMR2CN0 - Timer 2 Control]$ + 536 1 + 537 1 // $[TMR2H - Timer 2 High Byte] + 538 1 // [TMR2H - Timer 2 High Byte]$ + 539 1 + 540 1 // $[TMR2L - Timer 2 Low Byte] + 541 1 // [TMR2L - Timer 2 Low Byte]$ + 542 1 + 543 1 // $[TMR2RLH - Timer 2 Reload High Byte] + 544 1 /* + 545 1 // TMR2RLH (Timer 2 Reload High Byte) = 0x44 + 546 1 */ + 547 1 TMR2RLH = (0x44 << TMR2RLH_TMR2RLH__SHIFT); + 548 1 // [TMR2RLH - Timer 2 Reload High Byte]$ + 549 1 + 550 1 // $[TMR2RLL - Timer 2 Reload Low Byte] + 551 1 /* + 552 1 // TMR2RLL (Timer 2 Reload Low Byte) = 0x80 +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 10 - 553 1 - 554 1 } - 555 - 556 //================================================================================ - 557 // TIMER16_3_enter_DefaultMode_from_RESET - 558 //================================================================================ - 559 extern void TIMER16_3_enter_DefaultMode_from_RESET(void) { - 560 1 // $[Timer Initialization] - 561 1 // Save Timer Configuration - 562 1 uint8_t TMR3CN0_TR3_save; - 563 1 TMR3CN0_TR3_save = TMR3CN0 & TMR3CN0_TR3__BMASK; - 564 1 // Stop Timer - 565 1 TMR3CN0 &= ~(TMR3CN0_TR3__BMASK); - 566 1 // [Timer Initialization]$ - 567 1 - 568 1 // $[TMR3CN1 - Timer 3 Control 1] - 569 1 // [TMR3CN1 - Timer 3 Control 1]$ - 570 1 - 571 1 // $[TMR3CN0 - Timer 3 Control] - 572 1 // [TMR3CN0 - Timer 3 Control]$ - 573 1 - 574 1 // $[TMR3H - Timer 3 High Byte] - 575 1 // [TMR3H - Timer 3 High Byte]$ - 576 1 - 577 1 // $[TMR3L - Timer 3 Low Byte] - 578 1 // [TMR3L - Timer 3 Low Byte]$ - 579 1 - 580 1 // $[TMR3RLH - Timer 3 Reload High Byte] - 581 1 // [TMR3RLH - Timer 3 Reload High Byte]$ + 553 1 */ + 554 1 TMR2RLL = (0x80 << TMR2RLL_TMR2RLL__SHIFT); + 555 1 // [TMR2RLL - Timer 2 Reload Low Byte]$ + 556 1 + 557 1 // $[TMR2CN0] + 558 1 /* + 559 1 // TR2 (Timer 2 Run Control) = RUN (Start Timer 2 running.) + 560 1 */ + 561 1 TMR2CN0 |= TMR2CN0_TR2__RUN; + 562 1 // [TMR2CN0]$ + 563 1 + 564 1 // $[Timer Restoration] + 565 1 // Restore Timer Configuration + 566 1 TMR2CN0 |= TMR2CN0_TR2_save; + 567 1 // [Timer Restoration]$ + 568 1 + 569 1 } + 570 + 571 //================================================================================ + 572 // TIMER16_3_enter_DefaultMode_from_RESET + 573 //================================================================================ + 574 extern void TIMER16_3_enter_DefaultMode_from_RESET(void) { + 575 1 // $[Timer Initialization] + 576 1 // Save Timer Configuration + 577 1 uint8_t TMR3CN0_TR3_save; + 578 1 TMR3CN0_TR3_save = TMR3CN0 & TMR3CN0_TR3__BMASK; + 579 1 // Stop Timer + 580 1 TMR3CN0 &= ~(TMR3CN0_TR3__BMASK); + 581 1 // [Timer Initialization]$ 582 1 - 583 1 // $[TMR3RLL - Timer 3 Reload Low Byte] - 584 1 // [TMR3RLL - Timer 3 Reload Low Byte]$ + 583 1 // $[TMR3CN1 - Timer 3 Control 1] + 584 1 // [TMR3CN1 - Timer 3 Control 1]$ 585 1 - 586 1 // $[TMR3CN0] - 587 1 /* - 588 1 // TR3 (Timer 3 Run Control) = RUN (Start Timer 3 running.) - 589 1 */ - 590 1 TMR3CN0 |= TMR3CN0_TR3__RUN; - 591 1 // [TMR3CN0]$ - 592 1 - 593 1 // $[Timer Restoration] - 594 1 // Restore Timer Configuration - 595 1 TMR3CN0 |= TMR3CN0_TR3_save; - 596 1 // [Timer Restoration]$ + 586 1 // $[TMR3CN0 - Timer 3 Control] + 587 1 // [TMR3CN0 - Timer 3 Control]$ + 588 1 + 589 1 // $[TMR3H - Timer 3 High Byte] + 590 1 // [TMR3H - Timer 3 High Byte]$ + 591 1 + 592 1 // $[TMR3L - Timer 3 Low Byte] + 593 1 // [TMR3L - Timer 3 Low Byte]$ + 594 1 + 595 1 // $[TMR3RLH - Timer 3 Reload High Byte] + 596 1 // [TMR3RLH - Timer 3 Reload High Byte]$ 597 1 - 598 1 } - 599 - 600 //================================================================================ - 601 // TIMER_SETUP_0_enter_DefaultMode_from_RESET - 602 //================================================================================ - 603 extern void TIMER_SETUP_0_enter_DefaultMode_from_RESET(void) { - 604 1 // $[CKCON0 - Clock Control 0] - 605 1 /* - 606 1 // SCA (Timer 0/1 Prescale) = SYSCLK_DIV_12 (System clock divided by 12.) - 607 1 // T0M (Timer 0 Clock Select) = SYSCLK (Counter/Timer 0 uses the system - 608 1 // clock.) - 609 1 // T2MH (Timer 2 High Byte Clock Select) = EXTERNAL_CLOCK (Timer 2 high - 610 1 // byte uses the clock defined by T2XCLK in TMR2CN0.) - 611 1 // T2ML (Timer 2 Low Byte Clock Select) = SYSCLK (Timer 2 low byte uses - 612 1 // the system clock.) - 613 1 // T3MH (Timer 3 High Byte Clock Select) = EXTERNAL_CLOCK (Timer 3 high - 614 1 // byte uses the clock defined by T3XCLK in TMR3CN0.) - 615 1 // T3ML (Timer 3 Low Byte Clock Select) = EXTERNAL_CLOCK (Timer 3 low -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 11 + 598 1 // $[TMR3RLL - Timer 3 Reload Low Byte] + 599 1 // [TMR3RLL - Timer 3 Reload Low Byte]$ + 600 1 + 601 1 // $[TMR3CN0] + 602 1 /* + 603 1 // TR3 (Timer 3 Run Control) = RUN (Start Timer 3 running.) + 604 1 */ + 605 1 TMR3CN0 |= TMR3CN0_TR3__RUN; + 606 1 // [TMR3CN0]$ + 607 1 + 608 1 // $[Timer Restoration] + 609 1 // Restore Timer Configuration + 610 1 TMR3CN0 |= TMR3CN0_TR3_save; + 611 1 // [Timer Restoration]$ + 612 1 + 613 1 } + 614 + 615 //================================================================================ +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 11 - 616 1 // byte uses the clock defined by T3XCLK in TMR3CN0.) - 617 1 // T1M (Timer 1 Clock Select) = SYSCLK (Timer 1 uses the system clock.) - 618 1 */ - 619 1 CKCON0 = CKCON0_SCA__SYSCLK_DIV_12 | CKCON0_T0M__SYSCLK - 620 1 | CKCON0_T2MH__EXTERNAL_CLOCK | CKCON0_T2ML__SYSCLK - 621 1 | CKCON0_T3MH__EXTERNAL_CLOCK | CKCON0_T3ML__EXTERNAL_CLOCK - 622 1 | CKCON0_T1M__SYSCLK; - 623 1 // [CKCON0 - Clock Control 0]$ - 624 1 - 625 1 // $[CKCON1 - Clock Control 1] - 626 1 // [CKCON1 - Clock Control 1]$ - 627 1 - 628 1 // $[TMOD - Timer 0/1 Mode] - 629 1 /* - 630 1 // T0M (Timer 0 Mode Select) = MODE1 (Mode 1, 16-bit Counter/Timer) - 631 1 // T1M (Timer 1 Mode Select) = MODE2 (Mode 2, 8-bit Counter/Timer with - 632 1 // Auto-Reload) - 633 1 // CT0 (Counter/Timer 0 Select) = TIMER (Timer Mode. Timer 0 increments - 634 1 // on the clock defined by T0M in the CKCON0 register.) - 635 1 // GATE0 (Timer 0 Gate Control) = DISABLED (Timer 0 enabled when TR0 = 1 - 636 1 // irrespective of INT0 logic level.) - 637 1 // CT1 (Counter/Timer 1 Select) = TIMER (Timer Mode. Timer 1 increments - 638 1 // on the clock defined by T1M in the CKCON0 register.) - 639 1 // GATE1 (Timer 1 Gate Control) = DISABLED (Timer 1 enabled when TR1 = 1 - 640 1 // irrespective of INT1 logic level.) - 641 1 */ - 642 1 TMOD = TMOD_T0M__MODE1 | TMOD_T1M__MODE2 | TMOD_CT0__TIMER - 643 1 | TMOD_GATE0__DISABLED | TMOD_CT1__TIMER | TMOD_GATE1__DISABLED; - 644 1 // [TMOD - Timer 0/1 Mode]$ - 645 1 - 646 1 // $[TCON - Timer 0/1 Control] - 647 1 /* - 648 1 // TR1 (Timer 1 Run Control) = RUN (Start Timer 1 running.) - 649 1 */ - 650 1 TCON |= TCON_TR1__RUN; - 651 1 // [TCON - Timer 0/1 Control]$ - 652 1 - 653 1 } - 654 - 655 //================================================================================ - 656 // SMBUS_0_enter_DefaultMode_from_RESET - 657 //================================================================================ - 658 extern void SMBUS_0_enter_DefaultMode_from_RESET(void) { - 659 1 // $[SMB0ADR - SMBus 0 Slave Address] - 660 1 // [SMB0ADR - SMBus 0 Slave Address]$ - 661 1 - 662 1 // $[SMB0ADM - SMBus 0 Slave Address Mask] - 663 1 // [SMB0ADM - SMBus 0 Slave Address Mask]$ - 664 1 - 665 1 // $[SMB0TC - SMBus 0 Timing and Pin Control] - 666 1 // [SMB0TC - SMBus 0 Timing and Pin Control]$ + 616 // TIMER_SETUP_0_enter_DefaultMode_from_RESET + 617 //================================================================================ + 618 extern void TIMER_SETUP_0_enter_DefaultMode_from_RESET(void) { + 619 1 // $[CKCON0 - Clock Control 0] + 620 1 /* + 621 1 // SCA (Timer 0/1 Prescale) = SYSCLK_DIV_12 (System clock divided by 12.) + 622 1 // T0M (Timer 0 Clock Select) = SYSCLK (Counter/Timer 0 uses the system + 623 1 // clock.) + 624 1 // T2MH (Timer 2 High Byte Clock Select) = EXTERNAL_CLOCK (Timer 2 high + 625 1 // byte uses the clock defined by T2XCLK in TMR2CN0.) + 626 1 // T2ML (Timer 2 Low Byte Clock Select) = SYSCLK (Timer 2 low byte uses + 627 1 // the system clock.) + 628 1 // T3MH (Timer 3 High Byte Clock Select) = EXTERNAL_CLOCK (Timer 3 high + 629 1 // byte uses the clock defined by T3XCLK in TMR3CN0.) + 630 1 // T3ML (Timer 3 Low Byte Clock Select) = EXTERNAL_CLOCK (Timer 3 low + 631 1 // byte uses the clock defined by T3XCLK in TMR3CN0.) + 632 1 // T1M (Timer 1 Clock Select) = SYSCLK (Timer 1 uses the system clock.) + 633 1 */ + 634 1 CKCON0 = CKCON0_SCA__SYSCLK_DIV_12 | CKCON0_T0M__SYSCLK + 635 1 | CKCON0_T2MH__EXTERNAL_CLOCK | CKCON0_T2ML__SYSCLK + 636 1 | CKCON0_T3MH__EXTERNAL_CLOCK | CKCON0_T3ML__EXTERNAL_CLOCK + 637 1 | CKCON0_T1M__SYSCLK; + 638 1 // [CKCON0 - Clock Control 0]$ + 639 1 + 640 1 // $[CKCON1 - Clock Control 1] + 641 1 // [CKCON1 - Clock Control 1]$ + 642 1 + 643 1 // $[TMOD - Timer 0/1 Mode] + 644 1 /* + 645 1 // T0M (Timer 0 Mode Select) = MODE1 (Mode 1, 16-bit Counter/Timer) + 646 1 // T1M (Timer 1 Mode Select) = MODE2 (Mode 2, 8-bit Counter/Timer with + 647 1 // Auto-Reload) + 648 1 // CT0 (Counter/Timer 0 Select) = TIMER (Timer Mode. Timer 0 increments + 649 1 // on the clock defined by T0M in the CKCON0 register.) + 650 1 // GATE0 (Timer 0 Gate Control) = DISABLED (Timer 0 enabled when TR0 = 1 + 651 1 // irrespective of INT0 logic level.) + 652 1 // CT1 (Counter/Timer 1 Select) = TIMER (Timer Mode. Timer 1 increments + 653 1 // on the clock defined by T1M in the CKCON0 register.) + 654 1 // GATE1 (Timer 1 Gate Control) = DISABLED (Timer 1 enabled when TR1 = 1 + 655 1 // irrespective of INT1 logic level.) + 656 1 */ + 657 1 TMOD = TMOD_T0M__MODE1 | TMOD_T1M__MODE2 | TMOD_CT0__TIMER + 658 1 | TMOD_GATE0__DISABLED | TMOD_CT1__TIMER | TMOD_GATE1__DISABLED; + 659 1 // [TMOD - Timer 0/1 Mode]$ + 660 1 + 661 1 // $[TCON - Timer 0/1 Control] + 662 1 /* + 663 1 // TR1 (Timer 1 Run Control) = RUN (Start Timer 1 running.) + 664 1 */ + 665 1 TCON |= TCON_TR1__RUN; + 666 1 // [TCON - Timer 0/1 Control]$ 667 1 - 668 1 // $[SMB0CF - SMBus 0 Configuration] - 669 1 /* - 670 1 // SMBCS (SMBus Clock Source Selection) = TIMER2_LOW (Timer 2 Low Byte - 671 1 // Overflow.) - 672 1 // ENSMB (SMBus Enable) = ENABLED (Enable the SMBus module.) - 673 1 // SMBFTE (SMBus Free Timeout Detection Enable) = FREE_TO_ENABLED (Enable - 674 1 // bus free timeouts. The bus the bus will be considered free if SCL and - 675 1 // SDA remain high for more than 10 SMBus clock source periods.) - 676 1 // SMBTOE (SMBus SCL Timeout Detection Enable) = SCL_TO_ENABLED (Enable - 677 1 // SCL low timeouts.) - 678 1 // EXTHOLD (SMBus Setup and Hold Time Extension Enable) = ENABLED (Enable -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 12 + 668 1 } + 669 + 670 //================================================================================ + 671 // SMBUS_0_enter_DefaultMode_from_RESET + 672 //================================================================================ + 673 extern void SMBUS_0_enter_DefaultMode_from_RESET(void) { + 674 1 // $[SMB0ADR - SMBus 0 Slave Address] + 675 1 // [SMB0ADR - SMBus 0 Slave Address]$ + 676 1 + 677 1 // $[SMB0ADM - SMBus 0 Slave Address Mask] + 678 1 // [SMB0ADM - SMBus 0 Slave Address Mask]$ +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 12 - 679 1 // SDA extended setup and hold times.) - 680 1 */ - 681 1 SMB0CF |= SMB0CF_SMBCS__TIMER2_LOW | SMB0CF_ENSMB__ENABLED - 682 1 | SMB0CF_SMBFTE__FREE_TO_ENABLED | SMB0CF_SMBTOE__SCL_TO_ENABLED - 683 1 | SMB0CF_EXTHOLD__ENABLED; - 684 1 // [SMB0CF - SMBus 0 Configuration]$ - 685 1 - 686 1 } - 687 - 688 //================================================================================ - 689 // UART_0_enter_DefaultMode_from_RESET - 690 //================================================================================ - 691 extern void UART_0_enter_DefaultMode_from_RESET(void) { - 692 1 // $[SCON0 - UART0 Serial Port Control] - 693 1 /* - 694 1 // REN (Receive Enable) = RECEIVE_ENABLED (UART0 reception enabled.) + 679 1 + 680 1 // $[SMB0TC - SMBus 0 Timing and Pin Control] + 681 1 // [SMB0TC - SMBus 0 Timing and Pin Control]$ + 682 1 + 683 1 // $[SMB0CF - SMBus 0 Configuration] + 684 1 /* + 685 1 // SMBCS (SMBus Clock Source Selection) = TIMER2_LOW (Timer 2 Low Byte + 686 1 // Overflow.) + 687 1 // ENSMB (SMBus Enable) = ENABLED (Enable the SMBus module.) + 688 1 // SMBFTE (SMBus Free Timeout Detection Enable) = FREE_TO_ENABLED (Enable + 689 1 // bus free timeouts. The bus the bus will be considered free if SCL and + 690 1 // SDA remain high for more than 10 SMBus clock source periods.) + 691 1 // SMBTOE (SMBus SCL Timeout Detection Enable) = SCL_TO_ENABLED (Enable + 692 1 // SCL low timeouts.) + 693 1 // EXTHOLD (SMBus Setup and Hold Time Extension Enable) = ENABLED (Enable + 694 1 // SDA extended setup and hold times.) 695 1 */ - 696 1 SCON0 |= SCON0_REN__RECEIVE_ENABLED; - 697 1 // [SCON0 - UART0 Serial Port Control]$ - 698 1 - 699 1 } - 700 - 701 //================================================================================ - 702 // INTERRUPT_0_enter_DefaultMode_from_RESET + 696 1 SMB0CF |= SMB0CF_SMBCS__TIMER2_LOW | SMB0CF_ENSMB__ENABLED + 697 1 | SMB0CF_SMBFTE__FREE_TO_ENABLED | SMB0CF_SMBTOE__SCL_TO_ENABLED + 698 1 | SMB0CF_EXTHOLD__ENABLED; + 699 1 // [SMB0CF - SMBus 0 Configuration]$ + 700 1 + 701 1 } + 702 703 //================================================================================ - 704 extern void INTERRUPT_0_enter_DefaultMode_from_RESET(void) { - 705 1 // $[EIE1 - Extended Interrupt Enable 1] - 706 1 /* - 707 1 // EADC0 (ADC0 Conversion Complete Interrupt Enable) = DISABLED (Disable - 708 1 // ADC0 Conversion Complete interrupt.) - 709 1 // EWADC0 (ADC0 Window Comparison Interrupt Enable) = DISABLED (Disable - 710 1 // ADC0 Window Comparison interrupt.) - 711 1 // ECP0 (Comparator0 (CP0) Interrupt Enable) = DISABLED (Disable CP0 - 712 1 // interrupts.) - 713 1 // ECP1 (Comparator1 (CP1) Interrupt Enable) = DISABLED (Disable CP1 - 714 1 // interrupts.) - 715 1 // EMAT (Port Match Interrupts Enable) = DISABLED (Disable all Port Match - 716 1 // interrupts.) - 717 1 // EPCA0 (Programmable Counter Array (PCA0) Interrupt Enable) = DISABLED - 718 1 // (Disable all PCA0 interrupts.) - 719 1 // ESMB0 (SMBus (SMB0) Interrupt Enable) = ENABLED (Enable interrupt - 720 1 // requests generated by SMB0.) - 721 1 // ET3 (Timer 3 Interrupt Enable) = ENABLED (Enable interrupt requests - 722 1 // generated by the TF3L or TF3H flags.) - 723 1 */ - 724 1 EIE1 = EIE1_EADC0__DISABLED | EIE1_EWADC0__DISABLED | EIE1_ECP0__DISABLED - 725 1 | EIE1_ECP1__DISABLED | EIE1_EMAT__DISABLED | EIE1_EPCA0__DISABLED - 726 1 | EIE1_ESMB0__ENABLED | EIE1_ET3__ENABLED; - 727 1 // [EIE1 - Extended Interrupt Enable 1]$ - 728 1 - 729 1 // $[EIE2 - Extended Interrupt Enable 2] - 730 1 // [EIE2 - Extended Interrupt Enable 2]$ - 731 1 - 732 1 // $[EIP1H - Extended Interrupt Priority 1 High] - 733 1 // [EIP1H - Extended Interrupt Priority 1 High]$ - 734 1 - 735 1 // $[EIP1 - Extended Interrupt Priority 1 Low] - 736 1 // [EIP1 - Extended Interrupt Priority 1 Low]$ - 737 1 - 738 1 // $[EIP2 - Extended Interrupt Priority 2] - 739 1 // [EIP2 - Extended Interrupt Priority 2]$ - 740 1 - 741 1 // $[EIP2H - Extended Interrupt Priority 2 High] -C51 COMPILER V9.53.0.0 INITDEVICE 03/28/2016 20:17:24 PAGE 13 + 704 // UART_0_enter_DefaultMode_from_RESET + 705 //================================================================================ + 706 extern void UART_0_enter_DefaultMode_from_RESET(void) { + 707 1 // $[SCON0 - UART0 Serial Port Control] + 708 1 /* + 709 1 // REN (Receive Enable) = RECEIVE_ENABLED (UART0 reception enabled.) + 710 1 */ + 711 1 SCON0 |= SCON0_REN__RECEIVE_ENABLED; + 712 1 // [SCON0 - UART0 Serial Port Control]$ + 713 1 + 714 1 } + 715 + 716 //================================================================================ + 717 // INTERRUPT_0_enter_DefaultMode_from_RESET + 718 //================================================================================ + 719 extern void INTERRUPT_0_enter_DefaultMode_from_RESET(void) { + 720 1 // $[EIE1 - Extended Interrupt Enable 1] + 721 1 /* + 722 1 // EADC0 (ADC0 Conversion Complete Interrupt Enable) = DISABLED (Disable + 723 1 // ADC0 Conversion Complete interrupt.) + 724 1 // EWADC0 (ADC0 Window Comparison Interrupt Enable) = DISABLED (Disable + 725 1 // ADC0 Window Comparison interrupt.) + 726 1 // ECP0 (Comparator0 (CP0) Interrupt Enable) = DISABLED (Disable CP0 + 727 1 // interrupts.) + 728 1 // ECP1 (Comparator1 (CP1) Interrupt Enable) = DISABLED (Disable CP1 + 729 1 // interrupts.) + 730 1 // EMAT (Port Match Interrupts Enable) = DISABLED (Disable all Port Match + 731 1 // interrupts.) + 732 1 // EPCA0 (Programmable Counter Array (PCA0) Interrupt Enable) = DISABLED + 733 1 // (Disable all PCA0 interrupts.) + 734 1 // ESMB0 (SMBus (SMB0) Interrupt Enable) = ENABLED (Enable interrupt + 735 1 // requests generated by SMB0.) + 736 1 // ET3 (Timer 3 Interrupt Enable) = ENABLED (Enable interrupt requests + 737 1 // generated by the TF3L or TF3H flags.) + 738 1 */ + 739 1 EIE1 = EIE1_EADC0__DISABLED | EIE1_EWADC0__DISABLED | EIE1_ECP0__DISABLED + 740 1 | EIE1_ECP1__DISABLED | EIE1_EMAT__DISABLED | EIE1_EPCA0__DISABLED + 741 1 | EIE1_ESMB0__ENABLED | EIE1_ET3__ENABLED; +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 13 - 742 1 // [EIP2H - Extended Interrupt Priority 2 High]$ + 742 1 // [EIE1 - Extended Interrupt Enable 1]$ 743 1 - 744 1 // $[IE - Interrupt Enable] - 745 1 /* - 746 1 // EA (All Interrupts Enable) = ENABLED (Enable each interrupt according - 747 1 // to its individual mask setting.) - 748 1 // EX0 (External Interrupt 0 Enable) = DISABLED (Disable external - 749 1 // interrupt 0.) - 750 1 // EX1 (External Interrupt 1 Enable) = DISABLED (Disable external - 751 1 // interrupt 1.) - 752 1 // ESPI0 (SPI0 Interrupt Enable) = DISABLED (Disable all SPI0 - 753 1 // interrupts.) - 754 1 // ET0 (Timer 0 Interrupt Enable) = DISABLED (Disable all Timer 0 - 755 1 // interrupt.) - 756 1 // ET1 (Timer 1 Interrupt Enable) = DISABLED (Disable all Timer 1 - 757 1 // interrupt.) - 758 1 // ET2 (Timer 2 Interrupt Enable) = ENABLED (Enable interrupt requests - 759 1 // generated by the TF2L or TF2H flags.) - 760 1 // ES0 (UART0 Interrupt Enable) = DISABLED (Disable UART0 interrupt.) - 761 1 */ - 762 1 IE = IE_EA__ENABLED | IE_EX0__DISABLED | IE_EX1__DISABLED - 763 1 | IE_ESPI0__DISABLED | IE_ET0__DISABLED | IE_ET1__DISABLED - 764 1 | IE_ET2__ENABLED | IE_ES0__DISABLED; - 765 1 // [IE - Interrupt Enable]$ - 766 1 - 767 1 // $[IP - Interrupt Priority] - 768 1 // [IP - Interrupt Priority]$ - 769 1 - 770 1 // $[IPH - Interrupt Priority High] - 771 1 // [IPH - Interrupt Priority High]$ - 772 1 - 773 1 } - 774 - 775 //================================================================================ - 776 // USBLIB_0_enter_DefaultMode_from_RESET - 777 //================================================================================ - 778 extern void USBLIB_0_enter_DefaultMode_from_RESET(void) { - 779 1 // $[USBD Init] - 780 1 USBD_Init (&initstruct); - 781 1 // [USBD Init]$ - 782 1 - 783 1 } - 784 + 744 1 // $[EIE2 - Extended Interrupt Enable 2] + 745 1 // [EIE2 - Extended Interrupt Enable 2]$ + 746 1 + 747 1 // $[EIP1H - Extended Interrupt Priority 1 High] + 748 1 // [EIP1H - Extended Interrupt Priority 1 High]$ + 749 1 + 750 1 // $[EIP1 - Extended Interrupt Priority 1 Low] + 751 1 // [EIP1 - Extended Interrupt Priority 1 Low]$ + 752 1 + 753 1 // $[EIP2 - Extended Interrupt Priority 2] + 754 1 // [EIP2 - Extended Interrupt Priority 2]$ + 755 1 + 756 1 // $[EIP2H - Extended Interrupt Priority 2 High] + 757 1 // [EIP2H - Extended Interrupt Priority 2 High]$ + 758 1 + 759 1 // $[IE - Interrupt Enable] + 760 1 /* + 761 1 // EA (All Interrupts Enable) = ENABLED (Enable each interrupt according + 762 1 // to its individual mask setting.) + 763 1 // EX0 (External Interrupt 0 Enable) = DISABLED (Disable external + 764 1 // interrupt 0.) + 765 1 // EX1 (External Interrupt 1 Enable) = DISABLED (Disable external + 766 1 // interrupt 1.) + 767 1 // ESPI0 (SPI0 Interrupt Enable) = DISABLED (Disable all SPI0 + 768 1 // interrupts.) + 769 1 // ET0 (Timer 0 Interrupt Enable) = DISABLED (Disable all Timer 0 + 770 1 // interrupt.) + 771 1 // ET1 (Timer 1 Interrupt Enable) = DISABLED (Disable all Timer 1 + 772 1 // interrupt.) + 773 1 // ET2 (Timer 2 Interrupt Enable) = ENABLED (Enable interrupt requests + 774 1 // generated by the TF2L or TF2H flags.) + 775 1 // ES0 (UART0 Interrupt Enable) = DISABLED (Disable UART0 interrupt.) + 776 1 */ + 777 1 IE = IE_EA__ENABLED | IE_EX0__DISABLED | IE_EX1__DISABLED + 778 1 | IE_ESPI0__DISABLED | IE_ET0__DISABLED | IE_ET1__DISABLED + 779 1 | IE_ET2__ENABLED | IE_ES0__DISABLED; + 780 1 // [IE - Interrupt Enable]$ + 781 1 + 782 1 // $[IP - Interrupt Priority] + 783 1 // [IP - Interrupt Priority]$ + 784 1 + 785 1 // $[IPH - Interrupt Priority High] + 786 1 // [IPH - Interrupt Priority High]$ + 787 1 + 788 1 } + 789 + 790 //================================================================================ + 791 // USBLIB_0_enter_DefaultMode_from_RESET + 792 //================================================================================ + 793 extern void USBLIB_0_enter_DefaultMode_from_RESET(void) { + 794 1 // $[USBD Init] + 795 1 USBD_Init (&initstruct); + 796 1 // [USBD Init]$ + 797 1 + 798 1 } + 799 + 800 extern void PCA_0_enter_DefaultMode_from_RESET(void) { + 801 1 // $[PCA Off] + 802 1 PCA0CN0_CR = PCA0CN0_CR__STOP; + 803 1 // [PCA Off]$ + 804 1 +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 14 + + 805 1 // $[PCA0MD - PCA Mode] + 806 1 // [PCA0MD - PCA Mode]$ + 807 1 + 808 1 // $[PCA0CENT - PCA Center Alignment Enable] + 809 1 /* + 810 1 // CEX0CEN (CEX0 Center Alignment Enable) = CENTER (Center-aligned.) + 811 1 // CEX1CEN (CEX1 Center Alignment Enable) = CENTER (Center-aligned.) + 812 1 // CEX2CEN (CEX2 Center Alignment Enable) = CENTER (Center-aligned.) + 813 1 */ + 814 1 PCA0CENT = PCA0CENT_CEX0CEN__CENTER | PCA0CENT_CEX1CEN__CENTER + 815 1 | PCA0CENT_CEX2CEN__CENTER; + 816 1 // [PCA0CENT - PCA Center Alignment Enable]$ + 817 1 + 818 1 // $[PCA0CLR - PCA Comparator Clear Control] + 819 1 // [PCA0CLR - PCA Comparator Clear Control]$ + 820 1 + 821 1 // $[PCA0L - PCA Counter/Timer Low Byte] + 822 1 // [PCA0L - PCA Counter/Timer Low Byte]$ + 823 1 + 824 1 // $[PCA0H - PCA Counter/Timer High Byte] + 825 1 // [PCA0H - PCA Counter/Timer High Byte]$ + 826 1 + 827 1 // $[PCA0POL - PCA Output Polarity] + 828 1 // [PCA0POL - PCA Output Polarity]$ + 829 1 + 830 1 // $[PCA0PWM - PCA PWM Configuration] + 831 1 // [PCA0PWM - PCA PWM Configuration]$ + 832 1 + 833 1 // $[PCA On] + 834 1 PCA0CN0_CR = PCA0CN0_CR__RUN; + 835 1 // [PCA On]$ + 836 1 + 837 1 } + 838 + 839 extern void PCACH_0_enter_DefaultMode_from_RESET(void) { + 840 1 // $[PCA0 Settings Save] + 841 1 // Select Capture/Compare register) + 842 1 PCA0PWM &= ~PCA0PWM_ARSEL__BMASK; + 843 1 // [PCA0 Settings Save]$ + 844 1 + 845 1 // $[PCA0CPM0 - PCA Channel 0 Capture/Compare Mode] + 846 1 /* + 847 1 // CAPN (Channel 0 Capture Negative Function Enable) = DISABLED (Disable + 848 1 // negative edge capture.) + 849 1 // ECCF (Channel 0 Capture/Compare Flag Interrupt Enable) = DISABLED + 850 1 // (Disable CCF0 interrupts.) + 851 1 // MAT (Channel 0 Match Function Enable) = DISABLED (Disable match + 852 1 // function.) + 853 1 // PWM16 (Channel 0 16-bit Pulse Width Modulation Enable) = 8_BIT (8 to + 854 1 // 11-bit PWM selected.) + 855 1 // CAPP (Channel 0 Capture Positive Function Enable) = DISABLED (Disable + 856 1 // positive edge capture.) + 857 1 // ECOM (Channel 0 Comparator Function Enable) = ENABLED (Enable + 858 1 // comparator function.) + 859 1 // PWM (Channel 0 Pulse Width Modulation Mode Enable) = ENABLED (Enable + 860 1 // PWM function.) + 861 1 // TOG (Channel 0 Toggle Function Enable) = DISABLED (Disable toggle + 862 1 // function.) + 863 1 */ + 864 1 PCA0CPM0 = PCA0CPM0_CAPN__DISABLED | PCA0CPM0_ECCF__DISABLED + 865 1 | PCA0CPM0_MAT__DISABLED | PCA0CPM0_PWM16__8_BIT + 866 1 | PCA0CPM0_CAPP__DISABLED | PCA0CPM0_ECOM__ENABLED + 867 1 | PCA0CPM0_PWM__ENABLED | PCA0CPM0_TOG__DISABLED; +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 15 + + 868 1 // [PCA0CPM0 - PCA Channel 0 Capture/Compare Mode]$ + 869 1 + 870 1 // $[PCA0CPL0 - PCA Channel 0 Capture Module Low Byte] + 871 1 // [PCA0CPL0 - PCA Channel 0 Capture Module Low Byte]$ + 872 1 + 873 1 // $[PCA0CPH0 - PCA Channel 0 Capture Module High Byte] + 874 1 // [PCA0CPH0 - PCA Channel 0 Capture Module High Byte]$ + 875 1 + 876 1 // $[Auto-reload] + 877 1 // [Auto-reload]$ + 878 1 + 879 1 // $[PCA0 Settings Restore] + 880 1 // [PCA0 Settings Restore]$ + 881 1 + 882 1 } + 883 + 884 extern void PCACH_1_enter_DefaultMode_from_RESET(void) { + 885 1 // $[PCA0 Settings Save] + 886 1 // Select Capture/Compare register) + 887 1 PCA0PWM &= ~PCA0PWM_ARSEL__BMASK; + 888 1 // [PCA0 Settings Save]$ + 889 1 + 890 1 // $[PCA0CPM1 - PCA Channel 1 Capture/Compare Mode] + 891 1 /* + 892 1 // CAPN (Channel 1 Capture Negative Function Enable) = DISABLED (Disable + 893 1 // negative edge capture.) + 894 1 // ECCF (Channel 1 Capture/Compare Flag Interrupt Enable) = DISABLED + 895 1 // (Disable CCF1 interrupts.) + 896 1 // MAT (Channel 1 Match Function Enable) = DISABLED (Disable match + 897 1 // function.) + 898 1 // PWM16 (Channel 1 16-bit Pulse Width Modulation Enable) = 8_BIT (8 to + 899 1 // 11-bit PWM selected.) + 900 1 // CAPP (Channel 1 Capture Positive Function Enable) = DISABLED (Disable + 901 1 // positive edge capture.) + 902 1 // ECOM (Channel 1 Comparator Function Enable) = ENABLED (Enable + 903 1 // comparator function.) + 904 1 // PWM (Channel 1 Pulse Width Modulation Mode Enable) = ENABLED (Enable + 905 1 // PWM function.) + 906 1 // TOG (Channel 1 Toggle Function Enable) = DISABLED (Disable toggle + 907 1 // function.) + 908 1 */ + 909 1 PCA0CPM1 = PCA0CPM1_CAPN__DISABLED | PCA0CPM1_ECCF__DISABLED + 910 1 | PCA0CPM1_MAT__DISABLED | PCA0CPM1_PWM16__8_BIT + 911 1 | PCA0CPM1_CAPP__DISABLED | PCA0CPM1_ECOM__ENABLED + 912 1 | PCA0CPM1_PWM__ENABLED | PCA0CPM1_TOG__DISABLED; + 913 1 // [PCA0CPM1 - PCA Channel 1 Capture/Compare Mode]$ + 914 1 + 915 1 // $[PCA0CPL1 - PCA Channel 1 Capture Module Low Byte] + 916 1 // [PCA0CPL1 - PCA Channel 1 Capture Module Low Byte]$ + 917 1 + 918 1 // $[PCA0CPH1 - PCA Channel 1 Capture Module High Byte] + 919 1 // [PCA0CPH1 - PCA Channel 1 Capture Module High Byte]$ + 920 1 + 921 1 // $[Auto-reload] + 922 1 // [Auto-reload]$ + 923 1 + 924 1 // $[PCA0 Settings Restore] + 925 1 // [PCA0 Settings Restore]$ + 926 1 + 927 1 } + 928 + 929 extern void PCACH_2_enter_DefaultMode_from_RESET(void) { + 930 1 // $[PCA0 Settings Save] +C51 COMPILER V9.53.0.0 INITDEVICE 03/29/2016 00:06:38 PAGE 16 + + 931 1 // Select Capture/Compare register) + 932 1 PCA0PWM &= ~PCA0PWM_ARSEL__BMASK; + 933 1 // [PCA0 Settings Save]$ + 934 1 + 935 1 // $[PCA0CPM2 - PCA Channel 2 Capture/Compare Mode] + 936 1 /* + 937 1 // CAPN (Channel 2 Capture Negative Function Enable) = DISABLED (Disable + 938 1 // negative edge capture.) + 939 1 // ECCF (Channel 2 Capture/Compare Flag Interrupt Enable) = DISABLED + 940 1 // (Disable CCF2 interrupts.) + 941 1 // MAT (Channel 2 Match Function Enable) = DISABLED (Disable match + 942 1 // function.) + 943 1 // PWM16 (Channel 2 16-bit Pulse Width Modulation Enable) = 8_BIT (8 to + 944 1 // 11-bit PWM selected.) + 945 1 // CAPP (Channel 2 Capture Positive Function Enable) = DISABLED (Disable + 946 1 // positive edge capture.) + 947 1 // ECOM (Channel 2 Comparator Function Enable) = ENABLED (Enable + 948 1 // comparator function.) + 949 1 // PWM (Channel 2 Pulse Width Modulation Mode Enable) = ENABLED (Enable + 950 1 // PWM function.) + 951 1 // TOG (Channel 2 Toggle Function Enable) = DISABLED (Disable toggle + 952 1 // function.) + 953 1 */ + 954 1 PCA0CPM2 = PCA0CPM2_CAPN__DISABLED | PCA0CPM2_ECCF__DISABLED + 955 1 | PCA0CPM2_MAT__DISABLED | PCA0CPM2_PWM16__8_BIT + 956 1 | PCA0CPM2_CAPP__DISABLED | PCA0CPM2_ECOM__ENABLED + 957 1 | PCA0CPM2_PWM__ENABLED | PCA0CPM2_TOG__DISABLED; + 958 1 // [PCA0CPM2 - PCA Channel 2 Capture/Compare Mode]$ + 959 1 + 960 1 // $[PCA0CPL2 - PCA Channel 2 Capture Module Low Byte] + 961 1 // [PCA0CPL2 - PCA Channel 2 Capture Module Low Byte]$ + 962 1 + 963 1 // $[PCA0CPH2 - PCA Channel 2 Capture Module High Byte] + 964 1 // [PCA0CPH2 - PCA Channel 2 Capture Module High Byte]$ + 965 1 + 966 1 // $[Auto-reload] + 967 1 // [Auto-reload]$ + 968 1 + 969 1 // $[PCA0 Settings Restore] + 970 1 // [PCA0 Settings Restore]$ + 971 1 + 972 1 } + 973 MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 247 ---- + CODE SIZE = 292 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- 1 PDATA SIZE = ---- ---- diff --git a/firmware/release/src/Interrupts.OBJ b/firmware/release/src/Interrupts.OBJ index 21a02a1..05e2e9f 100644 Binary files a/firmware/release/src/Interrupts.OBJ and b/firmware/release/src/Interrupts.OBJ differ diff --git a/firmware/release/src/Interrupts.__i b/firmware/release/src/Interrupts.__i index e72c628..aeffcf0 100644 --- a/firmware/release/src/Interrupts.__i +++ b/firmware/release/src/Interrupts.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/Interrupts.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/Interrupts.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/Interrupts.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/Interrupts.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/Interrupts.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/Interrupts.OBJ) \ No newline at end of file diff --git a/firmware/release/src/Interrupts.lst b/firmware/release/src/Interrupts.lst index 088a0ac..244b00c 100644 --- a/firmware/release/src/Interrupts.lst +++ b/firmware/release/src/Interrupts.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 INTERRUPTS 03/28/2016 20:18:25 PAGE 1 +C51 COMPILER V9.53.0.0 INTERRUPTS 03/29/2016 00:06:38 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE INTERRUPTS @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\src/Interrupts.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/Interrupts.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INT -VECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp - -/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8 - -051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/Simplici - -tyStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8 - -_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/Simplicity - -Studio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/Interrupts.lst) COND PAGEWIDT - -H(120) PAGELENGTH(65) OBJECT(.\src/Interrupts.OBJ) + -/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/S + -implicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Devic + -e/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/devel + -oper/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm + -8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/Interrupts.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/Interrup + -ts.OBJ) line level source @@ -46,7 +46,7 @@ line level source 29 #define SMB_TX (SMB_WRITE) 30 31 struct smb_interrupt_interface SMB; - 32 volatile uint8_t SMB_FLAGS; + 32 data volatile uint8_t SMB_FLAGS; 33 34 static void update_from_packet_length() 35 { @@ -63,7 +63,7 @@ line level source 46 47 static void _feed_crc(uint8_t b) 48 { -C51 COMPILER V9.53.0.0 INTERRUPTS 03/28/2016 20:18:25 PAGE 2 +C51 COMPILER V9.53.0.0 INTERRUPTS 03/29/2016 00:06:38 PAGE 2 49 1 if (SMB_HAS_CRC()) 50 1 { @@ -82,164 +82,161 @@ line level source 63 1 SMB.errors = 0; 64 1 } 65 - 66 uint8_t count = 0; - 67 SI_INTERRUPT (SMBUS0_ISR, SMBUS0_IRQn) - 68 { - 69 1 uint8_t bus = SMB0CN0 & SMB_STATE_MASK; - 70 1 if (SMB0CN0_ARBLOST != 0) - 71 1 { - 72 2 goto fail; - 73 2 } - 74 1 - 75 1 switch (bus) - 76 1 { - 77 2 case SMB_STATUS_START: - 78 2 SMB0DAT = SMB.addr | (SMB_FLAGS & SMB_READ); - 79 2 count = 0; - 80 2 SMB0CN0_STA = 0; - 81 2 break; - 82 2 - 83 2 case SMB_STATUS_MTX: - 84 2 count++; - 85 2 if (!SMB0CN0_ACK) - 86 2 { - 87 3 // NACK - 88 3 // end transaction - 89 3 SMB0CN0_STO = 1; - 90 3 SMB_FLAGS |= SMB_RECV_NACK; - 91 3 SMB_BUSY_CLEAR(); - 92 3 } - 93 2 else if (!SMB_WRITING()) - 94 2 { - 95 3 // do nothing and switch to receive mode - 96 3 } - 97 2 else if (SMB.write_offset < SMB.write_len) - 98 2 { - 99 3 // start writing first buffer - 100 3 // dont crc first byte for atecc508a - 101 3 if (SMB.write_offset) _feed_crc(SMB.write_buf[SMB.write_offset]); - 102 3 SMB0DAT = SMB.write_buf[SMB.write_offset++]; - 103 3 - 104 3 } - 105 2 else if(SMB_WRITING_EXT() && SMB.write_ext_offset < SMB.write_ext_len) - 106 2 { - 107 3 // start writing second optional buffer - 108 3 _feed_crc(SMB.write_ext_buf[SMB.write_ext_offset]); - 109 3 SMB0DAT = SMB.write_ext_buf[SMB.write_ext_offset++]; - 110 3 } - 111 2 else if (SMB_HAS_CRC()) -C51 COMPILER V9.53.0.0 INTERRUPTS 03/28/2016 20:18:25 PAGE 3 + 66 SI_INTERRUPT (SMBUS0_ISR, SMBUS0_IRQn) + 67 { + 68 1 data uint8_t bus = SMB0CN0 & SMB_STATE_MASK; + 69 1 if (SMB0CN0_ARBLOST != 0) + 70 1 { + 71 2 goto fail; + 72 2 } + 73 1 + 74 1 switch (bus) + 75 1 { + 76 2 case SMB_STATUS_START: + 77 2 SMB0DAT = SMB.addr | (SMB_FLAGS & SMB_READ); + 78 2 SMB0CN0_STA = 0; + 79 2 break; + 80 2 + 81 2 case SMB_STATUS_MTX: + 82 2 if (!SMB0CN0_ACK) + 83 2 { + 84 3 // NACK + 85 3 // end transaction + 86 3 SMB0CN0_STO = 1; + 87 3 SMB_FLAGS |= SMB_RECV_NACK; + 88 3 SMB_BUSY_CLEAR(); + 89 3 } + 90 2 else if (!SMB_WRITING()) + 91 2 { + 92 3 // do nothing and switch to receive mode + 93 3 } + 94 2 else if (SMB.write_offset < SMB.write_len) + 95 2 { + 96 3 // start writing first buffer + 97 3 // dont crc first byte for atecc508a + 98 3 if (SMB.write_offset) _feed_crc(SMB.write_buf[SMB.write_offset]); + 99 3 SMB0DAT = SMB.write_buf[SMB.write_offset++]; + 100 3 + 101 3 } + 102 2 else if(SMB_WRITING_EXT() && SMB.write_ext_offset < SMB.write_ext_len) + 103 2 { + 104 3 // start writing second optional buffer + 105 3 _feed_crc(SMB.write_ext_buf[SMB.write_ext_offset]); + 106 3 SMB0DAT = SMB.write_ext_buf[SMB.write_ext_offset++]; + 107 3 } + 108 2 else if (SMB_HAS_CRC()) + 109 2 { + 110 3 // write optional CRC + 111 3 switch(SMB.crc_offset++) +C51 COMPILER V9.53.0.0 INTERRUPTS 03/29/2016 00:06:38 PAGE 3 - 112 2 { - 113 3 // write optional CRC - 114 3 switch(SMB.crc_offset++) - 115 3 { - 116 4 case 0: - 117 4 SMB.crc = reverse_bits(SMB.crc); - 118 4 SMB0DAT = (uint8_t)SMB.crc; - 119 4 break; - 120 4 case 1: - 121 4 SMB0DAT = (uint8_t)(SMB.crc>>8); - 122 4 SMB_CRC_CLEAR(); - 123 4 break; - 124 4 } - 125 3 } - 126 2 else - 127 2 { - 128 3 // end transaction - 129 3 SMB0CN0_STO = 1; - 130 3 SMB_BUSY_CLEAR(); - 131 3 SMB.errors = 0; - 132 3 } + 112 3 { + 113 4 case 0: + 114 4 SMB.crc = reverse_bits(SMB.crc); + 115 4 SMB0DAT = (uint8_t)SMB.crc; + 116 4 break; + 117 4 case 1: + 118 4 SMB0DAT = (uint8_t)(SMB.crc>>8); + 119 4 SMB_CRC_CLEAR(); + 120 4 break; + 121 4 } + 122 3 } + 123 2 else + 124 2 { + 125 3 // end transaction + 126 3 SMB0CN0_STO = 1; + 127 3 SMB_BUSY_CLEAR(); + 128 3 SMB.errors = 0; + 129 3 } + 130 2 + 131 2 + 132 2 break; 133 2 - 134 2 - 135 2 break; + 134 2 case SMB_STATUS_MRX: + 135 2 // read in buffer 136 2 - 137 2 case SMB_STATUS_MRX: - 138 2 // read in buffer - 139 2 - 140 2 if (SMB.read_offset < SMB.read_len) - 141 2 { - 142 3 SMB.read_buf[SMB.read_offset] = SMB0DAT; - 143 3 - 144 3 // update with length from packet - 145 3 // warning this is device specific to atecc508a - 146 3 if (SMB.read_offset == 0) - 147 3 { - 148 4 update_from_packet_length(); - 149 4 } - 150 3 - 151 3 if ((SMB.read_offset < (SMB.read_len - 2)) && SMB_HAS_CRC()) - 152 3 { - 153 4 SMB.crc = feed_crc(SMB.crc, SMB.read_buf[SMB.read_offset]); - 154 4 } - 155 3 - 156 3 SMB.read_offset++; - 157 3 SMB0CN0_ACK = 1; - 158 3 } - 159 2 else - 160 2 { - 161 3 // end transaction - 162 3 if (SMB_HAS_CRC()) - 163 3 { - 164 4 SMB.crc = reverse_bits(SMB.crc); - 165 4 } - 166 3 SMB_BUSY_CLEAR(); - 167 3 SMB0CN0_ACK = 0; - 168 3 SMB0CN0_STO = 1; - 169 3 SMB.errors = 0; - 170 3 } - 171 2 - 172 2 break; - 173 2 - 174 2 default: -C51 COMPILER V9.53.0.0 INTERRUPTS 03/28/2016 20:18:25 PAGE 4 + 137 2 if (SMB.read_offset < SMB.read_len) + 138 2 { + 139 3 SMB.read_buf[SMB.read_offset] = SMB0DAT; + 140 3 + 141 3 // update with length from packet + 142 3 // warning this is device specific to atecc508a + 143 3 if (SMB.read_offset == 0) + 144 3 { + 145 4 update_from_packet_length(); + 146 4 } + 147 3 + 148 3 if ((SMB.read_offset < (SMB.read_len - 2)) && SMB_HAS_CRC()) + 149 3 { + 150 4 SMB.crc = feed_crc(SMB.crc, SMB.read_buf[SMB.read_offset]); + 151 4 } + 152 3 + 153 3 SMB.read_offset++; + 154 3 SMB0CN0_ACK = 1; + 155 3 } + 156 2 else + 157 2 { + 158 3 // end transaction + 159 3 if (SMB_HAS_CRC()) + 160 3 { + 161 4 SMB.crc = reverse_bits(SMB.crc); + 162 4 } + 163 3 SMB_BUSY_CLEAR(); + 164 3 SMB0CN0_ACK = 0; + 165 3 SMB0CN0_STO = 1; + 166 3 SMB.errors = 0; + 167 3 } + 168 2 + 169 2 break; + 170 2 + 171 2 default: + 172 2 goto fail; + 173 2 break; + 174 2 +C51 COMPILER V9.53.0.0 INTERRUPTS 03/29/2016 00:06:38 PAGE 4 - 175 2 goto fail; - 176 2 break; - 177 2 - 178 2 } - 179 1 - 180 1 - 181 1 // interrupt flag - 182 1 SMB0CN0_SI = 0; - 183 1 return; - 184 1 - 185 1 fail: - 186 1 u2f_printb("smbus fail ",1,bus); - 187 1 restart_bus(); - 188 1 SMB0CN0_SI = 0; - 189 1 } - 190 - 191 //----------------------------------------------------------------------------- - 192 // TIMER3_ISR - 193 //----------------------------------------------------------------------------- - 194 // - 195 // TIMER3 ISR Content goes here. Remember to clear flag bits: - 196 // TMR3CN::TF3H (Timer # High Byte Overflow Flag) - 197 // TMR3CN::TF3L (Timer # Low Byte Overflow Flag) - 198 // + 175 2 } + 176 1 + 177 1 + 178 1 // interrupt flag + 179 1 SMB0CN0_SI = 0; + 180 1 return; + 181 1 + 182 1 fail: + 183 1 u2f_printb("smbus fail ",1,bus); + 184 1 restart_bus(); + 185 1 SMB0CN0_SI = 0; + 186 1 } + 187 + 188 //----------------------------------------------------------------------------- + 189 // TIMER3_ISR + 190 //----------------------------------------------------------------------------- + 191 // + 192 // TIMER3 ISR Content goes here. Remember to clear flag bits: + 193 // TMR3CN::TF3H (Timer # High Byte Overflow Flag) + 194 // TMR3CN::TF3L (Timer # Low Byte Overflow Flag) + 195 // + 196 // + 197 // A Timer3 interrupt indicates an SMBus SCL low timeout. + 198 // The SMBus is disabled and re-enabled here 199 // - 200 // A Timer3 interrupt indicates an SMBus SCL low timeout. - 201 // The SMBus is disabled and re-enabled here - 202 // - 203 //----------------------------------------------------------------------------- - 204 SI_INTERRUPT (TIMER3_ISR, TIMER3_IRQn) - 205 { - 206 1 restart_bus(); - 207 1 } + 200 //----------------------------------------------------------------------------- + 201 SI_INTERRUPT (TIMER3_ISR, TIMER3_IRQn) + 202 { + 203 1 restart_bus(); + 204 1 } + 205 + 206 + 207 208 - 209 - 210 - 211 MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 633 ---- + CODE SIZE = 584 ---- CONSTANT SIZE = 12 ---- - XDATA SIZE = 23 1 + XDATA SIZE = 21 ---- PDATA SIZE = ---- ---- - DATA SIZE = 4 ---- + DATA SIZE = 5 1 IDATA SIZE = ---- ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- diff --git a/firmware/release/src/SILABS_STARTUP.OBJ b/firmware/release/src/SILABS_STARTUP.OBJ index 92877d3..79897fb 100644 Binary files a/firmware/release/src/SILABS_STARTUP.OBJ and b/firmware/release/src/SILABS_STARTUP.OBJ differ diff --git a/firmware/release/src/SILABS_STARTUP.__ia b/firmware/release/src/SILABS_STARTUP.__ia index 3f681c4..65cc83d 100644 --- a/firmware/release/src/SILABS_STARTUP.__ia +++ b/firmware/release/src/SILABS_STARTUP.__ia @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/SILABS_STARTUP.A51" ERRORPRINT SET (LARGE) DEBUG MACRO NOMOD51 INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) PRINT(.\src/SILABS_STARTUP.lst) COND SYMBOLS PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/SILABS_STARTUP.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/SILABS_STARTUP.A51" ERRORPRINT SET (LARGE) DEBUG MACRO NOMOD51 INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) PRINT(.\src/SILABS_STARTUP.lst) COND SYMBOLS PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/SILABS_STARTUP.OBJ) \ No newline at end of file diff --git a/firmware/release/src/SILABS_STARTUP.lst b/firmware/release/src/SILABS_STARTUP.lst index fd49267..0295033 100644 --- a/firmware/release/src/SILABS_STARTUP.lst +++ b/firmware/release/src/SILABS_STARTUP.lst @@ -1,4 +1,4 @@ -A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/28/2016 20:17:24 PAGE 1 +A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/29/2016 00:06:38 PAGE 1 MACRO ASSEMBLER A51 V8.02b @@ -6,7 +6,7 @@ OBJECT MODULE PLACED IN .\src/SILABS_STARTUP.OBJ ASSEMBLER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\A51.exe /home/pp/apps/u2f-z ero/firmware/src/SILABS_STARTUP.A51 ERRORPRINT SET(LARGE) DEBUG MACRO NOMOD51 INCDIR(/home/pp/apps /u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/ - tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si805 + tests;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/SimplicityStudio_v3/developer/sdks/si805 1/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8U B1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicitySt udio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8 @@ -62,7 +62,7 @@ LOC OBJ LINE SOURCE 44 ; PDATALEN: PDATA memory size <0x0-0xFF> 45 ; The length of PDATA memory in bytes. 0000 46 PDATALEN EQU 0H -A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/28/2016 20:17:24 PAGE 2 +A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/29/2016 00:06:38 PAGE 2 47 ; 48 ; @@ -127,7 +127,7 @@ LOC OBJ LINE SOURCE 00E0 107 ACC DATA 0E0H 00F0 108 B DATA 0F0H 0081 109 SP DATA 81H -A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/28/2016 20:17:24 PAGE 3 +A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/29/2016 00:06:38 PAGE 3 0082 110 DPL DATA 82H 0083 111 DPH DATA 83H @@ -192,7 +192,7 @@ LOC OBJ LINE SOURCE ENDIF 171 172 IF IBPSTACK <> 0 -A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/28/2016 20:17:24 PAGE 4 +A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/29/2016 00:06:38 PAGE 4 EXTRN DATA (?C_IBP) @@ -226,7 +226,7 @@ LOC OBJ LINE SOURCE 0009 020000 F 201 LJMP ?C_START 202 203 END -A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/28/2016 20:17:24 PAGE 5 +A51 MACRO ASSEMBLER _HOME_PP_APPS_U2F_ZERO_FIRMWARE_SRC_SILAB 03/29/2016 00:06:38 PAGE 5 SYMBOL TABLE LISTING ------ ----- ------- diff --git a/firmware/release/src/atecc508a.OBJ b/firmware/release/src/atecc508a.OBJ index 285a17d..bf06b7a 100644 Binary files a/firmware/release/src/atecc508a.OBJ and b/firmware/release/src/atecc508a.OBJ differ diff --git a/firmware/release/src/atecc508a.__i b/firmware/release/src/atecc508a.__i index b58cef7..0d079b5 100644 --- a/firmware/release/src/atecc508a.__i +++ b/firmware/release/src/atecc508a.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/atecc508a.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/atecc508a.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/atecc508a.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/atecc508a.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/atecc508a.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/atecc508a.OBJ) \ No newline at end of file diff --git a/firmware/release/src/atecc508a.lst b/firmware/release/src/atecc508a.lst index 6753eb0..a420a21 100644 --- a/firmware/release/src/atecc508a.lst +++ b/firmware/release/src/atecc508a.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 ATECC508A 03/28/2016 20:18:25 PAGE 1 +C51 COMPILER V9.53.0.0 ATECC508A 03/29/2016 00:06:38 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE ATECC508A @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\src/atecc508a.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/atecc508a.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTV -ECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/ - -apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si80 - -51/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/Simplicit - -yStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_ - -usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityS - -tudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/atecc508a.lst) COND PAGEWIDTH( - -120) PAGELENGTH(65) OBJECT(.\src/atecc508a.OBJ) + -apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Si + -mplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device + -/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/develo + -per/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8 + -_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/atecc508a.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/atecc508a. + -OBJ) line level source @@ -63,7 +63,7 @@ line level source 46 { 47 1 static data uint8_t params = 0x1; 48 1 smb_write( ATECC508A_ADDR, ¶ms, sizeof(params)); -C51 COMPILER V9.53.0.0 ATECC508A 03/28/2016 20:18:25 PAGE 2 +C51 COMPILER V9.53.0.0 ATECC508A 03/29/2016 00:06:38 PAGE 2 49 1 } 50 @@ -128,7 +128,7 @@ line level source 109 2 d = 50; 110 2 break; 111 2 case ATECC_CMD_GENKEY: -C51 COMPILER V9.53.0.0 ATECC508A 03/28/2016 20:18:25 PAGE 3 +C51 COMPILER V9.53.0.0 ATECC508A 03/29/2016 00:06:38 PAGE 3 112 2 d = 100; 113 2 break; @@ -193,7 +193,7 @@ line level source 172 { 173 1 uint8_t buf[7]; 174 1 struct atecc_response res; -C51 COMPILER V9.53.0.0 ATECC508A 03/28/2016 20:18:25 PAGE 4 +C51 COMPILER V9.53.0.0 ATECC508A 03/29/2016 00:06:38 PAGE 4 175 1 176 1 uint8_t * dstbuf = srcbuf; @@ -258,7 +258,7 @@ line level source } static void atecc_setup_config(uint8_t* buf) -C51 COMPILER V9.53.0.0 ATECC508A 03/28/2016 20:18:25 PAGE 5 +C51 COMPILER V9.53.0.0 ATECC508A 03/29/2016 00:06:38 PAGE 5 { struct atecc_response res; @@ -323,7 +323,7 @@ line level source void atecc_setup_init(uint8_t * buf) { if (!is_locked(buf)) -C51 COMPILER V9.53.0.0 ATECC508A 03/28/2016 20:18:25 PAGE 6 +C51 COMPILER V9.53.0.0 ATECC508A 03/29/2016 00:06:38 PAGE 6 { u2f_prints("setting up config...\r\n"); @@ -355,8 +355,8 @@ line level source atecc_send_recv(ATECC_CMD_READ, ATECC_RW_CONFIG | ATECC_RW_EXT, 0, NULL, 0, buf, 40, &res); - memmove(usbres.buf+1, res.buf, 14); - usbres.buf[0] = 14; + memmove(usbres.buf+1, res.buf, 15); + usbres.buf[0] = 15; break; case U2F_CONFIG_IS_BUILD: @@ -388,7 +388,7 @@ line level source } break; case U2F_CONFIG_GENKEY: -C51 COMPILER V9.53.0.0 ATECC508A 03/28/2016 20:18:25 PAGE 7 +C51 COMPILER V9.53.0.0 ATECC508A 03/29/2016 00:06:38 PAGE 7 u2f_prints("U2F_CONFIG_GENKEY\r\n"); @@ -412,7 +412,7 @@ line level source MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 805 ---- + CODE SIZE = 799 ---- CONSTANT SIZE = 11 ---- XDATA SIZE = 2 52 PDATA SIZE = ---- ---- diff --git a/firmware/release/src/bsp.OBJ b/firmware/release/src/bsp.OBJ index d8e10ac..b4363fc 100644 Binary files a/firmware/release/src/bsp.OBJ and b/firmware/release/src/bsp.OBJ differ diff --git a/firmware/release/src/bsp.__i b/firmware/release/src/bsp.__i index 0f852a1..040ba1c 100644 --- a/firmware/release/src/bsp.__i +++ b/firmware/release/src/bsp.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/bsp.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/bsp.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/bsp.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/bsp.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/bsp.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/bsp.OBJ) \ No newline at end of file diff --git a/firmware/release/src/bsp.lst b/firmware/release/src/bsp.lst index 2690615..2967dbb 100644 --- a/firmware/release/src/bsp.lst +++ b/firmware/release/src/bsp.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 BSP 03/28/2016 20:18:26 PAGE 1 +C51 COMPILER V9.53.0.0 BSP 03/29/2016 00:06:39 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE BSP @@ -6,12 +6,11 @@ OBJECT MODULE PLACED IN .\src/bsp.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/bsp.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR( -0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u - -2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/ - -/Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudi - -o_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/in - -c;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_ - -v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/bsp.lst) COND PAGEWIDTH(120) PAGELEN - -GTH(65) OBJECT(.\src/bsp.OBJ) + -2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Simplici + -tyStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8U + -B1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sd + -ks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_asser + -t) REGFILE(u2f-firmware.ORC) PRINT(.\src/bsp.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/bsp.OBJ) line level source @@ -63,9 +62,9 @@ line level source 45 46 47 void dump_hex(uint8_t* hex, uint8_t len) -C51 COMPILER V9.53.0.0 BSP 03/28/2016 20:18:26 PAGE 2 - 48 { +C51 COMPILER V9.53.0.0 BSP 03/29/2016 00:06:39 PAGE 2 + 49 1 uint8_t i; 50 1 for (i=0 ; i < len ; i++) 51 1 { @@ -128,9 +127,9 @@ line level source 105 1 do 106 1 { 107 2 *--*snum = __digits[i & 0xf]; -C51 COMPILER V9.53.0.0 BSP 03/28/2016 20:18:26 PAGE 3 - 108 2 i >>= 4; +C51 COMPILER V9.53.0.0 BSP 03/29/2016 00:06:39 PAGE 3 + 109 2 }while(i); 110 1 } 111 @@ -193,9 +192,9 @@ line level source 168 2 u2f_prints(" "); 169 2 } 170 1 u2f_prints("\r\n"); -C51 COMPILER V9.53.0.0 BSP 03/28/2016 20:18:26 PAGE 4 - 171 1 va_end(args); +C51 COMPILER V9.53.0.0 BSP 03/29/2016 00:06:39 PAGE 4 + 172 1 } 173 174 void u2f_printl(const char * tag, uint8_t c, ...) @@ -258,9 +257,9 @@ line level source -C51 COMPILER V9.53.0.0 BSP 03/28/2016 20:18:26 PAGE 5 - +C51 COMPILER V9.53.0.0 BSP 03/29/2016 00:06:39 PAGE 5 + #endif 236 237 diff --git a/firmware/release/src/callback.OBJ b/firmware/release/src/callback.OBJ index 9e0221e..6bc2558 100644 Binary files a/firmware/release/src/callback.OBJ and b/firmware/release/src/callback.OBJ differ diff --git a/firmware/release/src/callback.__i b/firmware/release/src/callback.__i index 8ad5835..7f148c4 100644 --- a/firmware/release/src/callback.__i +++ b/firmware/release/src/callback.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/callback.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/callback.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/callback.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/callback.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/callback.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/callback.OBJ) \ No newline at end of file diff --git a/firmware/release/src/callback.lst b/firmware/release/src/callback.lst index 0d8bc0e..68987e6 100644 --- a/firmware/release/src/callback.lst +++ b/firmware/release/src/callback.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 CALLBACK 03/28/2016 20:18:26 PAGE 1 +C51 COMPILER V9.53.0.0 CALLBACK 03/29/2016 00:06:39 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE CALLBACK @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\src/callback.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/callback.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVE -CTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/a - -pps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si805 - -1/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/Simplicity - -Studio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_u - -sb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicitySt - -udio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/callback.lst) COND PAGEWIDTH(12 - -0) PAGELENGTH(65) OBJECT(.\src/callback.OBJ) + -pps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Sim + -plicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/ + -EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/develop + -er/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_ + -assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/callback.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/callback.OBJ + -) line level source @@ -63,7 +63,7 @@ line level source 46 USBD_State_TypeDef newState) { 47 1 u2f_print_ev("USBD_DeviceStateChangeCb\r\n"); 48 1 } -C51 COMPILER V9.53.0.0 CALLBACK 03/28/2016 20:18:26 PAGE 2 +C51 COMPILER V9.53.0.0 CALLBACK 03/29/2016 00:06:39 PAGE 2 *** WARNING C280 IN LINE 45 OF /home/pp/apps/u2f-zero/firmware/src/callback.c: 'oldState': unreferenced local variable *** WARNING C280 IN LINE 46 OF /home/pp/apps/u2f-zero/firmware/src/callback.c: 'newState': unreferenced local variable @@ -128,7 +128,7 @@ line level source 107 3 case USB_HID_GET_REPORT: 108 3 109 3 break; -C51 COMPILER V9.53.0.0 CALLBACK 03/28/2016 20:18:26 PAGE 3 +C51 COMPILER V9.53.0.0 CALLBACK 03/29/2016 00:06:39 PAGE 3 110 3 111 3 case USB_HID_SET_IDLE: @@ -193,7 +193,7 @@ line level source MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 465 ---- -C51 COMPILER V9.53.0.0 CALLBACK 03/28/2016 20:18:26 PAGE 4 +C51 COMPILER V9.53.0.0 CALLBACK 03/29/2016 00:06:39 PAGE 4 CONSTANT SIZE = ---- ---- XDATA SIZE = 65 11 diff --git a/firmware/release/src/descriptors.OBJ b/firmware/release/src/descriptors.OBJ index 11d22c0..80b8d57 100644 Binary files a/firmware/release/src/descriptors.OBJ and b/firmware/release/src/descriptors.OBJ differ diff --git a/firmware/release/src/descriptors.__i b/firmware/release/src/descriptors.__i index ad3f42a..226c1ee 100644 --- a/firmware/release/src/descriptors.__i +++ b/firmware/release/src/descriptors.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/descriptors.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/descriptors.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/descriptors.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/descriptors.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/descriptors.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/descriptors.OBJ) \ No newline at end of file diff --git a/firmware/release/src/descriptors.lst b/firmware/release/src/descriptors.lst index 5d83b66..4f87476 100644 --- a/firmware/release/src/descriptors.lst +++ b/firmware/release/src/descriptors.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 DESCRIPTORS 03/28/2016 20:17:25 PAGE 1 +C51 COMPILER V9.53.0.0 DESCRIPTORS 03/29/2016 00:06:39 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE DESCRIPTORS @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\src/descriptors.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/descriptors.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) IN -TVECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/p - -p/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si - -8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/Simplic - -ityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm - -8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/Simplicit - -yStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/descriptors.lst) COND PAGEWI - -DTH(120) PAGELENGTH(65) OBJECT(.\src/descriptors.OBJ) + -p/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/ + -SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Devi + -ce/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/deve + -loper/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/ef + -m8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/descriptors.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/descri + -ptors.OBJ) line level source @@ -63,7 +63,7 @@ line level source 46 0x75, 0x08, // REPORT_SIZE (8) 47 0x95, HID_PACKET_SIZE, // REPORT_COUNT (64) 48 0x91, 0x02, // OUTPUT (Data,Var,Abs) -C51 COMPILER V9.53.0.0 DESCRIPTORS 03/28/2016 20:17:25 PAGE 2 +C51 COMPILER V9.53.0.0 DESCRIPTORS 03/29/2016 00:06:39 PAGE 2 49 50 @@ -128,7 +128,7 @@ line level source 109 sizeof( ReportDescriptor0 ),// wDescriptorLength(LSB) 110 sizeof( ReportDescriptor0 )>>8,// wDescriptorLength(MSB) 111 -C51 COMPILER V9.53.0.0 DESCRIPTORS 03/28/2016 20:17:25 PAGE 3 +C51 COMPILER V9.53.0.0 DESCRIPTORS 03/29/2016 00:06:39 PAGE 3 112 //Endpoint 1 IN Descriptor 113 USB_ENDPOINT_DESCSIZE,// bLength @@ -193,7 +193,7 @@ line level source MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = ---- ---- -C51 COMPILER V9.53.0.0 DESCRIPTORS 03/28/2016 20:17:25 PAGE 4 +C51 COMPILER V9.53.0.0 DESCRIPTORS 03/29/2016 00:06:39 PAGE 4 CONSTANT SIZE = 186 ---- XDATA SIZE = ---- ---- diff --git a/firmware/release/src/eeprom.OBJ b/firmware/release/src/eeprom.OBJ index f2135b4..47d0dfb 100644 Binary files a/firmware/release/src/eeprom.OBJ and b/firmware/release/src/eeprom.OBJ differ diff --git a/firmware/release/src/eeprom.__i b/firmware/release/src/eeprom.__i index e47672e..ca1d0e1 100644 --- a/firmware/release/src/eeprom.__i +++ b/firmware/release/src/eeprom.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/eeprom.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/eeprom.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/eeprom.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/eeprom.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/eeprom.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/eeprom.OBJ) \ No newline at end of file diff --git a/firmware/release/src/eeprom.lst b/firmware/release/src/eeprom.lst index 499cc4f..23fad5b 100644 --- a/firmware/release/src/eeprom.lst +++ b/firmware/release/src/eeprom.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 EEPROM 03/28/2016 20:17:25 PAGE 1 +C51 COMPILER V9.53.0.0 EEPROM 03/29/2016 00:06:39 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE EEPROM @@ -6,12 +6,11 @@ OBJECT MODULE PLACED IN .\src/eeprom.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/eeprom.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECT -OR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/app - -s/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/ - -v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicitySt - -udio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb - -/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStud - -io_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/eeprom.lst) COND PAGEWIDTH(120) P - -AGELENGTH(65) OBJECT(.\src/eeprom.OBJ) + -s/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Simpl + -icityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EF + -M8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer + -/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_as + -sert) REGFILE(u2f-firmware.ORC) PRINT(.\src/eeprom.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/eeprom.OBJ) line level source @@ -63,9 +62,9 @@ line level source 46 2 IE_EA = 0; 47 2 // Enable VDD monitor 48 2 VDM0CN = 0x80; -C51 COMPILER V9.53.0.0 EEPROM 03/28/2016 20:17:25 PAGE 2 - 49 2 RSTSRC = 0x02; +C51 COMPILER V9.53.0.0 EEPROM 03/29/2016 00:06:39 PAGE 2 + 50 2 51 2 // unlock key 52 2 FLKEY = 0xA5; diff --git a/firmware/release/src/i2c.OBJ b/firmware/release/src/i2c.OBJ index d9bd46e..678360e 100644 Binary files a/firmware/release/src/i2c.OBJ and b/firmware/release/src/i2c.OBJ differ diff --git a/firmware/release/src/i2c.__i b/firmware/release/src/i2c.__i index 0e39fa3..e0e2d0c 100644 --- a/firmware/release/src/i2c.__i +++ b/firmware/release/src/i2c.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/i2c.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/i2c.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/i2c.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/i2c.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/i2c.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/i2c.OBJ) \ No newline at end of file diff --git a/firmware/release/src/i2c.lst b/firmware/release/src/i2c.lst index fd9fa4d..ff7bd5a 100644 --- a/firmware/release/src/i2c.lst +++ b/firmware/release/src/i2c.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 I2C 03/28/2016 20:18:26 PAGE 1 +C51 COMPILER V9.53.0.0 I2C 03/29/2016 00:06:39 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE I2C @@ -6,12 +6,11 @@ OBJECT MODULE PLACED IN .\src/i2c.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/i2c.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR( -0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u - -2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/ - -/Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudi - -o_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/in - -c;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_ - -v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/i2c.lst) COND PAGEWIDTH(120) PAGELEN - -GTH(65) OBJECT(.\src/i2c.OBJ) + -2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Simplici + -tyStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8U + -B1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sd + -ks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_asser + -t) REGFILE(u2f-firmware.ORC) PRINT(.\src/i2c.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/i2c.OBJ) line level source @@ -63,9 +62,9 @@ line level source 46 47 48 void smb_write (uint8_t addr, uint8_t* buf, uint8_t len) -C51 COMPILER V9.53.0.0 I2C 03/28/2016 20:18:26 PAGE 2 - 49 { +C51 COMPILER V9.53.0.0 I2C 03/29/2016 00:06:39 PAGE 2 + 50 1 if (while_busy()) return; 51 1 52 1 SMB_FLAGS = SMB_WRITE | SMB_BUSY | SMB.preflags; @@ -127,10 +126,10 @@ line level source MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 548 ---- -C51 COMPILER V9.53.0.0 I2C 03/28/2016 20:18:26 PAGE 3 - + CODE SIZE = 536 ---- CONSTANT SIZE = ---- ---- +C51 COMPILER V9.53.0.0 I2C 03/29/2016 00:06:39 PAGE 3 + XDATA SIZE = ---- 14 PDATA SIZE = ---- ---- DATA SIZE = ---- ---- diff --git a/firmware/release/src/idle.OBJ b/firmware/release/src/idle.OBJ index b64a4e5..ad01669 100644 Binary files a/firmware/release/src/idle.OBJ and b/firmware/release/src/idle.OBJ differ diff --git a/firmware/release/src/idle.__i b/firmware/release/src/idle.__i index 5ef9036..13d86fd 100644 --- a/firmware/release/src/idle.__i +++ b/firmware/release/src/idle.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/idle.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/idle.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/idle.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/idle.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/idle.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/idle.OBJ) \ No newline at end of file diff --git a/firmware/release/src/idle.lst b/firmware/release/src/idle.lst index d2afa56..06d8487 100644 --- a/firmware/release/src/idle.lst +++ b/firmware/release/src/idle.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 IDLE 03/28/2016 20:17:25 PAGE 1 +C51 COMPILER V9.53.0.0 IDLE 03/29/2016 00:06:39 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE IDLE @@ -6,12 +6,11 @@ OBJECT MODULE PLACED IN .\src/idle.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/idle.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR -(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/ - -u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3 - -//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStud - -io_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/i - -nc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio - -_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/idle.lst) COND PAGEWIDTH(120) PAGEL - -ENGTH(65) OBJECT(.\src/idle.OBJ) + -u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Simplic + -ityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8 + -UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/s + -dks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_asse + -rt) REGFILE(u2f-firmware.ORC) PRINT(.\src/idle.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/idle.OBJ) line level source @@ -63,9 +62,9 @@ line level source 46 2 idleTimerStart(); 47 2 return 1; 48 2 } -C51 COMPILER V9.53.0.0 IDLE 03/28/2016 20:17:25 PAGE 2 - 49 1 return 0; +C51 COMPILER V9.53.0.0 IDLE 03/29/2016 00:06:39 PAGE 2 + 50 1 } 51 52 void idleTimerSet(uint8_t rate) diff --git a/firmware/release/src/main.OBJ b/firmware/release/src/main.OBJ index 3ebf106..8809ed7 100644 Binary files a/firmware/release/src/main.OBJ and b/firmware/release/src/main.OBJ differ diff --git a/firmware/release/src/main.__i b/firmware/release/src/main.__i index ea08671..1f40265 100644 --- a/firmware/release/src/main.__i +++ b/firmware/release/src/main.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/main.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/main.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/main.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/main.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/main.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/main.OBJ) \ No newline at end of file diff --git a/firmware/release/src/main.lst b/firmware/release/src/main.lst index c896859..563d01d 100644 --- a/firmware/release/src/main.lst +++ b/firmware/release/src/main.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 MAIN 03/28/2016 20:19:13 PAGE 1 +C51 COMPILER V9.53.0.0 MAIN 03/29/2016 00:06:39 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE MAIN @@ -6,12 +6,11 @@ OBJECT MODULE PLACED IN .\src/main.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/main.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR -(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/ - -u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3 - -//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStud - -io_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/i - -nc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio - -_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/main.lst) COND PAGEWIDTH(120) PAGEL - -ENGTH(65) OBJECT(.\src/main.OBJ) + -u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Simplic + -ityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8 + -UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/s + -dks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_asse + -rt) REGFILE(u2f-firmware.ORC) PRINT(.\src/main.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/main.OBJ) line level source @@ -59,136 +58,143 @@ line level source 42 1 } 43 44 - 45 //void dump_eeprom() - 46 //{ - 47 // // 0xF800 - 0xFB7F - 48 // uint16_t i = 0xF800; -C51 COMPILER V9.53.0.0 MAIN 03/28/2016 20:19:13 PAGE 2 + 45 void rgb(uint8_t r, uint8_t g, uint8_t b) + 46 { + 47 1 LED_B(b); + 48 1 LED_G(g); + 49 1 LED_R(r); +C51 COMPILER V9.53.0.0 MAIN 03/29/2016 00:06:39 PAGE 2 - 49 // uint8_t eep; - 50 // for (; i <= 0xF800 + 4 * 16; i++) - 51 // { - 52 // eeprom_read(i,&eep,1); - 53 // u2f_putb(eep); - 54 // u2f_prints(" "); - 55 // } - 56 // u2f_prints("\r\n"); - 57 //} - 58 - 59 int8_t test_app() - 60 { - 61 1 //u2f_printl("count: ",1,u2f_count()); - 62 1 return 0; - 63 1 } - 64 - 65 #define ms_since(ms,num) (((uint16_t)get_ms() - (ms)) >= num ? (1|(ms=(uint16_t)get_ms())):0) - 66 - 67 - 68 - 69 int16_t main(void) { - 70 1 - 71 1 data uint8_t i = 0; - 72 1 data uint16_t last_ms = get_ms(); - 73 1 data uint16_t ms_heart; - 74 1 data uint16_t ms_wink; - 75 1 data uint8_t winks = 0; - 76 1 uint8_t leds = 0; - 77 1 uint16_t button = 0; - 78 1 - 79 1 enter_DefaultMode_from_RESET(); - 80 1 init(&appdata); - 81 1 - 82 1 // STDIO library requires TI to print - 83 1 SCON0_TI = 1; - 84 1 - 85 1 // Enable interrupts - 86 1 IE_EA = 1; - 87 1 - 88 1 u2f_prints("U2F ZERO\r\n"); - 89 1 - 90 1 run_tests(); - 91 1 atecc_setup_init(appdata.tmp); - 92 1 - 93 1 - 94 1 while (1) { - 95 2 - 96 2 if (ms_since(ms_heart,500)) - 97 2 { - 98 3 u2f_printl("ms ", 1, get_ms()); - 99 3 button = U2F_BUTTON; - 100 3 u2f_printx("button: ",1,button); - 101 3 LED_G = !LED_G; - 102 3 test_app(); - 103 3 } - 104 2 - 105 2 - 106 2 if (!USBD_EpIsBusy(EP1OUT) && !USBD_EpIsBusy(EP1IN) && appdata.state != APP_HID_MSG) - 107 2 { - 108 3 USBD_Read(EP1OUT, hidmsgbuf, sizeof(hidmsgbuf), true); - 109 3 // u2f_prints("read added\r\n"); - 110 3 } - 111 2 -C51 COMPILER V9.53.0.0 MAIN 03/28/2016 20:19:13 PAGE 3 + 50 1 } + 51 + 52 + 53 #define ms_since(ms,num) (((uint16_t)get_ms() - (ms)) >= num ? (1|(ms=(uint16_t)get_ms())):0) + 54 + 55 + 56 + 57 int16_t main(void) { + 58 1 + 59 1 uint16_t ms_heart; + 60 1 uint16_t ms_wink; + 61 1 uint16_t ms_grad; + 62 1 uint8_t winks = 0; + 63 1 uint8_t grad_dir = 0; + 64 1 uint8_t light = 0; + 65 1 + 66 1 enter_DefaultMode_from_RESET(); + 67 1 init(&appdata); + 68 1 + 69 1 // STDIO library requires TI to print + 70 1 SCON0_TI = 1; + 71 1 + 72 1 // Enable interrupts + 73 1 IE_EA = 1; + 74 1 + 75 1 u2f_prints("U2F ZERO\r\n"); + 76 1 + 77 1 run_tests(); + 78 1 atecc_setup_init(appdata.tmp); + 79 1 + 80 1 + 81 1 while (1) { + 82 2 + 83 2 if (ms_since(ms_heart,500)) + 84 2 { + 85 3 u2f_printl("ms ", 1, get_ms()); + 86 3 } + 87 2 + 88 2 + 89 2 if (!USBD_EpIsBusy(EP1OUT) && !USBD_EpIsBusy(EP1IN) && appdata.state != APP_HID_MSG) + 90 2 { + 91 3 USBD_Read(EP1OUT, hidmsgbuf, sizeof(hidmsgbuf), true); + 92 3 } + 93 2 + 94 2 switch(appdata.state) + 95 2 { + 96 3 case APP_NOTHING: + 97 3 if (ms_since(ms_grad, 10)) + 98 3 { + 99 4 if (light == 90) + 100 4 { + 101 5 grad_dir = 0; + 102 5 } + 103 4 else if (light == 0) + 104 4 { + 105 5 grad_dir = 1; + 106 5 } + 107 4 if (grad_dir) + 108 4 if (U2F_BUTTON_IS_PRESSED()) + 109 4 rgb(0,0,light++); + 110 4 else + 111 4 rgb(0,light++,0); + 112 4 else +C51 COMPILER V9.53.0.0 MAIN 03/29/2016 00:06:39 PAGE 3 - 112 2 switch(appdata.state) - 113 2 { - 114 3 case APP_NOTHING: - 115 3 break; - 116 3 case APP_HID_MSG: - 117 3 #ifndef ATECC_SETUP_DEVICE - 118 3 u2f_hid_request(appdata.hid_msg); - 119 3 #else + 113 4 if (U2F_BUTTON_IS_PRESSED()) + 114 4 rgb(0,0,light--); + 115 4 else + 116 4 rgb(0,light--,0); + 117 4 } + 118 3 break; + 119 3 case APP_HID_MSG: + 120 3 #ifndef ATECC_SETUP_DEVICE + 121 3 u2f_hid_request(appdata.hid_msg); + 122 3 #else atecc_setup_device((struct config_msg*)appdata.hid_msg); #endif - 122 3 if (appdata.state == APP_HID_MSG) - 123 3 appdata.state = APP_NOTHING; - 124 3 break; - 125 3 case APP_WINK: - 126 3 LED_B = 0; - 127 3 ms_wink = get_ms(); - 128 3 appdata.state = _APP_WINK; - 129 3 break; - 130 3 case _APP_WINK: - 131 3 LED_G = 1; - 132 3 LED_R = 1; - 133 3 if (ms_since(ms_wink,150)) - 134 3 { - 135 4 LED_B = !LED_B; - 136 4 winks++; - 137 4 } - 138 3 if (winks == 5) - 139 3 { - 140 4 winks = 0; - 141 4 appdata.state = APP_NOTHING; - 142 4 } - 143 3 break; - 144 3 } - 145 2 - 146 2 if (appdata.error) - 147 2 { - 148 3 u2f_printb("error: ", 1, appdata.error); - 149 3 appdata.error = 0; - 150 3 } - 151 2 - 152 2 - 153 2 } - 154 1 } - 155 - 156 + 125 3 if (appdata.state == APP_HID_MSG) + 126 3 appdata.state = APP_NOTHING; + 127 3 break; + 128 3 case APP_WINK: + 129 3 rgb(0,0,150); + 130 3 light = 150; + 131 3 ms_wink = get_ms(); + 132 3 appdata.state = _APP_WINK; + 133 3 break; + 134 3 case _APP_WINK: + 135 3 + 136 3 if (ms_since(ms_wink,150)) + 137 3 { + 138 4 rgb(0,0,light); + 139 4 light = light == 0 ? 150 : 0; + 140 4 winks++; + 141 4 } + 142 3 if (winks == 5) + 143 3 { + 144 4 winks = 0; + 145 4 appdata.state = APP_NOTHING; + 146 4 } + 147 3 break; + 148 3 } + 149 2 + 150 2 if (appdata.error) + 151 2 { + 152 3 u2f_printb("error: ", 1, appdata.error); + 153 3 appdata.error = 0; + 154 3 rgb(200,0,0); + 155 3 } + 156 2 + 157 2 + 158 2 } + 159 1 } + 160 + 161 MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 369 ---- - CONSTANT SIZE = 32 ---- - XDATA SIZE = ---- 3 + CODE SIZE = 507 ---- + CONSTANT SIZE = 23 ---- + XDATA SIZE = ---- 9 PDATA SIZE = ---- ---- - DATA SIZE = 75 8 + DATA SIZE = 75 ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- +C51 COMPILER V9.53.0.0 MAIN 03/29/2016 00:06:39 PAGE 4 + END OF MODULE INFORMATION. diff --git a/firmware/release/src/subdir.mk b/firmware/release/src/subdir.mk index d63f7a7..938ee20 100644 --- a/firmware/release/src/subdir.mk +++ b/firmware/release/src/subdir.mk @@ -63,15 +63,19 @@ src/bsp.OBJ: /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB src/callback.OBJ: /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/apps/u2f-zero/firmware/inc/idle.h /home/pp/apps/u2f-zero/firmware/inc/app.h /home/pp/apps/u2f-zero/firmware/inc/bsp.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/apps/u2f-zero/firmware/inc/u2f_hid.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h +src/descriptors.OBJ: /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h + +src/eeprom.OBJ: /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/apps/u2f-zero/firmware/inc/eeprom.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h /home/pp/apps/u2f-zero/firmware/inc/app.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/apps/u2f-zero/firmware/inc/u2f_hid.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h + src/i2c.OBJ: /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/apps/u2f-zero/firmware/inc/i2c.h /home/pp/apps/u2f-zero/firmware/inc/bsp.h /home/pp/apps/u2f-zero/firmware/inc/app.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/apps/u2f-zero/firmware/inc/u2f_hid.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h src/idle.OBJ: /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/apps/u2f-zero/firmware/inc/idle.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h src/main.OBJ: /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/apps/u2f-zero/firmware/inc/atecc508a.h /home/pp/apps/u2f-zero/firmware/inc/InitDevice.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/apps/u2f-zero/firmware/inc/eeprom.h /home/pp/apps/u2f-zero/firmware/inc/idle.h /home/pp/apps/u2f-zero/firmware/inc/bsp.h /home/pp/apps/u2f-zero/firmware/inc/app.h /home/pp/apps/u2f-zero/firmware/inc/i2c.h /home/pp/apps/u2f-zero/firmware/inc/u2f_hid.h /home/pp/apps/u2f-zero/firmware/inc/u2f.h /home/pp/apps/u2f-zero/firmware/tests/tests.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h -src/u2f-atecc.OBJ: /home/pp/apps/u2f-zero/firmware/inc/app.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/apps/u2f-zero/firmware/inc/u2f_hid.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h +src/u2f-atecc.OBJ: /home/pp/apps/u2f-zero/firmware/inc/app.h /home/pp/apps/u2f-zero/firmware/inc/bsp.h /home/pp/apps/u2f-zero/firmware/inc/u2f.h /home/pp/apps/u2f-zero/firmware/inc/u2f_hid.h /home/pp/apps/u2f-zero/firmware/inc/eeprom.h /home/pp/apps/u2f-zero/firmware/inc/atecc508a.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h -src/u2f.OBJ: /home/pp/apps/u2f-zero/firmware/inc/app.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/apps/u2f-zero/firmware/inc/u2f_hid.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h +src/u2f.OBJ: /home/pp/apps/u2f-zero/firmware/inc/app.h /home/pp/apps/u2f-zero/firmware/inc/bsp.h /home/pp/apps/u2f-zero/firmware/inc/u2f.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/apps/u2f-zero/firmware/inc/u2f_hid.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h src/u2f_hid.OBJ: /home/pp/apps/u2f-zero/firmware/inc/app.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdint.h /home/pp/apps/u2f-zero/firmware/inc/bsp.h /home/pp/apps/u2f-zero/firmware/inc/u2f_hid.h /home/pp/apps/u2f-zero/firmware/inc/u2f.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Register_Enums.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Lib/efm8_usb/inc/efm8_usb.h /home/pp/apps/u2f-zero/firmware/inc/descriptors.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/inc/SI_EFM8UB1_Defs.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/si_toolchain.h /home/pp/apps/u2f-zero/firmware/inc/config/usbconfig.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/stdbool.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/EFM8UB1/peripheral_driver/inc/usb_0.h /home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/Device/shared/si8051Base/endian.h /home/pp/apps/u2f-zero/firmware/inc/config/efm8_config.h diff --git a/firmware/release/src/u2f-atecc.OBJ b/firmware/release/src/u2f-atecc.OBJ index c51c082..cc62272 100644 Binary files a/firmware/release/src/u2f-atecc.OBJ and b/firmware/release/src/u2f-atecc.OBJ differ diff --git a/firmware/release/src/u2f-atecc.__i b/firmware/release/src/u2f-atecc.__i index 8831ac4..586a3a7 100644 --- a/firmware/release/src/u2f-atecc.__i +++ b/firmware/release/src/u2f-atecc.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/u2f-atecc.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/u2f-atecc.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/u2f-atecc.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/u2f-atecc.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/u2f-atecc.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/u2f-atecc.OBJ) \ No newline at end of file diff --git a/firmware/release/src/u2f-atecc.lst b/firmware/release/src/u2f-atecc.lst index b6cde43..0541245 100644 --- a/firmware/release/src/u2f-atecc.lst +++ b/firmware/release/src/u2f-atecc.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 U2F_ATECC 03/28/2016 20:18:26 PAGE 1 +C51 COMPILER V9.53.0.0 U2F_ATECC 03/29/2016 00:06:39 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE U2F_ATECC @@ -6,12 +6,12 @@ OBJECT MODULE PLACED IN .\src/u2f-atecc.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/u2f-atecc.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTV -ECTOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/ - -apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si80 - -51/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/Simplicit - -yStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_ - -usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityS - -tudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/u2f-atecc.lst) COND PAGEWIDTH( - -120) PAGELENGTH(65) OBJECT(.\src/u2f-atecc.OBJ) + -apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Si + -mplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device + -/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/develo + -per/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8 + -_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/u2f-atecc.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/u2f-atecc. + -OBJ) line level source @@ -63,7 +63,7 @@ line level source 46 1 } 47 48 void u2f_init() -C51 COMPILER V9.53.0.0 U2F_ATECC 03/28/2016 20:18:26 PAGE 2 +C51 COMPILER V9.53.0.0 U2F_ATECC 03/29/2016 00:06:39 PAGE 2 49 { 50 1 uint8_t i,j; @@ -74,240 +74,260 @@ line level source 55 1 // initialize key handles 56 1 if (key_store.num_keys != U2F_NUM_KEYS) 57 1 { - 58 2 u2f_prints("init key handles\r\n"); - 59 2 key_store.num_keys = U2F_NUM_KEYS; - 60 2 key_store.valid_keys = 0; - 61 2 key_store.num_issued = 0; - 62 2 flush_key_store(); - 63 2 - 64 2 for (i=0; i < 2; i++) - 65 2 { - 66 3 atecc_send_recv(ATECC_CMD_RNG,ATECC_RNG_P1,ATECC_RNG_P2, - 67 3 NULL, 0, - 68 3 appdata.tmp, - 69 3 sizeof(appdata.tmp), &res); - 70 3 for (j=0; j < U2F_NUM_KEYS/2; j++) res.buf[j * U2F_KEY_HANDLE_SIZE] = j+1 + i*U2F_NUM_KEYS/2; - 71 3 eeprom_write(U2F_KEYS_ADDR + i * (U2F_KEY_HANDLE_SIZE * U2F_NUM_KEYS/2), - 72 3 res.buf, U2F_KEY_HANDLE_SIZE * U2F_NUM_KEYS/2); - 73 3 } - 74 2 - 75 2 } - 76 1 } - 77 - 78 void u2f_response_writeback(uint8_t * buf, uint16_t len) - 79 { - 80 1 u2f_hid_writeback(buf, len); - 81 1 } - 82 - 83 void u2f_response_flush() - 84 { - 85 1 u2f_hid_flush(); - 86 1 } - 87 - 88 void u2f_response_start() - 89 { - 90 1 } - 91 - 92 int8_t u2f_get_user_feedback() - 93 { - 94 1 return 0; - 95 1 } - 96 - 97 static uint8_t shabuf[70]; - 98 static uint8_t shaoffset = 0; - 99 static struct atecc_response res_digest; - 100 - 101 void u2f_sha256_start() - 102 { - 103 1 shaoffset = 0; - 104 1 atecc_send_recv(ATECC_CMD_SHA, - 105 1 ATECC_SHA_START, 0,NULL,0, - 106 1 appdata.tmp, sizeof(appdata.tmp), NULL); - 107 1 } - 108 - 109 - 110 void u2f_sha256_update(uint8_t * buf, uint8_t len) - 111 { -C51 COMPILER V9.53.0.0 U2F_ATECC 03/28/2016 20:18:26 PAGE 3 + 58 2 key_store.num_keys = U2F_NUM_KEYS; + 59 2 key_store.valid_keys = 0; + 60 2 key_store.num_issued = 0; + 61 2 flush_key_store(); + 62 2 + 63 2 for (i=0; i < 2; i++) + 64 2 { + 65 3 atecc_send_recv(ATECC_CMD_RNG,ATECC_RNG_P1,ATECC_RNG_P2, + 66 3 NULL, 0, + 67 3 appdata.tmp, + 68 3 sizeof(appdata.tmp), &res); + 69 3 for (j=0; j < U2F_NUM_KEYS/2; j++) res.buf[j * U2F_KEY_HANDLE_SIZE] = j+1 + i*U2F_NUM_KEYS/2; + 70 3 eeprom_write(U2F_KEYS_ADDR + i * (U2F_KEY_HANDLE_SIZE * U2F_NUM_KEYS/2), + 71 3 res.buf, U2F_KEY_HANDLE_SIZE * U2F_NUM_KEYS/2); + 72 3 } + 73 2 + 74 2 } + 75 1 } + 76 + 77 void u2f_response_writeback(uint8_t * buf, uint16_t len) + 78 { + 79 1 u2f_hid_writeback(buf, len); + 80 1 } + 81 + 82 void u2f_response_flush() + 83 { + 84 1 u2f_hid_flush(); + 85 1 } + 86 + 87 void u2f_response_start() + 88 { + 89 1 } + 90 + 91 int8_t u2f_get_user_feedback() + 92 { + 93 1 uint32_t t = get_ms(); + 94 1 while(!U2F_BUTTON_IS_PRESSED()) + 95 1 { + 96 2 // turn yellow + 97 2 rgb(128,128,0); + 98 2 if (get_ms() - t > 10000) + 99 2 break; + 100 2 } + 101 1 + 102 1 if (U2F_BUTTON_IS_PRESSED()) + 103 1 { + 104 2 rgb(0,150,128); + 105 2 } + 106 1 else + 107 1 { + 108 2 rgb(200,0,0); + 109 2 return 1; + 110 2 } + 111 1 +C51 COMPILER V9.53.0.0 U2F_ATECC 03/29/2016 00:06:39 PAGE 3 - 112 1 uint8_t i = 0; - 113 1 while(len--) - 114 1 { - 115 2 shabuf[shaoffset++] = *buf++; - 116 2 if (shaoffset == 64) - 117 2 { - 118 3 atecc_send_recv(ATECC_CMD_SHA, - 119 3 ATECC_SHA_UPDATE, 64,shabuf,64, - 120 3 appdata.tmp, sizeof(appdata.tmp), NULL); - 121 3 shaoffset = 0; - 122 3 } - 123 2 } - 124 1 } - 125 + 112 1 return 0; + 113 1 } + 114 + 115 static uint8_t shabuf[70]; + 116 static uint8_t shaoffset = 0; + 117 static struct atecc_response res_digest; + 118 + 119 void u2f_sha256_start() + 120 { + 121 1 shaoffset = 0; + 122 1 atecc_send_recv(ATECC_CMD_SHA, + 123 1 ATECC_SHA_START, 0,NULL,0, + 124 1 appdata.tmp, sizeof(appdata.tmp), NULL); + 125 1 } 126 - 127 void u2f_sha256_finish() - 128 { - 129 1 atecc_send_recv(ATECC_CMD_SHA, - 130 1 ATECC_SHA_END, shaoffset,shabuf,shaoffset, - 131 1 shabuf, sizeof(shabuf), &res_digest); - 132 1 } - 133 - 134 - 135 int8_t u2f_ecdsa_sign(uint8_t * dest, uint8_t * handle) - 136 { - 137 1 struct atecc_response res; - 138 1 struct key_handle k; - 139 1 uint16_t keyslot = (uint16_t)((struct key_handle *)handle)->index; - 140 1 if (keyslot > U2F_NUM_KEYS) - 141 1 { - 142 2 return -1; - 143 2 } - 144 1 if (keyslot == 0) - 145 1 { - 146 2 keyslot = U2F_ATTESTATION_KEY_SLOT; - 147 2 } - 148 1 else - 149 1 { - 150 2 keyslot--; - 151 2 } - 152 1 - 153 1 atecc_send_recv(ATECC_CMD_SIGN, - 154 1 ATECC_SIGN_EXTERNAL, keyslot, NULL, 0, - 155 1 appdata.tmp, sizeof(appdata.tmp), &res); - 156 1 - 157 1 if (keyslot != U2F_ATTESTATION_KEY_SLOT) - 158 1 { - 159 2 eeprom_read(U2F_KEY_ADDR(keyslot), (uint8_t* )&k, U2F_KEY_HANDLE_SIZE); - 160 2 - 161 2 if ( - 162 2 ((struct key_handle *)handle)->index != k.index || - 163 2 ((struct key_handle *)handle)->entropy[0] != k.entropy[0] || - 164 2 ((struct key_handle *)handle)->entropy[1] != k.entropy[1] || - 165 2 ((struct key_handle *)handle)->entropy[2] != k.entropy[2] - 166 2 ) - 167 2 { - 168 3 return -1; - 169 3 } - 170 2 } - 171 1 - 172 1 memmove(dest, res.buf, 64); - 173 1 - 174 1 return 0; -C51 COMPILER V9.53.0.0 U2F_ATECC 03/28/2016 20:18:26 PAGE 4 + 127 + 128 void u2f_sha256_update(uint8_t * buf, uint8_t len) + 129 { + 130 1 uint8_t i = 0; + 131 1 while(len--) + 132 1 { + 133 2 shabuf[shaoffset++] = *buf++; + 134 2 if (shaoffset == 64) + 135 2 { + 136 3 atecc_send_recv(ATECC_CMD_SHA, + 137 3 ATECC_SHA_UPDATE, 64,shabuf,64, + 138 3 appdata.tmp, sizeof(appdata.tmp), NULL); + 139 3 shaoffset = 0; + 140 3 } + 141 2 } + 142 1 } + 143 + 144 + 145 void u2f_sha256_finish() + 146 { + 147 1 atecc_send_recv(ATECC_CMD_SHA, + 148 1 ATECC_SHA_END, shaoffset,shabuf,shaoffset, + 149 1 shabuf, sizeof(shabuf), &res_digest); + 150 1 } + 151 + 152 + 153 int8_t u2f_ecdsa_sign(uint8_t * dest, uint8_t * handle) + 154 { + 155 1 struct atecc_response res; + 156 1 struct key_handle k; + 157 1 uint16_t keyslot = (uint16_t)((struct key_handle *)handle)->index; + 158 1 if (keyslot > U2F_NUM_KEYS) + 159 1 { + 160 2 return -1; + 161 2 } + 162 1 if (keyslot == 0) + 163 1 { + 164 2 keyslot = U2F_ATTESTATION_KEY_SLOT; + 165 2 } + 166 1 else + 167 1 { + 168 2 keyslot--; + 169 2 } + 170 1 + 171 1 atecc_send_recv(ATECC_CMD_SIGN, + 172 1 ATECC_SIGN_EXTERNAL, keyslot, NULL, 0, + 173 1 appdata.tmp, sizeof(appdata.tmp), &res); + 174 1 +C51 COMPILER V9.53.0.0 U2F_ATECC 03/29/2016 00:06:39 PAGE 4 - 175 1 } - 176 - 177 // bad if this gets interrupted - 178 int8_t u2f_new_keypair(uint8_t * handle, uint8_t * pubkey) - 179 { - 180 1 struct atecc_response res; - 181 1 struct key_handle k; - 182 1 uint8_t keyslot = key_store.num_issued; - 183 1 if (keyslot > U2F_NUM_KEYS-1) - 184 1 { - 185 2 return -1; - 186 2 } - 187 1 - 188 1 atecc_send_recv(ATECC_CMD_GENKEY, - 189 1 ATECC_GENKEY_PRIVATE, keyslot, NULL, 0, - 190 1 appdata.tmp, sizeof(appdata.tmp), &res); + 175 1 if (keyslot != U2F_ATTESTATION_KEY_SLOT) + 176 1 { + 177 2 eeprom_read(U2F_KEY_ADDR(keyslot), (uint8_t* )&k, U2F_KEY_HANDLE_SIZE); + 178 2 + 179 2 if ( + 180 2 ((struct key_handle *)handle)->index != k.index || + 181 2 ((struct key_handle *)handle)->entropy[0] != k.entropy[0] || + 182 2 ((struct key_handle *)handle)->entropy[1] != k.entropy[1] || + 183 2 ((struct key_handle *)handle)->entropy[2] != k.entropy[2] + 184 2 ) + 185 2 { + 186 3 return -1; + 187 3 } + 188 2 } + 189 1 + 190 1 memmove(dest, res.buf, 64); 191 1 - 192 1 memmove(pubkey, res.buf, 64); - 193 1 - 194 1 eeprom_read(U2F_KEY_ADDR(keyslot), (uint8_t* )&k, U2F_KEY_HANDLE_SIZE); - 195 1 if (k.index-1 != keyslot) - 196 1 { - 197 2 - 198 2 k.index = keyslot; - 199 2 set_app_error(ERROR_BAD_KEY_STORE); - 200 2 } - 201 1 memmove(handle, &k, U2F_KEY_HANDLE_SIZE); - 202 1 key_store.num_issued++; - 203 1 flush_key_store(); - 204 1 - 205 1 return 0; - 206 1 } - 207 - 208 int8_t u2f_load_key(uint8_t * handle, uint8_t len) - 209 { - 210 1 struct key_handle k; - 211 1 uint8_t keyslot = handle[0]-1; - 212 1 if (keyslot >= U2F_NUM_KEYS) - 213 1 { - 214 2 return -1; - 215 2 } - 216 1 eeprom_read(U2F_KEY_ADDR(keyslot), (uint8_t* )&k, U2F_KEY_HANDLE_SIZE); - 217 1 - 218 1 if ( - 219 1 handle[0] != k.index || - 220 1 ((struct key_handle *)handle)->entropy[0] != k.entropy[0] || - 221 1 ((struct key_handle *)handle)->entropy[1] != k.entropy[1] || - 222 1 ((struct key_handle *)handle)->entropy[2] != k.entropy[2] - 223 1 ) - 224 1 { - 225 2 return -1; - 226 2 } - 227 1 return 0; - 228 1 } -*** WARNING C280 IN LINE 208 OF /home/pp/apps/u2f-zero/firmware/src/u2f-atecc.c: 'len': unreferenced local variable - 229 - 230 uint32_t u2f_count() - 231 { - 232 1 struct atecc_response res; - 233 1 atecc_send_recv(ATECC_CMD_COUNTER, - 234 1 ATECC_COUNTER_INC, ATECC_COUNTER0,NULL,0, - 235 1 appdata.tmp, sizeof(appdata.tmp), &res); - 236 1 return le32toh(*(uint32_t*)res.buf); -C51 COMPILER V9.53.0.0 U2F_ATECC 03/28/2016 20:18:26 PAGE 5 + 192 1 return 0; + 193 1 } + 194 + 195 // bad if this gets interrupted + 196 int8_t u2f_new_keypair(uint8_t * handle, uint8_t * pubkey) + 197 { + 198 1 struct atecc_response res; + 199 1 struct key_handle k; + 200 1 uint8_t keyslot = key_store.num_issued; + 201 1 if (keyslot > U2F_NUM_KEYS-1) + 202 1 { + 203 2 return -1; + 204 2 } + 205 1 + 206 1 atecc_send_recv(ATECC_CMD_GENKEY, + 207 1 ATECC_GENKEY_PRIVATE, keyslot, NULL, 0, + 208 1 appdata.tmp, sizeof(appdata.tmp), &res); + 209 1 + 210 1 memmove(pubkey, res.buf, 64); + 211 1 + 212 1 eeprom_read(U2F_KEY_ADDR(keyslot), (uint8_t* )&k, U2F_KEY_HANDLE_SIZE); + 213 1 if (k.index-1 != keyslot) + 214 1 { + 215 2 + 216 2 k.index = keyslot; + 217 2 set_app_error(ERROR_BAD_KEY_STORE); + 218 2 } + 219 1 memmove(handle, &k, U2F_KEY_HANDLE_SIZE); + 220 1 key_store.num_issued++; + 221 1 flush_key_store(); + 222 1 + 223 1 return 0; + 224 1 } + 225 + 226 int8_t u2f_load_key(uint8_t * handle, uint8_t len) + 227 { + 228 1 struct key_handle k; + 229 1 uint8_t keyslot = handle[0]-1; + 230 1 if (keyslot >= U2F_NUM_KEYS) + 231 1 { + 232 2 return -1; + 233 2 } + 234 1 eeprom_read(U2F_KEY_ADDR(keyslot), (uint8_t* )&k, U2F_KEY_HANDLE_SIZE); + 235 1 + 236 1 if ( + 237 1 handle[0] != k.index || +C51 COMPILER V9.53.0.0 U2F_ATECC 03/29/2016 00:06:39 PAGE 5 - 237 1 } - 238 - 239 code char __attest[] = - 240 // {{{ - 241 "\x30\x82\x01\x5a\x30\x82\x01\x00\x02\x01\x01\x30\x0a\x06\x08\x2a\x86\x48\xce\x3d" - 242 "\x04\x03\x02\x30\x39\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x56\x41\x31\x14" - 243 "\x30\x12\x06\x03\x55\x04\x0a\x13\x0b\x43\x6f\x6e\x6f\x72\x43\x6f\x20\x4c\x4c\x43" - 244 "\x31\x14\x30\x12\x06\x03\x55\x04\x03\x13\x0b\x75\x32\x66\x7a\x65\x72\x6f\x2e\x63" - 245 "\x6f\x6d\x30\x1e\x17\x0d\x31\x36\x30\x33\x32\x39\x30\x30\x31\x37\x30\x35\x5a\x17" - 246 "\x0d\x32\x32\x30\x33\x32\x38\x30\x30\x31\x37\x30\x35\x5a\x30\x39\x31\x0b\x30\x09" - 247 "\x06\x03\x55\x04\x06\x13\x02\x56\x41\x31\x14\x30\x12\x06\x03\x55\x04\x0a\x13\x0b" - 248 "\x43\x6f\x6e\x6f\x72\x43\x6f\x20\x4c\x4c\x43\x31\x14\x30\x12\x06\x03\x55\x04\x03" - 249 "\x13\x0b\x75\x32\x66\x7a\x65\x72\x6f\x2e\x63\x6f\x6d\x30\x59\x30\x13\x06\x07\x2a" - 250 "\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07\x03\x42\x00\x04" - 251 "\x49\xc0\x88\x08\xf6\xff\xe0\x1f\xa3\xe0\x28\x28\xfb\x22\x1b\x20\xc0\xa4\xa3\x95" - 252 "\xba\xdc\xeb\xcf\xbd\x27\x45\xaa\xa5\x2f\x1f\x19\x6c\xfa\xe0\x0d\xdd\xc0\xef\x5d" - 253 "\x1e\xc1\x4d\x4b\x9a\x74\xb4\x30\x81\xfa\x93\x39\x0d\xc9\x35\xbd\xea\xce\x6a\x9b" - 254 "\x53\xa3\x3e\xbc\x30\x0a\x06\x08\x2a\x86\x48\xce\x3d\x04\x03\x02\x03\x48\x00\x30" - 255 "\x45\x02\x21\x00\xb4\xc1\xbc\x9c\x5c\x90\xab\xbf\x34\x29\x40\xf7\xe9\x4f\xb2\x4e" - 256 "\x74\x4b\x0a\x0d\x5c\x71\x0d\x7c\xd3\xa7\x9a\x13\x2d\xca\x2d\x10\x02\x20\x3f\x4c" - 257 "\x60\x70\x15\x2a\xc0\x1a\xc3\xad\xa3\x4b\x13\x24\x1c\x8d\x78\xa4\xcb\x34\xa7\xbc" - 258 "\x21\xe2\xdf\x20\x4f\xb1\x85\x92\xdc\x6a" - 259 - 260 // }}} - 261 ; - 262 uint8_t * u2f_get_attestation_cert() - 263 { - 264 1 return __attest; - 265 1 } - 266 - 267 - 268 uint16_t u2f_attestation_cert_size() - 269 { - 270 1 return sizeof(__attest)-1; - 271 1 } - 272 - 273 void set_response_length(uint16_t len) - 274 { - 275 1 u2f_hid_set_len(len); - 276 1 } + 238 1 ((struct key_handle *)handle)->entropy[0] != k.entropy[0] || + 239 1 ((struct key_handle *)handle)->entropy[1] != k.entropy[1] || + 240 1 ((struct key_handle *)handle)->entropy[2] != k.entropy[2] + 241 1 ) + 242 1 { + 243 2 return -1; + 244 2 } + 245 1 return 0; + 246 1 } +*** WARNING C280 IN LINE 226 OF /home/pp/apps/u2f-zero/firmware/src/u2f-atecc.c: 'len': unreferenced local variable + 247 + 248 uint32_t u2f_count() + 249 { + 250 1 struct atecc_response res; + 251 1 atecc_send_recv(ATECC_CMD_COUNTER, + 252 1 ATECC_COUNTER_INC, ATECC_COUNTER0,NULL,0, + 253 1 appdata.tmp, sizeof(appdata.tmp), &res); + 254 1 return le32toh(*(uint32_t*)res.buf); + 255 1 } + 256 + 257 code char __attest[] = + 258 // {{{ + 259 "\x30\x82\x01\x5a\x30\x82\x01\x00\x02\x01\x01\x30\x0a\x06\x08\x2a\x86\x48\xce\x3d" + 260 "\x04\x03\x02\x30\x39\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x56\x41\x31\x14" + 261 "\x30\x12\x06\x03\x55\x04\x0a\x13\x0b\x43\x6f\x6e\x6f\x72\x43\x6f\x20\x4c\x4c\x43" + 262 "\x31\x14\x30\x12\x06\x03\x55\x04\x03\x13\x0b\x75\x32\x66\x7a\x65\x72\x6f\x2e\x63" + 263 "\x6f\x6d\x30\x1e\x17\x0d\x31\x36\x30\x33\x32\x39\x30\x34\x30\x36\x33\x35\x5a\x17" + 264 "\x0d\x32\x32\x30\x33\x32\x38\x30\x34\x30\x36\x33\x35\x5a\x30\x39\x31\x0b\x30\x09" + 265 "\x06\x03\x55\x04\x06\x13\x02\x56\x41\x31\x14\x30\x12\x06\x03\x55\x04\x0a\x13\x0b" + 266 "\x43\x6f\x6e\x6f\x72\x43\x6f\x20\x4c\x4c\x43\x31\x14\x30\x12\x06\x03\x55\x04\x03" + 267 "\x13\x0b\x75\x32\x66\x7a\x65\x72\x6f\x2e\x63\x6f\x6d\x30\x59\x30\x13\x06\x07\x2a" + 268 "\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07\x03\x42\x00\x04" + 269 "\xa6\x03\x66\x51\x15\xdc\xeb\xf5\xb8\xdb\x32\xe7\x66\x5e\xf6\x6a\x39\xbc\x15\x37" + 270 "\x8c\x65\x5f\xeb\xd4\x8b\xa9\x51\xee\x61\x02\xc2\xc8\x32\x1e\x73\xb2\x7d\xe8\x09" + 271 "\x79\xda\xf9\xd1\x42\x48\xe8\x1f\x0b\x43\xae\x63\x99\xf2\x52\x83\x81\x5f\x87\x74" + 272 "\x79\x17\x84\x1f\x30\x0a\x06\x08\x2a\x86\x48\xce\x3d\x04\x03\x02\x03\x48\x00\x30" + 273 "\x45\x02\x21\x00\x8b\xb7\xfa\xa2\x02\xb7\x24\xa3\x8d\xca\xab\x74\x44\xc3\x4c\xdc" + 274 "\x80\x3a\xa5\x67\xdb\x36\xa1\x41\xda\xd6\xf3\x94\x38\x4c\xb6\xbd\x02\x20\x1f\x33" + 275 "\x7e\xa3\x46\xf4\x77\x75\xe9\xe5\x4a\xe5\x92\x18\x4a\x11\xc0\x0b\x3c\x13\xa3\x61" + 276 "\x68\x68\xae\x90\xbc\x01\xdd\x32\x8d\xe0" 277 - 278 #endif + 278 // }}} + 279 ; + 280 uint8_t * u2f_get_attestation_cert() + 281 { + 282 1 return __attest; + 283 1 } + 284 + 285 + 286 uint16_t u2f_attestation_cert_size() + 287 { + 288 1 return sizeof(__attest)-1; + 289 1 } + 290 + 291 void set_response_length(uint16_t len) + 292 { + 293 1 u2f_hid_set_len(len); + 294 1 } + 295 + 296 #endif MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 1082 ---- - CONSTANT SIZE = 370 ---- - XDATA SIZE = 147 54 +C51 COMPILER V9.53.0.0 U2F_ATECC 03/29/2016 00:06:39 PAGE 6 + + CODE SIZE = 1164 ---- + CONSTANT SIZE = 351 ---- + XDATA SIZE = 147 58 PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- diff --git a/firmware/release/src/u2f.OBJ b/firmware/release/src/u2f.OBJ index 052b9da..4d79dae 100644 Binary files a/firmware/release/src/u2f.OBJ and b/firmware/release/src/u2f.OBJ differ diff --git a/firmware/release/src/u2f.__i b/firmware/release/src/u2f.__i index 807a909..f0ea1ef 100644 --- a/firmware/release/src/u2f.__i +++ b/firmware/release/src/u2f.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/u2f.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/u2f.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/u2f.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/u2f.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/u2f.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/u2f.OBJ) \ No newline at end of file diff --git a/firmware/release/src/u2f.lst b/firmware/release/src/u2f.lst index eda7165..8662239 100644 --- a/firmware/release/src/u2f.lst +++ b/firmware/release/src/u2f.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 U2F 03/28/2016 20:18:26 PAGE 1 +C51 COMPILER V9.53.0.0 U2F 03/29/2016 00:06:40 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE U2F @@ -6,12 +6,11 @@ OBJECT MODULE PLACED IN .\src/u2f.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/u2f.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR( -0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u - -2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3/ - -/Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudi - -o_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/in - -c;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_ - -v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/u2f.lst) COND PAGEWIDTH(120) PAGELEN - -GTH(65) OBJECT(.\src/u2f.OBJ) + -2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Simplici + -tyStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8U + -B1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sd + -ks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_asser + -t) REGFILE(u2f-firmware.ORC) PRINT(.\src/u2f.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/u2f.OBJ) line level source @@ -63,9 +62,9 @@ line level source 46 2 } 47 1 u2f_response_writeback((uint8_t*)rcode,2); 48 1 u2f_response_flush(); -C51 COMPILER V9.53.0.0 U2F 03/28/2016 20:18:26 PAGE 2 - 49 1 } +C51 COMPILER V9.53.0.0 U2F 03/29/2016 00:06:40 PAGE 2 + 50 51 static uint8_t get_signature_length(uint8_t * sig) 52 { @@ -120,102 +119,108 @@ line level source 101 2 return U2F_SW_CONDITIONS_NOT_SATISFIED; 102 2 } 103 1 - 104 1 count = u2f_count(); - 105 1 - 106 1 u2f_sha256_start(); - 107 1 u2f_sha256_update(req->app,32); - 108 1 u2f_sha256_update(&up,1); - 109 1 u2f_sha256_update(&count,4); -*** WARNING C182 IN LINE 109 OF /home/pp/apps/u2f-zero/firmware/src/u2f.c: pointer to different objects - 110 1 u2f_sha256_update(req->chal,32); -C51 COMPILER V9.53.0.0 U2F 03/28/2016 20:18:26 PAGE 3 - + 104 1 if (u2f_get_user_feedback()) + 105 1 { + 106 2 u2f_hid_set_len(2); + 107 2 return U2F_SW_CONDITIONS_NOT_SATISFIED; + 108 2 } + 109 1 + 110 1 count = u2f_count(); 111 1 - 112 1 u2f_sha256_finish(); - 113 1 - 114 1 if (u2f_ecdsa_sign((uint8_t*)req, req->kh) == -1) - 115 1 { - 116 2 return U2F_SW_WRONG_DATA; - 117 2 } - 118 1 - 119 1 u2f_hid_set_len(7 + get_signature_length((uint8_t*)req)); - 120 1 - 121 1 u2f_response_writeback(&up,1); - 122 1 u2f_response_writeback(&count,4); -*** WARNING C182 IN LINE 122 OF /home/pp/apps/u2f-zero/firmware/src/u2f.c: pointer to different objects - 123 1 dump_signature_der((uint8_t*)req); - 124 1 - 125 1 return U2F_SW_NO_ERROR; - 126 1 } - 127 - 128 static int16_t u2f_register(struct u2f_register_request * req) - 129 { - 130 1 uint8_t i[] = {0x0,U2F_EC_FMT_UNCOMPRESSED}; - 131 1 - 132 1 uint8_t key_handle[U2F_KEY_HANDLE_SIZE]; - 133 1 uint8_t pubkey[64]; - 134 1 - 135 1 - 136 1 const uint16_t attest_size = u2f_attestation_cert_size(); - 137 1 - 138 1 if (u2f_get_user_feedback() != 0) - 139 1 { - 140 2 return U2F_SW_CONDITIONS_NOT_SATISFIED; - 141 2 } - 142 1 - 143 1 if ( u2f_new_keypair(key_handle, pubkey) == -1) - 144 1 { - 145 2 return U2F_SW_CONDITIONS_NOT_SATISFIED; - 146 2 } - 147 1 - 148 1 u2f_sha256_start(); - 149 1 u2f_sha256_update(i,1); - 150 1 u2f_sha256_update(req->app,32); - 151 1 - 152 1 u2f_sha256_update(req->chal,32); - 153 1 - 154 1 u2f_sha256_update(key_handle,U2F_KEY_HANDLE_SIZE); - 155 1 u2f_sha256_update(i+1,1); - 156 1 u2f_sha256_update(pubkey,64); - 157 1 u2f_sha256_finish(); - 158 1 - 159 1 if (u2f_ecdsa_sign((uint8_t*)req, U2F_ATTESTATION_HANDLE) == -1) - 160 1 { - 161 2 return U2F_SW_WRONG_DATA; - 162 2 } - 163 1 - 164 1 u2f_hid_set_len(69 + get_signature_length((uint8_t*)req) + U2F_KEY_HANDLE_SIZE + u2f_attestation_cert_ - -size()); - 165 1 i[0] = 0x5; - 166 1 u2f_response_writeback(i,2); - 167 1 u2f_response_writeback(pubkey,64); - 168 1 i[0] = U2F_KEY_HANDLE_SIZE; - 169 1 u2f_response_writeback(i,1); - 170 1 u2f_response_writeback(key_handle,U2F_KEY_HANDLE_SIZE); - 171 1 -C51 COMPILER V9.53.0.0 U2F 03/28/2016 20:18:26 PAGE 4 + 112 1 u2f_sha256_start(); +C51 COMPILER V9.53.0.0 U2F 03/29/2016 00:06:40 PAGE 3 - 172 1 u2f_response_writeback(u2f_get_attestation_cert(),u2f_attestation_cert_size()); - 173 1 - 174 1 dump_signature_der((uint8_t*)req); - 175 1 - 176 1 - 177 1 return U2F_SW_NO_ERROR; - 178 1 } - 179 - 180 static int16_t u2f_version() - 181 { - 182 1 code const char version[] = "U2F_V2"; - 183 1 u2f_hid_set_len(2 + sizeof(version)-1); - 184 1 u2f_response_writeback(version, sizeof(version)-1); - 185 1 return U2F_SW_NO_ERROR; - 186 1 } - 187 - 188 #endif + 113 1 u2f_sha256_update(req->app,32); + 114 1 u2f_sha256_update(&up,1); + 115 1 u2f_sha256_update(&count,4); +*** WARNING C182 IN LINE 115 OF /home/pp/apps/u2f-zero/firmware/src/u2f.c: pointer to different objects + 116 1 u2f_sha256_update(req->chal,32); + 117 1 + 118 1 u2f_sha256_finish(); + 119 1 + 120 1 if (u2f_ecdsa_sign((uint8_t*)req, req->kh) == -1) + 121 1 { + 122 2 return U2F_SW_WRONG_DATA; + 123 2 } + 124 1 + 125 1 u2f_hid_set_len(7 + get_signature_length((uint8_t*)req)); + 126 1 + 127 1 u2f_response_writeback(&up,1); + 128 1 u2f_response_writeback(&count,4); +*** WARNING C182 IN LINE 128 OF /home/pp/apps/u2f-zero/firmware/src/u2f.c: pointer to different objects + 129 1 dump_signature_der((uint8_t*)req); + 130 1 + 131 1 return U2F_SW_NO_ERROR; + 132 1 } + 133 + 134 static int16_t u2f_register(struct u2f_register_request * req) + 135 { + 136 1 uint8_t i[] = {0x0,U2F_EC_FMT_UNCOMPRESSED}; + 137 1 + 138 1 uint8_t key_handle[U2F_KEY_HANDLE_SIZE]; + 139 1 uint8_t pubkey[64]; + 140 1 + 141 1 + 142 1 const uint16_t attest_size = u2f_attestation_cert_size(); + 143 1 + 144 1 if (u2f_get_user_feedback()) + 145 1 { + 146 2 return U2F_SW_CONDITIONS_NOT_SATISFIED; + 147 2 } + 148 1 + 149 1 if ( u2f_new_keypair(key_handle, pubkey) == -1) + 150 1 { + 151 2 return U2F_SW_CONDITIONS_NOT_SATISFIED; + 152 2 } + 153 1 + 154 1 u2f_sha256_start(); + 155 1 u2f_sha256_update(i,1); + 156 1 u2f_sha256_update(req->app,32); + 157 1 + 158 1 u2f_sha256_update(req->chal,32); + 159 1 + 160 1 u2f_sha256_update(key_handle,U2F_KEY_HANDLE_SIZE); + 161 1 u2f_sha256_update(i+1,1); + 162 1 u2f_sha256_update(pubkey,64); + 163 1 u2f_sha256_finish(); + 164 1 + 165 1 if (u2f_ecdsa_sign((uint8_t*)req, U2F_ATTESTATION_HANDLE) == -1) + 166 1 { + 167 2 return U2F_SW_WRONG_DATA; + 168 2 } + 169 1 + 170 1 u2f_hid_set_len(69 + get_signature_length((uint8_t*)req) + U2F_KEY_HANDLE_SIZE + u2f_attestation_cert_ + -size()); + 171 1 i[0] = 0x5; + 172 1 u2f_response_writeback(i,2); +C51 COMPILER V9.53.0.0 U2F 03/29/2016 00:06:40 PAGE 4 + + 173 1 u2f_response_writeback(pubkey,64); + 174 1 i[0] = U2F_KEY_HANDLE_SIZE; + 175 1 u2f_response_writeback(i,1); + 176 1 u2f_response_writeback(key_handle,U2F_KEY_HANDLE_SIZE); + 177 1 + 178 1 u2f_response_writeback(u2f_get_attestation_cert(),u2f_attestation_cert_size()); + 179 1 + 180 1 dump_signature_der((uint8_t*)req); + 181 1 + 182 1 + 183 1 return U2F_SW_NO_ERROR; + 184 1 } + 185 + 186 static int16_t u2f_version() + 187 { + 188 1 code const char version[] = "U2F_V2"; + 189 1 u2f_hid_set_len(2 + sizeof(version)-1); + 190 1 u2f_response_writeback(version, sizeof(version)-1); + 191 1 return U2F_SW_NO_ERROR; + 192 1 } + 193 + 194 #endif MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 935 ---- + CODE SIZE = 943 ---- CONSTANT SIZE = 103 ---- XDATA SIZE = ---- 97 PDATA SIZE = ---- ---- diff --git a/firmware/release/src/u2f_hid.OBJ b/firmware/release/src/u2f_hid.OBJ index c71f502..67641e2 100644 Binary files a/firmware/release/src/u2f_hid.OBJ and b/firmware/release/src/u2f_hid.OBJ differ diff --git a/firmware/release/src/u2f_hid.__i b/firmware/release/src/u2f_hid.__i index 19b3596..90c5731 100644 --- a/firmware/release/src/u2f_hid.__i +++ b/firmware/release/src/u2f_hid.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/src/u2f_hid.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/u2f_hid.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/u2f_hid.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/src/u2f_hid.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\src/u2f_hid.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\src/u2f_hid.OBJ) \ No newline at end of file diff --git a/firmware/release/src/u2f_hid.lst b/firmware/release/src/u2f_hid.lst index 5b7ab3f..deff8d9 100644 --- a/firmware/release/src/u2f_hid.lst +++ b/firmware/release/src/u2f_hid.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 U2F_HID 03/28/2016 20:18:26 PAGE 1 +C51 COMPILER V9.53.0.0 U2F_HID 03/29/2016 00:06:40 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE U2F_HID @@ -6,12 +6,11 @@ OBJECT MODULE PLACED IN .\src/u2f_hid.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/src/u2f_hid.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVEC -TOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/ap - -ps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051 - -/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityS - -tudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_us - -b/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStu - -dio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\src/u2f_hid.lst) COND PAGEWIDTH(120) - - PAGELENGTH(65) OBJECT(.\src/u2f_hid.OBJ) + -ps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Simp + -licityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/E + -FM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/develope + -r/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_a + -ssert) REGFILE(u2f-firmware.ORC) PRINT(.\src/u2f_hid.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\src/u2f_hid.OBJ) line level source @@ -54,445 +53,451 @@ line level source 37 38 uint32_t last_buffered; 39 uint16_t bytes_buffered; - 40 - 41 // number of payload bytes written in response - 42 uint16_t bytes_written; - 43 + 40 uint16_t req_len; + 41 + 42 // number of payload bytes written in response + 43 uint16_t bytes_written; 44 45 - 46 // total length of response in bytes - 47 uint16_t res_len; - 48 -C51 COMPILER V9.53.0.0 U2F_HID 03/28/2016 20:18:26 PAGE 2 + 46 + 47 // total length of response in bytes + 48 uint16_t res_len; + 49 +C51 COMPILER V9.53.0.0 U2F_HID 03/29/2016 00:06:40 PAGE 2 - 49 #define BUFFER_SIZE 150 - 50 uint8_t buffer[BUFFER_SIZE]; - 51 + 50 #define BUFFER_SIZE 200 + 51 uint8_t buffer[BUFFER_SIZE]; 52 - 53 } hid_layer; - 54 - 55 struct CID CIDS[5]; - 56 static uint8_t CID_NUM = 0; - 57 - 58 static uint8_t _hid_pkt[HID_PACKET_SIZE]; - 59 static uint8_t _hid_offset = 0; - 60 static uint8_t _hid_seq = 0; - 61 static uint8_t _hid_in_session = 0; - 62 - 63 #define u2f_hid_busy() (_hid_in_session) - 64 - 65 #define MIN(a,b) ((a) < (b) ? (a):(b)) - 66 - 67 void u2f_hid_init() - 68 { - 69 1 memset(CIDS, 0, sizeof(CIDS)); - 70 1 memset(&hid_layer, 0, sizeof(hid_layer)); - 71 1 CID_NUM = 0; - 72 1 _hid_offset = 0; - 73 1 _hid_seq = 0; - 74 1 _hid_in_session = 0; - 75 1 } - 76 - 77 void u2f_hid_set_len(uint16_t len) - 78 { - 79 1 hid_layer.res_len = len; - 80 1 } - 81 + 53 + 54 } hid_layer; + 55 + 56 struct CID CIDS[5]; + 57 static uint8_t CID_NUM = 0; + 58 + 59 static uint8_t _hid_pkt[HID_PACKET_SIZE]; + 60 static uint8_t _hid_offset = 0; + 61 static uint8_t _hid_seq = 0; + 62 static uint8_t _hid_in_session = 0; + 63 + 64 #define u2f_hid_busy() (_hid_in_session) + 65 + 66 #define MIN(a,b) ((a) < (b) ? (a):(b)) + 67 + 68 void u2f_hid_init() + 69 { + 70 1 memset(CIDS, 0, sizeof(CIDS)); + 71 1 memset(&hid_layer, 0, sizeof(hid_layer)); + 72 1 CID_NUM = 0; + 73 1 _hid_offset = 0; + 74 1 _hid_seq = 0; + 75 1 _hid_in_session = 0; + 76 1 } + 77 + 78 void u2f_hid_set_len(uint16_t len) + 79 { + 80 1 hid_layer.res_len = len; + 81 1 } 82 - 83 static void u2f_hid_reset_packet() - 84 { - 85 1 _hid_seq = 0; - 86 1 _hid_offset = 0; - 87 1 _hid_in_session = 0; - 88 1 memset(&hid_layer, 0, sizeof(hid_layer)); - 89 1 memset(_hid_pkt, 0, HID_PACKET_SIZE); - 90 1 } - 91 - 92 // writes what has been buffered and clears memory - 93 void u2f_hid_flush() - 94 { - 95 1 if (_hid_offset) - 96 1 { - 97 2 usb_write(_hid_pkt, HID_PACKET_SIZE); - 98 2 } - 99 1 u2f_hid_reset_packet(); - 100 1 } - 101 + 83 + 84 static void u2f_hid_reset_packet() + 85 { + 86 1 _hid_seq = 0; + 87 1 _hid_offset = 0; + 88 1 _hid_in_session = 0; + 89 1 memset(&hid_layer, 0, sizeof(hid_layer)); + 90 1 memset(_hid_pkt, 0, HID_PACKET_SIZE); + 91 1 } + 92 + 93 // writes what has been buffered and clears memory + 94 void u2f_hid_flush() + 95 { + 96 1 if (_hid_offset) + 97 1 { + 98 2 usb_write(_hid_pkt, HID_PACKET_SIZE); + 99 2 } + 100 1 u2f_hid_reset_packet(); + 101 1 } 102 - 103 void u2f_hid_writeback(uint8_t * payload, uint16_t len) - 104 { - 105 1 struct u2f_hid_msg * r = (struct u2f_hid_response *) _hid_pkt; - 106 1 _hid_in_session = 1; - 107 1 if (_hid_offset == 0) - 108 1 { - 109 2 r->cid = hid_layer.current_cid; - 110 2 if (!_hid_seq) - 111 2 { -C51 COMPILER V9.53.0.0 U2F_HID 03/28/2016 20:18:26 PAGE 3 + 103 + 104 void u2f_hid_writeback(uint8_t * payload, uint16_t len) + 105 { + 106 1 struct u2f_hid_msg * r = (struct u2f_hid_response *) _hid_pkt; + 107 1 _hid_in_session = 1; + 108 1 if (_hid_offset == 0) + 109 1 { + 110 2 r->cid = hid_layer.current_cid; + 111 2 if (!_hid_seq) + 112 2 { +C51 COMPILER V9.53.0.0 U2F_HID 03/29/2016 00:06:40 PAGE 3 - 112 3 r->pkt.init.cmd = hid_layer.current_cmd; - 113 3 U2FHID_SET_LEN(r, hid_layer.res_len); - 114 3 _hid_offset = 7; - 115 3 } - 116 2 else - 117 2 { - 118 3 r->pkt.cont.seq = _hid_seq - 1; - 119 3 _hid_offset = 5; - 120 3 if (_hid_seq-1 > 127) - 121 3 { - 122 4 set_app_error(ERROR_SEQ_EXCEEDED); - 123 4 return; - 124 4 } - 125 3 } - 126 2 } - 127 1 while(len--) - 128 1 { - 129 2 _hid_pkt[_hid_offset++] = *payload++; - 130 2 hid_layer.bytes_written++; - 131 2 if (_hid_offset == HID_PACKET_SIZE) - 132 2 { - 133 3 _hid_offset = 0; - 134 3 _hid_seq++; - 135 3 - 136 3 usb_write(_hid_pkt, HID_PACKET_SIZE); - 137 3 memset(_hid_pkt, 0, HID_PACKET_SIZE); - 138 3 - 139 3 if (len) - 140 3 { - 141 4 u2f_hid_writeback(payload, len); - 142 4 return; - 143 4 } - 144 3 else break; - 145 3 } - 146 2 } - 147 1 - 148 1 } - 149 - 150 static uint8_t is_cid_free(struct CID* c) - 151 { - 152 1 return (c->cid == 0 || get_ms() - c->last_used > 1000); - 153 1 } - 154 - 155 static void refresh_cid(struct CID* c) - 156 { - 157 1 c->last_used = get_ms(); - 158 1 } - 159 + 113 3 r->pkt.init.cmd = hid_layer.current_cmd; + 114 3 U2FHID_SET_LEN(r, hid_layer.res_len); + 115 3 _hid_offset = 7; + 116 3 } + 117 2 else + 118 2 { + 119 3 r->pkt.cont.seq = _hid_seq - 1; + 120 3 _hid_offset = 5; + 121 3 if (_hid_seq-1 > 127) + 122 3 { + 123 4 set_app_error(ERROR_SEQ_EXCEEDED); + 124 4 return; + 125 4 } + 126 3 } + 127 2 } + 128 1 while(len--) + 129 1 { + 130 2 _hid_pkt[_hid_offset++] = *payload++; + 131 2 hid_layer.bytes_written++; + 132 2 if (_hid_offset == HID_PACKET_SIZE) + 133 2 { + 134 3 _hid_offset = 0; + 135 3 _hid_seq++; + 136 3 + 137 3 usb_write(_hid_pkt, HID_PACKET_SIZE); + 138 3 memset(_hid_pkt, 0, HID_PACKET_SIZE); + 139 3 + 140 3 if (len) + 141 3 { + 142 4 u2f_hid_writeback(payload, len); + 143 4 return; + 144 4 } + 145 3 else break; + 146 3 } + 147 2 } + 148 1 + 149 1 } + 150 + 151 static uint8_t is_cid_free(struct CID* c) + 152 { + 153 1 return (c->cid == 0 || get_ms() - c->last_used > 1000); + 154 1 } + 155 + 156 static void refresh_cid(struct CID* c) + 157 { + 158 1 c->last_used = get_ms(); + 159 1 } 160 - 161 static uint32_t get_new_cid() - 162 { - 163 1 static uint32_t base = 0xcafebabe; - 164 1 int i; - 165 1 for(i = 0; i < CID_MAX; i++) - 166 1 { - 167 2 if (is_cid_free(CIDS+i)) - 168 2 { - 169 3 goto newcid; - 170 3 } - 171 2 } - 172 1 return 0; - 173 1 newcid: - 174 1 -C51 COMPILER V9.53.0.0 U2F_HID 03/28/2016 20:18:26 PAGE 4 + 161 + 162 static uint32_t get_new_cid() + 163 { + 164 1 static uint32_t base = 0xcafebabe; + 165 1 int i; + 166 1 for(i = 0; i < CID_MAX; i++) + 167 1 { + 168 2 if (is_cid_free(CIDS+i)) + 169 2 { + 170 3 goto newcid; + 171 3 } + 172 2 } + 173 1 return 0; + 174 1 newcid: + 175 1 +C51 COMPILER V9.53.0.0 U2F_HID 03/29/2016 00:06:40 PAGE 4 - 175 1 do - 176 1 { - 177 2 CIDS[i].cid = base + CID_NUM++; - 178 2 }while(CIDS[i].cid == 0 || CIDS[i].cid == U2FHID_BROADCAST); - 179 1 - 180 1 refresh_cid(CIDS+i); - 181 1 - 182 1 return CIDS[i].cid; - 183 1 } - 184 - 185 static struct CID* get_cid(uint32_t cid) - 186 { - 187 1 uint8_t i; - 188 1 for(i = 0; i < CID_MAX; i++) - 189 1 { - 190 2 if (CIDS[i].cid == cid) - 191 2 { - 192 3 return CIDS+i; - 193 3 } - 194 2 } - 195 1 return NULL; - 196 1 } - 197 static void del_cid(uint32_t cid) - 198 { - 199 1 uint8_t i; - 200 1 for(i = 0; i < CID_MAX; i++) - 201 1 { - 202 2 if (CIDS[i].cid == cid) - 203 2 { - 204 3 CIDS[i].cid = 0; - 205 3 } - 206 2 } - 207 1 } - 208 - 209 static int check_cid(uint32_t cid) - 210 { - 211 1 return (get_cid(cid) != NULL); - 212 1 } - 213 - 214 static void stamp_error(uint32_t cid, uint8_t err) - 215 { - 216 1 struct u2f_hid_msg * res = (struct u2f_hid_msg *)_hid_pkt; - 217 1 res->cid = cid; - 218 1 res->pkt.init.cmd = U2FHID_ERROR; - 219 1 res->pkt.init.payload[0] = err; - 220 1 res->pkt.init.bcnth = 0; - 221 1 res->pkt.init.bcntl = 1; - 222 1 // TODO this is tramping on potential other response data - 223 1 usb_write(_hid_pkt, HID_PACKET_SIZE); - 224 1 del_cid(cid); - 225 1 } - 226 - 227 // TODO double check if this is really needed - 228 static void start_buffering(struct u2f_hid_msg* req) - 229 { - 230 1 _hid_in_session = 1; - 231 1 hid_layer.bytes_buffered = U2FHID_INIT_PAYLOAD_SIZE; - 232 1 memmove(hid_layer.buffer, req->pkt.init.payload, U2FHID_INIT_PAYLOAD_SIZE); - 233 1 } - 234 - 235 static int buffer_request(struct u2f_hid_msg* req) - 236 { - 237 1 if (hid_layer.bytes_buffered + U2FHID_CONT_PAYLOAD_SIZE > BUFFER_SIZE) -C51 COMPILER V9.53.0.0 U2F_HID 03/28/2016 20:18:26 PAGE 5 + 176 1 do + 177 1 { + 178 2 CIDS[i].cid = base + CID_NUM++; + 179 2 }while(CIDS[i].cid == 0 || CIDS[i].cid == U2FHID_BROADCAST); + 180 1 + 181 1 refresh_cid(CIDS+i); + 182 1 + 183 1 return CIDS[i].cid; + 184 1 } + 185 + 186 static struct CID* get_cid(uint32_t cid) + 187 { + 188 1 uint8_t i; + 189 1 for(i = 0; i < CID_MAX; i++) + 190 1 { + 191 2 if (CIDS[i].cid == cid) + 192 2 { + 193 3 return CIDS+i; + 194 3 } + 195 2 } + 196 1 return NULL; + 197 1 } + 198 static void del_cid(uint32_t cid) + 199 { + 200 1 uint8_t i; + 201 1 for(i = 0; i < CID_MAX; i++) + 202 1 { + 203 2 if (CIDS[i].cid == cid) + 204 2 { + 205 3 CIDS[i].cid = 0; + 206 3 } + 207 2 } + 208 1 } + 209 + 210 static int check_cid(uint32_t cid) + 211 { + 212 1 return (get_cid(cid) != NULL); + 213 1 } + 214 + 215 static void stamp_error(uint32_t cid, uint8_t err) + 216 { + 217 1 struct u2f_hid_msg * res = (struct u2f_hid_msg *)_hid_pkt; + 218 1 res->cid = cid; + 219 1 res->pkt.init.cmd = U2FHID_ERROR; + 220 1 res->pkt.init.payload[0] = err; + 221 1 res->pkt.init.bcnth = 0; + 222 1 res->pkt.init.bcntl = 1; + 223 1 // TODO this is tramping on potential other response data + 224 1 usb_write(_hid_pkt, HID_PACKET_SIZE); + 225 1 del_cid(cid); + 226 1 } + 227 + 228 // TODO double check if this is really needed + 229 static void start_buffering(struct u2f_hid_msg* req) + 230 { + 231 1 _hid_in_session = 1; + 232 1 hid_layer.bytes_buffered = U2FHID_INIT_PAYLOAD_SIZE; + 233 1 hid_layer.req_len = U2FHID_LEN(req); + 234 1 memmove(hid_layer.buffer, req->pkt.init.payload, U2FHID_INIT_PAYLOAD_SIZE); + 235 1 } + 236 + 237 static int buffer_request(struct u2f_hid_msg* req) + 238 { +C51 COMPILER V9.53.0.0 U2F_HID 03/29/2016 00:06:40 PAGE 5 - 238 1 { - 239 2 u2f_prints("buffer full\r\n"); - 240 2 return -1; - 241 2 } - 242 1 memmove(hid_layer.buffer + hid_layer.bytes_buffered, req->pkt.cont.payload, U2FHID_CONT_PAYLOAD_SIZE); - 243 1 hid_layer.bytes_buffered += U2FHID_CONT_PAYLOAD_SIZE; - 244 1 } - 245 - 246 static void hid_u2f_parse(struct u2f_hid_msg* req) - 247 { - 248 1 - 249 1 uint16_t len = 0; - 250 1 struct u2f_hid_init_response * init_res = appdata.tmp; + 239 1 if (hid_layer.bytes_buffered + U2FHID_CONT_PAYLOAD_SIZE > BUFFER_SIZE) + 240 1 { + 241 2 u2f_prints("buffer full\r\n"); + 242 2 stamp_error(req->cid, ERR_OTHER); + 243 2 return -1; + 244 2 } + 245 1 memmove(hid_layer.buffer + hid_layer.bytes_buffered, req->pkt.cont.payload, U2FHID_CONT_PAYLOAD_SIZE); + 246 1 hid_layer.bytes_buffered += U2FHID_CONT_PAYLOAD_SIZE; + 247 1 } + 248 + 249 static void hid_u2f_parse(struct u2f_hid_msg* req) + 250 { 251 1 - 252 1 switch(hid_layer.current_cmd) - 253 1 { - 254 2 case U2FHID_INIT: - 255 2 //u2f_printlx("got init packet ",1,req->cid); - 256 2 if (U2FHID_LEN(req) != 8) - 257 2 { - 258 3 // this one is safe - 259 3 stamp_error(hid_layer.current_cid, ERR_INVALID_LEN); - 260 3 u2f_prints("invalid len init\r\n"); - 261 3 goto fail; - 262 3 } - 263 2 u2f_hid_set_len(17); - 264 2 - 265 2 //u2f_printlx("cid: ",1,hid_layer.current_cid); - 266 2 if (hid_layer.current_cid == 0) - 267 2 { - 268 3 u2f_prints("out of cid's\r\n"); - 269 3 goto fail; - 270 3 } - 271 2 - 272 2 init_res->cid = get_new_cid(); - 273 2 init_res->version_id = 1; - 274 2 init_res->version_major = 1; - 275 2 init_res->version_minor = 0; - 276 2 init_res->version_build = 0; - 277 2 init_res->cflags = 0; - 278 2 - 279 2 // write back the same data nonce - 280 2 u2f_hid_writeback(req->pkt.init.payload, 8); - 281 2 u2f_hid_writeback(init_res, 9); -*** WARNING C182 IN LINE 281 OF /home/pp/apps/u2f-zero/firmware/src/u2f_hid.c: pointer to different objects - 282 2 u2f_hid_flush(); - 283 2 hid_layer.current_cid = init_res->cid; - 284 2 - 285 2 break; - 286 2 case U2FHID_MSG: + 252 1 uint16_t len = 0; + 253 1 struct u2f_hid_init_response * init_res = appdata.tmp; + 254 1 + 255 1 switch(hid_layer.current_cmd) + 256 1 { + 257 2 case U2FHID_INIT: + 258 2 //u2f_printlx("got init packet ",1,req->cid); + 259 2 if (U2FHID_LEN(req) != 8) + 260 2 { + 261 3 // this one is safe + 262 3 stamp_error(hid_layer.current_cid, ERR_INVALID_LEN); + 263 3 u2f_prints("invalid len init\r\n"); + 264 3 goto fail; + 265 3 } + 266 2 u2f_hid_set_len(17); + 267 2 + 268 2 //u2f_printlx("cid: ",1,hid_layer.current_cid); + 269 2 if (hid_layer.current_cid == 0) + 270 2 { + 271 3 u2f_prints("out of cid's\r\n"); + 272 3 goto fail; + 273 3 } + 274 2 + 275 2 init_res->cid = get_new_cid(); + 276 2 init_res->version_id = 1; + 277 2 init_res->version_major = 1; + 278 2 init_res->version_minor = 0; + 279 2 init_res->version_build = 0; + 280 2 init_res->cflags = 0; + 281 2 + 282 2 // write back the same data nonce + 283 2 u2f_hid_writeback(req->pkt.init.payload, 8); + 284 2 u2f_hid_writeback(init_res, 9); +*** WARNING C182 IN LINE 284 OF /home/pp/apps/u2f-zero/firmware/src/u2f_hid.c: pointer to different objects + 285 2 u2f_hid_flush(); + 286 2 hid_layer.current_cid = init_res->cid; 287 2 - 288 2 if (U2FHID_LEN(req) < 4) - 289 2 { - 290 3 // TODO bad - 291 3 stamp_error(hid_layer.current_cid, ERR_INVALID_LEN); - 292 3 u2f_prints("invalid len msg\r\n"); - 293 3 goto fail; - 294 3 } - 295 2 //u2f_prints("U2FHID_MSG\r\n"); - 296 2 // buffer 2 payloads (120 bytes) to get full U2F message - 297 2 // assuming key handle is < 45 bytes - 298 2 // 7 bytes for apdu header - 299 2 // 7 + 66 bytes + key handle for authenticate message -C51 COMPILER V9.53.0.0 U2F_HID 03/28/2016 20:18:26 PAGE 6 + 288 2 break; + 289 2 case U2FHID_MSG: + 290 2 + 291 2 if (U2FHID_LEN(req) < 4) + 292 2 { + 293 3 // TODO bad + 294 3 stamp_error(hid_layer.current_cid, ERR_INVALID_LEN); + 295 3 u2f_prints("invalid len msg\r\n"); + 296 3 goto fail; + 297 3 } + 298 2 //u2f_prints("U2FHID_MSG\r\n"); + 299 2 // buffer 2 payloads (120 bytes) to get full U2F message + 300 2 // assuming key handle is < 45 bytes +C51 COMPILER V9.53.0.0 U2F_HID 03/29/2016 00:06:40 PAGE 6 - 300 2 // 7 + 64 for register message - 301 2 if (hid_layer.bytes_buffered == 0) - 302 2 { - 303 3 start_buffering(req); - 304 3 if (hid_layer.bytes_buffered >= U2FHID_LEN(req)) - 305 3 { - 306 4 u2f_request((struct u2f_request_apdu *)hid_layer.buffer); - 307 4 } - 308 3 } - 309 2 else - 310 2 { - 311 3 buffer_request(req); - 312 3 u2f_request((struct u2f_request_apdu *)hid_layer.buffer); - 313 3 } - 314 2 - 315 2 - 316 2 break; - 317 2 case U2FHID_PING: - 318 2 - 319 2 //u2f_prints("U2F PING\r\n"); + 301 2 // 7 bytes for apdu header + 302 2 // 7 + 66 bytes + key handle for authenticate message + 303 2 // 7 + 64 for register message + 304 2 if (hid_layer.bytes_buffered == 0) + 305 2 { + 306 3 start_buffering(req); + 307 3 if (hid_layer.bytes_buffered >= U2FHID_LEN(req)) + 308 3 { + 309 4 u2f_request((struct u2f_request_apdu *)hid_layer.buffer); + 310 4 } + 311 3 } + 312 2 else + 313 2 { + 314 3 buffer_request(req); + 315 3 if (hid_layer.bytes_buffered >= hid_layer.req_len) + 316 3 { + 317 4 u2f_request((struct u2f_request_apdu *)hid_layer.buffer); + 318 4 } + 319 3 } 320 2 - 321 2 if (!u2f_hid_busy()) - 322 2 { - 323 3 u2f_hid_set_len(U2FHID_LEN(req)); - 324 3 u2f_hid_writeback(req->pkt.init.payload, MIN(hid_layer.res_len, U2FHID_INIT_PAYLOAD_SIZE)); - 325 3 } - 326 2 else - 327 2 { - 328 3 u2f_hid_writeback(req->pkt.cont.payload, MIN(hid_layer.res_len - hid_layer.bytes_written, U2FHID_CONT_ + 321 2 + 322 2 break; + 323 2 case U2FHID_PING: + 324 2 + 325 2 //u2f_prints("U2F PING\r\n"); + 326 2 + 327 2 if (!u2f_hid_busy()) + 328 2 { + 329 3 u2f_hid_set_len(U2FHID_LEN(req)); + 330 3 u2f_hid_writeback(req->pkt.init.payload, MIN(hid_layer.res_len, U2FHID_INIT_PAYLOAD_SIZE)); + 331 3 } + 332 2 else + 333 2 { + 334 3 u2f_hid_writeback(req->pkt.cont.payload, MIN(hid_layer.res_len - hid_layer.bytes_written, U2FHID_CONT_ -PAYLOAD_SIZE)); - 329 3 } - 330 2 - 331 2 if (hid_layer.res_len == hid_layer.bytes_written) u2f_hid_flush(); - 332 2 break; - 333 2 - 334 2 case U2FHID_WINK: - 335 2 //u2f_prints("U2F WINK\r\n"); - 336 2 if (U2FHID_LEN(req) != 0) - 337 2 { - 338 3 // this one is safe - 339 3 stamp_error(hid_layer.current_cid, ERR_INVALID_LEN); - 340 3 u2f_prints("invalid len wink but who cares\r\n"); - 341 3 } - 342 2 u2f_hid_set_len(0); - 343 2 u2f_hid_writeback(NULL, 0); - 344 2 u2f_hid_flush(); - 345 2 appdata.state = APP_WINK; - 346 2 break; - 347 2 case U2FHID_LOCK: - 348 2 // TODO - 349 2 //u2f_prints("U2F LOCK\r\n"); - 350 2 break; - 351 2 default: - 352 2 u2f_printb("invalid cmd: ", hid_layer.current_cmd); - 353 2 stamp_error(hid_layer.current_cid, ERR_INVALID_CMD); - 354 2 goto fail; - 355 2 } - 356 1 - 357 1 return; - 358 1 - 359 1 fail: - 360 1 u2f_prints("U2F HID FAIL\r\n"); - 361 1 return; -C51 COMPILER V9.53.0.0 U2F_HID 03/28/2016 20:18:26 PAGE 7 + 335 3 } + 336 2 + 337 2 if (hid_layer.res_len == hid_layer.bytes_written) u2f_hid_flush(); + 338 2 break; + 339 2 + 340 2 case U2FHID_WINK: + 341 2 //u2f_prints("U2F WINK\r\n"); + 342 2 if (U2FHID_LEN(req) != 0) + 343 2 { + 344 3 // this one is safe + 345 3 stamp_error(hid_layer.current_cid, ERR_INVALID_LEN); + 346 3 u2f_prints("invalid len wink but who cares\r\n"); + 347 3 } + 348 2 u2f_hid_set_len(0); + 349 2 u2f_hid_writeback(NULL, 0); + 350 2 u2f_hid_flush(); + 351 2 appdata.state = APP_WINK; + 352 2 break; + 353 2 case U2FHID_LOCK: + 354 2 // TODO + 355 2 //u2f_prints("U2F LOCK\r\n"); + 356 2 break; + 357 2 default: + 358 2 u2f_printb("invalid cmd: ", hid_layer.current_cmd); + 359 2 stamp_error(hid_layer.current_cid, ERR_INVALID_CMD); + 360 2 goto fail; + 361 2 } + 362 1 +C51 COMPILER V9.53.0.0 U2F_HID 03/29/2016 00:06:40 PAGE 7 - 362 1 } - 363 - 364 - 365 void u2f_hid_request(struct u2f_hid_msg* req) - 366 { - 367 1 uint8_t* payload = req->pkt.init.payload; - 368 1 struct CID* cid = get_cid(req->cid); - 369 1 - 370 1 - 371 1 if (cid != NULL) - 372 1 { - 373 2 refresh_cid(cid); - 374 2 } - 375 1 else if (req->cid == U2FHID_BROADCAST) - 376 1 { - 377 2 - 378 2 } - 379 1 else - 380 1 { - 381 2 // Ignore CID's we did not allocate. - 382 2 //u2f_printlx("ignoring pkt ",1,req->cid); - 383 2 return; + 363 1 return; + 364 1 + 365 1 fail: + 366 1 u2f_prints("U2F HID FAIL\r\n"); + 367 1 return; + 368 1 } + 369 + 370 + 371 void u2f_hid_request(struct u2f_hid_msg* req) + 372 { + 373 1 uint8_t* payload = req->pkt.init.payload; + 374 1 struct CID* cid = get_cid(req->cid); + 375 1 + 376 1 + 377 1 if (cid != NULL) + 378 1 { + 379 2 refresh_cid(cid); + 380 2 } + 381 1 else if (req->cid == U2FHID_BROADCAST) + 382 1 { + 383 2 384 2 } - 385 1 - 386 1 hid_layer.state = (u2f_hid_busy()) ? HID_BUSY : HID_READY; - 387 1 - 388 1 switch(hid_layer.state) - 389 1 { - 390 2 case HID_READY: - 391 2 if (req->pkt.init.cmd & TYPE_INIT) - 392 2 { - 393 3 if (U2FHID_LEN(req) > U2FHID_MAX_PAYLOAD_SIZE) - 394 3 { - 395 4 //u2f_prints("length too big\r\n"); - 396 4 stamp_error(req->cid, ERR_INVALID_LEN); - 397 4 return; - 398 4 } - 399 3 u2f_hid_reset_packet(); - 400 3 hid_layer.current_cid = req->cid; - 401 3 hid_layer.current_cmd = req->pkt.init.cmd; - 402 3 hid_layer.last_buffered = get_ms(); - 403 3 - 404 3 - 405 3 } - 406 2 else - 407 2 { - 408 3 stamp_error(req->cid, ERR_INVALID_CMD); - 409 3 u2f_prints("ERR_INVALID_CMD\r\n"); - 410 3 return; + 385 1 else + 386 1 { + 387 2 // Ignore CID's we did not allocate. + 388 2 //u2f_printlx("ignoring pkt ",1,req->cid); + 389 2 return; + 390 2 } + 391 1 + 392 1 hid_layer.state = (u2f_hid_busy()) ? HID_BUSY : HID_READY; + 393 1 + 394 1 switch(hid_layer.state) + 395 1 { + 396 2 case HID_READY: + 397 2 if (req->pkt.init.cmd & TYPE_INIT) + 398 2 { + 399 3 if (U2FHID_LEN(req) > U2FHID_MAX_PAYLOAD_SIZE) + 400 3 { + 401 4 //u2f_prints("length too big\r\n"); + 402 4 stamp_error(req->cid, ERR_INVALID_LEN); + 403 4 return; + 404 4 } + 405 3 u2f_hid_reset_packet(); + 406 3 hid_layer.current_cid = req->cid; + 407 3 hid_layer.current_cmd = req->pkt.init.cmd; + 408 3 hid_layer.last_buffered = get_ms(); + 409 3 + 410 3 411 3 } - 412 2 - 413 2 break; - 414 2 case HID_BUSY: - 415 2 // buffer long requests - 416 2 if (req->cid == hid_layer.current_cid) - 417 2 { - 418 3 if (req->pkt.init.cmd & TYPE_INIT) - 419 3 { - 420 4 // TODO - 421 4 //u2f_prints("this should resync but im lazy\r\n"); - 422 4 } - 423 3 hid_layer.last_buffered = get_ms(); - 424 3 // TODO verify packets arrive in ascending order -C51 COMPILER V9.53.0.0 U2F_HID 03/28/2016 20:18:26 PAGE 8 + 412 2 else + 413 2 { + 414 3 stamp_error(req->cid, ERR_INVALID_CMD); + 415 3 u2f_prints("ERR_INVALID_CMD\r\n"); + 416 3 return; + 417 3 } + 418 2 + 419 2 break; + 420 2 case HID_BUSY: + 421 2 // buffer long requests + 422 2 if (req->cid == hid_layer.current_cid) + 423 2 { + 424 3 if (req->pkt.init.cmd & TYPE_INIT) + 425 3 { +C51 COMPILER V9.53.0.0 U2F_HID 03/29/2016 00:06:40 PAGE 8 - 425 3 - 426 3 } - 427 2 else if (U2FHID_TIMEOUT(&hid_layer)) - 428 2 { - 429 3 // return timeout error for old channel and run again for new channel - 430 3 //u2f_prints("timeout, switching\r\n"); - 431 3 hid_layer.state = HID_READY; - 432 3 u2f_hid_reset_packet(); - 433 3 stamp_error(hid_layer.current_cid, ERR_MSG_TIMEOUT); - 434 3 u2f_hid_request(req); - 435 3 return; - 436 3 } - 437 2 else - 438 2 { - 439 3 // Current application may not be interrupted - 440 3 // TODO this will be bad - 441 3 stamp_error(req->cid, ERR_CHANNEL_BUSY); - 442 3 //u2f_printlx("ERR_CHANNEL_BUSY ", 2, req->cid, hid_layer.current_cid); - 443 3 return; - 444 3 } - 445 2 break; - 446 2 - 447 2 } - 448 1 - 449 1 hid_u2f_parse(req); - 450 1 - 451 1 - 452 1 return; - 453 1 } - 454 - 455 #endif -*** WARNING C291 IN LINE 244 OF /home/pp/apps/u2f-zero/firmware/src/u2f_hid.c: not every exit path returns a value + 426 4 // TODO + 427 4 //u2f_prints("this should resync but im lazy\r\n"); + 428 4 } + 429 3 hid_layer.last_buffered = get_ms(); + 430 3 // TODO verify packets arrive in ascending order + 431 3 + 432 3 } + 433 2 else if (U2FHID_TIMEOUT(&hid_layer)) + 434 2 { + 435 3 // return timeout error for old channel and run again for new channel + 436 3 //u2f_prints("timeout, switching\r\n"); + 437 3 hid_layer.state = HID_READY; + 438 3 u2f_hid_reset_packet(); + 439 3 stamp_error(hid_layer.current_cid, ERR_MSG_TIMEOUT); + 440 3 u2f_hid_request(req); + 441 3 return; + 442 3 } + 443 2 else + 444 2 { + 445 3 // Current application may not be interrupted + 446 3 // TODO this will be bad + 447 3 stamp_error(req->cid, ERR_CHANNEL_BUSY); + 448 3 //u2f_printlx("ERR_CHANNEL_BUSY ", 2, req->cid, hid_layer.current_cid); + 449 3 return; + 450 3 } + 451 2 break; + 452 2 + 453 2 } + 454 1 + 455 1 hid_u2f_parse(req); + 456 1 + 457 1 + 458 1 return; + 459 1 } + 460 + 461 #endif +*** WARNING C291 IN LINE 247 OF /home/pp/apps/u2f-zero/firmware/src/u2f_hid.c: not every exit path returns a value MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 1813 ---- + CODE SIZE = 1860 ---- CONSTANT SIZE = 146 ---- - XDATA SIZE = 278 45 + XDATA SIZE = 330 45 PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- diff --git a/firmware/release/tests/tests.OBJ b/firmware/release/tests/tests.OBJ index eb2d118..9fa7dc8 100644 Binary files a/firmware/release/tests/tests.OBJ and b/firmware/release/tests/tests.OBJ differ diff --git a/firmware/release/tests/tests.__i b/firmware/release/tests/tests.__i index d3a0f65..7d5d059 100644 --- a/firmware/release/tests/tests.__i +++ b/firmware/release/tests/tests.__i @@ -1 +1 @@ -"/home/pp/apps/u2f-zero/firmware/tests/tests.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\tests/tests.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\tests/tests.OBJ) \ No newline at end of file +"/home/pp/apps/u2f-zero/firmware/tests/tests.c" OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL (2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVECTOR(0x0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE (u2f-firmware.ORC) PRINT(.\tests/tests.lst) COND PAGEWIDTH (120) PAGELENGTH (65) OBJECT(.\tests/tests.OBJ) \ No newline at end of file diff --git a/firmware/release/tests/tests.lst b/firmware/release/tests/tests.lst index 02dc95f..0328497 100644 --- a/firmware/release/tests/tests.lst +++ b/firmware/release/tests/tests.lst @@ -1,4 +1,4 @@ -C51 COMPILER V9.53.0.0 TESTS 03/28/2016 20:18:25 PAGE 1 +C51 COMPILER V9.53.0.0 TESTS 03/29/2016 00:06:38 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE TESTS @@ -6,12 +6,11 @@ OBJECT MODULE PLACED IN .\tests/tests.OBJ COMPILER INVOKED BY: Z:\home\pp\SimplicityStudio_v3\developer\toolchains\keil_8051\9.53\BIN\C51.exe /home/pp/apps/u2f-ze -ro/firmware/tests/tests.c OMF2 LARGE DEBUG OBJECTEXTEND ROM(LARGE) WARNINGLEVEL(2) FLOATFUZZY(3) OPTIMIZE(9,SIZE) INTVEC -TOR(0X0000) INTPROMOTE INCDIR(/home/pp/apps/u2f-zero/firmware/inc/config;/home/pp/apps/u2f-zero/firmware/inc;/home/pp/ap - -ps/u2f-zero/firmware/tinyprintf;/home/pp/apps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051 - -/v3//Device/shared/si8051Base;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityS - -tudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_us - -b/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStu - -dio_v3/developer/sdks/si8051/v3//Lib/efm8_assert) REGFILE(u2f-firmware.ORC) PRINT(.\tests/tests.lst) COND PAGEWIDTH(120) - - PAGELENGTH(65) OBJECT(.\tests/tests.OBJ) + -ps/u2f-zero/firmware/tests;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/shared/si8051Base;/home/pp/Simp + -licityStudio_v3/developer/sdks/si8051/v3//Device/EFM8UB1;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Device/E + -FM8UB1/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_usb/inc;/home/pp/SimplicityStudio_v3/develope + -r/sdks/si8051/v3//Device/EFM8UB1/peripheral_driver/inc;/home/pp/SimplicityStudio_v3/developer/sdks/si8051/v3//Lib/efm8_a + -ssert) REGFILE(u2f-firmware.ORC) PRINT(.\tests/tests.lst) COND PAGEWIDTH(120) PAGELENGTH(65) OBJECT(.\tests/tests.OBJ) line level source @@ -63,9 +62,9 @@ line level source dump_hex(buf,len); do{ -C51 COMPILER V9.53.0.0 TESTS 03/28/2016 20:18:25 PAGE 2 - atecc_send(ATECC_CMD_SHA, +C51 COMPILER V9.53.0.0 TESTS 03/29/2016 00:06:38 PAGE 2 + ATECC_SHA_END, sizeof(pw)-65,pw+64,sizeof(pw)-65); }while((len = atecc_recv(buf,sizeof(buf))) < 0); @@ -128,9 +127,9 @@ line level source if (atecc_write_eeprom(ATECC_EEPROM_SLOT(0), ATECC_EEPROM_SLOT_OFFSET(0), &slotconfig, ATECC_EEPROM_SLOT_ -SIZE) != 0) { -C51 COMPILER V9.53.0.0 TESTS 03/28/2016 20:18:25 PAGE 3 - return -1; +C51 COMPILER V9.53.0.0 TESTS 03/29/2016 00:06:38 PAGE 3 + } slotconfig.writeconfig = 0x3; @@ -193,9 +192,9 @@ line level source if (*(uint16_t*)(res.buf ) != 0x3300 || *(uint16_t*)(res.buf+2) != 0x2f00) { return -1; -C51 COMPILER V9.53.0.0 TESTS 03/28/2016 20:18:25 PAGE 4 - } +C51 COMPILER V9.53.0.0 TESTS 03/29/2016 00:06:38 PAGE 4 + return 0; } @@ -258,9 +257,9 @@ line level source eeprom_read(0xFBFF,&secbyte,1); -C51 COMPILER V9.53.0.0 TESTS 03/28/2016 20:18:25 PAGE 5 - u2f_printb("security_byte: ",1,secbyte); +C51 COMPILER V9.53.0.0 TESTS 03/29/2016 00:06:38 PAGE 5 + if (secbyte == 0xff) { @@ -323,9 +322,9 @@ line level source if (rc == 0) PRINT("--- EEPROM TEST SUCCESS ---\r\n"); else -C51 COMPILER V9.53.0.0 TESTS 03/28/2016 20:18:25 PAGE 6 - PRINT("--- EEPROM TEST FAILED ---\r\n"); +C51 COMPILER V9.53.0.0 TESTS 03/29/2016 00:06:38 PAGE 6 + #endif #ifdef TEST_KEY_SIGNING diff --git a/firmware/release/u2f-firmware.m51 b/firmware/release/u2f-firmware.m51 index ea04604..46dfe0b 100644 --- a/firmware/release/u2f-firmware.m51 +++ b/firmware/release/u2f-firmware.m51 @@ -1,4 +1,4 @@ -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 1 LX51 LINKER/LOCATER V4.66.30.0, INVOKED BY: @@ -64,7 +64,7 @@ INPUT MODULES INCLUDED: /HOME/PP/SIMPLICITYSTUDIO_V3/DEVELOPER/TOOLCHAINS/KEIL_8051/9.53/LIB\C51L.LIB (?C?COPY) COMMENT TYPE 1: A51 / ASM51 Assembler /HOME/PP/SIMPLICITYSTUDIO_V3/DEVELOPER/TOOLCHAINS/KEIL_8051/9.53/LIB\C51L.LIB (?C?CLDPTR) -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 2 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 2 COMMENT TYPE 1: A51 / ASM51 Assembler @@ -129,7 +129,7 @@ INPUT MODULES INCLUDED: /HOME/PP/SIMPLICITYSTUDIO_V3/DEVELOPER/TOOLCHAINS/KEIL_8051/9.53/LIB\C51L.LIB (?C?PSTOPTR) COMMENT TYPE 1: A51 / ASM51 Assembler /HOME/PP/SIMPLICITYSTUDIO_V3/DEVELOPER/TOOLCHAINS/KEIL_8051/9.53/LIB\C51L.LIB (?C?CCASE) -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 3 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 3 COMMENT TYPE 1: A51 / ASM51 Assembler @@ -175,13 +175,13 @@ ACTIVE MEMORY CLASSES OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) BASE START END USED MEMORY CLASS ========================================================== -C:000000H C:000000H C:003FFEH 003DDDH CODE -C:000000H C:000000H C:003FFEH 0000BCH CONST +C:000000H C:000000H C:003FFEH 003D1DH CODE +C:000000H C:000000H C:003FFEH 00021BH CONST C:000000H C:000000H C:003FFEH ECODE B00:0000H C:000000H C:003FFEH HCONST -X:000000H X:000000H X:0003FFH 00035FH XDATA +X:000000H X:000000H X:0003FFH 000396H XDATA X:000000H X:000000H X:0003FFH HDATA -I:000000H I:000000H I:00007FH 00006BH DATA +I:000000H I:000000H I:00007FH 000065H DATA I:000000H I:000000H I:0000FFH 000001H IDATA I:000020H.0 I:000020H.0 I:00002FH.7 000000H.7 BIT @@ -194,13 +194,14 @@ START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME * * * * * * * * * * * D A T A M E M O R Y * * * * * * * * * * * * * 000000H 000007H 000008H --- AT.. DATA "REG BANK 0" -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 4 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 4 -000008H 000011H 00000AH BYTE UNIT DATA _DATA_GROUP_ -000012H 000019H 000008H BYTE UNIT DATA ?DT?ATECC508A -00001AH 00001DH 000004H BYTE UNIT DATA ?DT?INTERRUPTS -00001EH 00001FH 000002H BYTE UNIT DATA ?DT?BSP +000008H 00000FH 000008H BYTE UNIT DATA ?DT?ATECC508A +000010H 000014H 000005H BYTE UNIT DATA ?DT?INTERRUPTS +000015H 000017H 000003H BYTE UNIT DATA _DATA_GROUP_ +000018H 000019H 000002H BYTE UNIT DATA ?DT?BSP +00001AH.0 00001FH.7 000006H.0 --- --- **GAP** 000020H.0 000020H.6 000000H.7 BIT UNIT BIT _BIT_GROUP_ 000020H.7 000020H 000000H.1 --- --- **GAP** 000021H 00006BH 00004BH BYTE UNIT DATA ?DT?MAIN @@ -217,220 +218,226 @@ START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME 000076H 00007AH 000005H BYTE UNIT CODE ?PR?U2F_ATTESTATION_CERT_SIZE?U2F_ATECC 00007BH 00007DH 000003H BYTE OFFS.. CODE ?EFM8_USBDINT?0007B 00007EH 000883H 000806H BYTE UNIT CODE ?C?LIB_CODE -000884H 000A68H 0001E5H BYTE UNIT CODE ?PR?_HID_U2F_PARSE?U2F_HID -000A69H 000C32H 0001CAH BYTE UNIT CODE ?PR?SMBUS0_ISR?INTERRUPTS -000C33H 000DA4H 000172H BYTE UNIT CODE ?CO?U2F_ATECC -000DA5H 000EF5H 000151H BYTE UNIT CODE ?PR?_USBD_SETUPCMDCB?CALLBACK -000EF6H 00103BH 000146H BYTE UNIT CODE ?PR?MAIN?MAIN -00103CH 001152H 000117H BYTE UNIT CODE ?PR?GETDESCRIPTOR?EFM8_USBDCH9 -001153H 001264H 000112H BYTE UNIT CODE ?PR?_U2F_REGISTER?U2F -001265H 001369H 000105H BYTE UNIT CODE ?PR?_U2F_HID_REQUEST?U2F_HID -00136AH 001463H 0000FAH BYTE UNIT CODE ?PR?HANDLEUSBEP0TX?EFM8_USBDINT -001464H 00154FH 0000ECH BYTE UNIT CODE ?PR?HANDLEUSBOUT1INT?EFM8_USBDEP -001550H 00162BH 0000DCH BYTE UNIT CODE ?PR?_ATECC_SEND_RECV?ATECC508A -00162CH 001704H 0000D9H BYTE UNIT CODE ?PR?_U2F_AUTHENTICATE?U2F -001705H 0017DCH 0000D8H BYTE UNIT CODE ?PR?USBIRQHANDLER?EFM8_USBDINT -0017DDH 0018B0H 0000D4H BYTE UNIT CODE ?PR?_U2F_HID_WRITEBACK?U2F_HID -0018B1H 001982H 0000D2H BYTE UNIT CODE ?PR?_USBD_WRITE?EFM8_USBD -001983H 001A48H 0000C6H BYTE UNIT CODE ?PR?GETSTATUS?EFM8_USBDCH9 -001A49H 001B0CH 0000C4H BYTE UNIT CODE ?PR?_U2F_ECDSA_SIGN?U2F_ATECC -001B0DH 001BCDH 0000C1H BYTE UNIT CODE ?PR?GET_NEW_CID?U2F_HID -001BCEH 001C8EH 0000C1H BYTE UNIT CODE ?PR?_ATECC_RECV?ATECC508A -001C8FH 001D48H 0000BAH BYTE UNIT CODE ?PR?U2F_HID -001D49H 001DFFH 0000B7H BYTE UNIT CODE ?PR?U2F_INIT?U2F_ATECC -001E00H 001EB1H 0000B2H BYTE UNIT CODE ?PR?SETCONFIGURATION?EFM8_USBDCH9 -001EB2H 001F60H 0000AFH BYTE UNIT CODE ?PR?_DUMP_SIGNATURE_DER?U2F -001F61H 00200FH 0000AFH BYTE UNIT CODE ?PR?_USBD_READ?EFM8_USBD -002010H 0020BCH 0000ADH BYTE UNIT CODE ?PR?_U2F_REQUEST?U2F -0020BDH 002169H 0000ADH BYTE UNIT CODE ?PR?HANDLEUSBEP0INT?EFM8_USBDINT -00216AH 002213H 0000AAH BYTE UNIT CODE ?PR?CLEARFEATURE?EFM8_USBDCH9 -002214H 0022B8H 0000A5H BYTE UNIT CODE ?PR?HANDLEUSBIN1INT?EFM8_USBDEP -0022B9H 002350H 000098H BYTE UNIT CODE ?PR?_USBD_INIT?EFM8_USBD -002351H 0023E3H 000093H BYTE UNIT CODE ?PR?HANDLEUSBEP0RX?EFM8_USBDINT -0023E4H 002475H 000092H BYTE UNIT CODE ?CO?U2F_HID -002476H 002507H 000092H BYTE UNIT CODE ?PR?SETFEATURE?EFM8_USBDCH9 -002508H 002598H 000091H BYTE UNIT CODE ?PR?_U2F_NEW_KEYPAIR?U2F_ATECC -002599H 002624H 00008CH BYTE UNIT CODE ?C_C51STARTUP -002625H 0026B0H 00008CH BYTE UNIT CODE ?PR?_USB_ACTIVATEEP?USB_0 -0026B1H 002733H 000083H BYTE UNIT CODE ?PR?_FEED_CRC?I2C -002734H 0027B2H 00007FH BYTE UNIT CODE ?PR?_USBD_ABORTTRANSFER?EFM8_USBD -0027B3H 00282EH 00007CH BYTE UNIT CODE ?PR?_REVERSE_BITS?I2C -00282FH 0028A8H 00007AH BYTE UNIT CODE ?PR?U2F_COUNT?U2F_ATECC -0028A9H 002920H 000078H BYTE UNIT CODE ?PR?USBDCH9_SETUPCMD?EFM8_USBDCH9 -002921H 002998H 000078H BYTE UNIT CODE ?PR?SETADDRESS?EFM8_USBDCH9 -002999H 002A0EH 000076H BYTE UNIT CODE ?PR?BSP -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 5 +000884H 000A71H 0001EEH BYTE UNIT CODE ?PR?_HID_U2F_PARSE?U2F_HID +000A72H 000C18H 0001A7H BYTE UNIT CODE ?PR?SMBUS0_ISR?INTERRUPTS +000C19H 000DBEH 0001A6H BYTE UNIT CODE ?PR?MAIN?MAIN +000DBFH 000F0FH 000151H BYTE UNIT CODE ?PR?_USBD_SETUPCMDCB?CALLBACK +000F10H 001026H 000117H BYTE UNIT CODE ?PR?GETDESCRIPTOR?EFM8_USBDCH9 +001027H 001138H 000112H BYTE UNIT CODE ?PR?_U2F_REGISTER?U2F +001139H 00123DH 000105H BYTE UNIT CODE ?PR?_U2F_HID_REQUEST?U2F_HID +00123EH 001337H 0000FAH BYTE UNIT CODE ?PR?HANDLEUSBEP0TX?EFM8_USBDINT +001338H 001423H 0000ECH BYTE UNIT CODE ?PR?HANDLEUSBOUT1INT?EFM8_USBDEP +001424H 001504H 0000E1H BYTE UNIT CODE ?PR?_U2F_AUTHENTICATE?U2F +001505H 0015E0H 0000DCH BYTE UNIT CODE ?PR?_ATECC_SEND_RECV?ATECC508A +0015E1H 0016B8H 0000D8H BYTE UNIT CODE ?PR?USBIRQHANDLER?EFM8_USBDINT +0016B9H 00178CH 0000D4H BYTE UNIT CODE ?PR?_U2F_HID_WRITEBACK?U2F_HID +00178DH 00185EH 0000D2H BYTE UNIT CODE ?PR?_USBD_WRITE?EFM8_USBD +00185FH 001924H 0000C6H BYTE UNIT CODE ?PR?GETSTATUS?EFM8_USBDCH9 +001925H 0019E8H 0000C4H BYTE UNIT CODE ?PR?U2F_HID +0019E9H 001AACH 0000C4H BYTE UNIT CODE ?PR?_U2F_ECDSA_SIGN?U2F_ATECC +001AADH 001B6DH 0000C1H BYTE UNIT CODE ?PR?GET_NEW_CID?U2F_HID +001B6EH 001C2AH 0000BDH BYTE UNIT CODE ?PR?_ATECC_RECV?ATECC508A +001C2BH 001CDCH 0000B2H BYTE UNIT CODE ?PR?SETCONFIGURATION?EFM8_USBDCH9 +001CDDH 001D8BH 0000AFH BYTE UNIT CODE ?PR?_DUMP_SIGNATURE_DER?U2F +001D8CH 001E3AH 0000AFH BYTE UNIT CODE ?PR?_USBD_READ?EFM8_USBD +001E3BH 001EE7H 0000ADH BYTE UNIT CODE ?PR?_U2F_REQUEST?U2F +001EE8H 001F94H 0000ADH BYTE UNIT CODE ?PR?HANDLEUSBEP0INT?EFM8_USBDINT +001F95H 00203FH 0000ABH BYTE UNIT CODE ?PR?U2F_INIT?U2F_ATECC +002040H 0020E9H 0000AAH BYTE UNIT CODE ?PR?CLEARFEATURE?EFM8_USBDCH9 +0020EAH 00218EH 0000A5H BYTE UNIT CODE ?PR?HANDLEUSBIN1INT?EFM8_USBDEP +00218FH 002226H 000098H BYTE UNIT CODE ?PR?_USBD_INIT?EFM8_USBD +002227H 0022B9H 000093H BYTE UNIT CODE ?PR?HANDLEUSBEP0RX?EFM8_USBDINT +0022BAH 00234BH 000092H BYTE UNIT CODE ?CO?U2F_HID +00234CH 0023DDH 000092H BYTE UNIT CODE ?PR?SETFEATURE?EFM8_USBDCH9 +0023DEH 00246EH 000091H BYTE UNIT CODE ?PR?_U2F_NEW_KEYPAIR?U2F_ATECC +00246FH 0024FAH 00008CH BYTE UNIT CODE ?C_C51STARTUP +0024FBH 002586H 00008CH BYTE UNIT CODE ?PR?_USB_ACTIVATEEP?USB_0 +002587H 002609H 000083H BYTE UNIT CODE ?PR?_FEED_CRC?I2C +00260AH 002688H 00007FH BYTE UNIT CODE ?PR?_USBD_ABORTTRANSFER?EFM8_USBD +002689H 002704H 00007CH BYTE UNIT CODE ?PR?_REVERSE_BITS?I2C +002705H 00277EH 00007AH BYTE UNIT CODE ?PR?U2F_COUNT?U2F_ATECC +00277FH 0027F6H 000078H BYTE UNIT CODE ?PR?USBDCH9_SETUPCMD?EFM8_USBDCH9 +0027F7H 00286EH 000078H BYTE UNIT CODE ?PR?SETADDRESS?EFM8_USBDCH9 +00286FH 0028E4H 000076H BYTE UNIT CODE ?PR?BSP +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 5 -002A0FH 002A83H 000075H BYTE UNIT CODE ?PR?_USB_WRITEFIFO?EFM8_USBDEP -002A84H 002AF0H 00006DH BYTE UNIT CODE ?PR?_USB_WRITE?BSP -002AF1H 002B5CH 00006CH BYTE UNIT CODE ?PR?EFM8_USBD -002B5DH 002BC5H 000069H BYTE UNIT CODE ?PR?U2F_ATECC -002BC6H 002C2CH 000067H BYTE UNIT CODE ?CO?U2F -002C2DH 002C90H 000064H BYTE UNIT CODE ?PR?EFM8_USBDCH9 -002C91H 002CF3H 000063H BYTE UNIT CODE ?PR?_U2F_SHA256_UPDATE?U2F_ATECC -002CF4H 002D55H 000062H BYTE UNIT CODE ?PR?_USB_READFIFO?EFM8_USBDEP -002D56H 002DB5H 000060H BYTE UNIT CODE ?PR?_U2F_LOAD_KEY?U2F_ATECC -002DB6H 002E0FH 00005AH BYTE UNIT CODE ?PR?EFM8_USBDINT -002E10H 002E68H 000059H BYTE UNIT CODE ?PR?_BUFFER_REQUEST?U2F_HID -002E69H 002EBFH 000057H BYTE UNIT CODE ?PR?USB_READFIFOSETUP?EFM8_USBDINT -002EC0H 002F13H 000054H BYTE UNIT CODE ?PR?GETCONFIGURATION?EFM8_USBDCH9 -002F14H 002F63H 000050H BYTE UNIT CODE ?PR?_DUMP_HEX?BSP -002F64H 002FB3H 000050H BYTE UNIT CODE ?PR?_ATECC_SEND?ATECC508A -002FB4H 003000H 00004DH BYTE UNIT CODE ?PR?CALLBACK -003001H 00304CH 00004CH BYTE UNIT CODE ?PR?_SMB_READ?I2C -00304DH 003095H 000049H BYTE UNIT CODE ?PR?__EEPROM_WRITE?EEPROM -003096H 0030DCH 000047H BYTE UNIT CODE ?PR?_INT2STR_MAP_10?BSP -0030DDH 003121H 000045H BYTE UNIT CODE ?PR?_GET_CID?U2F_HID -003122H 003163H 000042H BYTE UNIT CODE ?PR?GETINTERFACE?EFM8_USBDCH9 -003164H 0031A4H 000041H BYTE UNIT CODE ?C_INITSEG -0031A5H 0031E5H 000041H BYTE UNIT CODE ?PR?_INT2STR_MAP_16?BSP -0031E6H 003226H 000041H BYTE UNIT CODE ?PR?EEPROM_INIT?EEPROM -003227H 003266H 000040H BYTE UNIT CODE ?PR?_USBD_SETUSBSTATE?EFM8_USBD -003267H 0032A5H 00003FH BYTE UNIT CODE ?PR?_SMB_WRITE?I2C -0032A6H 0032E2H 00003DH BYTE UNIT CODE ?PR?_U2F_DELAY?BSP -0032E3H 00331FH 00003DH BYTE UNIT CODE ?CO?EFM8_USBD -003320H 00335CH 00003DH BYTE UNIT CODE ?PR?HANDLEUSBRESETINT?EFM8_USBDINT -00335DH 003397H 00003BH BYTE UNIT CODE ?PR?___INT2STR10?BSP -003398H 0033D2H 00003BH BYTE UNIT CODE ?PR?___INT2STR16?BSP -0033D3H 00340DH 00003BH BYTE UNIT CODE ?PR?_STAMP_ERROR?U2F_HID -00340EH 003447H 00003AH BYTE UNIT CODE ?PR?ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003448H 003481H 00003AH BYTE UNIT CODE ?PR?_DEL_CID?U2F_HID -003482H 0034BBH 00003AH BYTE UNIT CODE ?PR?_EEPROM_READ?EEPROM -0034BCH 0034F4H 000039H BYTE UNIT CODE ?PR?_U2F_PRINTB?BSP -0034F5H 00352CH 000038H BYTE UNIT CODE ?PR?ATECC508A -00352DH 003563H 000037H BYTE UNIT CODE ?PR?SETINTERFACE?EFM8_USBDCH9 -003564H 003599H 000036H BYTE UNIT CODE ?PR?USBD_ABORTALLTRANSFERS?EFM8_USBD -00359AH 0035CEH 000035H BYTE UNIT CODE ?PR?_U2F_PRINTL?BSP -0035CFH 003603H 000035H BYTE UNIT CODE ?PR?_U2F_PRINTX?BSP -003604H 003638H 000035H BYTE UNIT CODE ?PR?_IS_CID_FREE?U2F_HID -003639H 00366CH 000034H BYTE UNIT CODE ?PR?_USB_ABORTINEP?USB_0 -00366DH 0036A0H 000034H BYTE UNIT CODE ?PR?_USB_ABORTOUTEP?USB_0 -0036A1H 0036D2H 000032H BYTE UNIT CODE ?PR?TIMER2_ISR?INTERRUPTS -0036D3H 003700H 00002EH BYTE UNIT CODE ?PR?_INT2STR_REDUCE_10?BSP -003701H 00372EH 00002EH BYTE UNIT CODE ?PR?FLUSH_KEY_STORE?U2F_ATECC -00372FH 00375BH 00002DH BYTE UNIT CODE ?PR?_SMB_SET_EXT_WRITE?I2C -00375CH 003784H 000029H BYTE UNIT CODE ?PR?_USBD_EPISBUSY?EFM8_USBD -003785H 0037ADH 000029H BYTE UNIT CODE ?PR?I2C -0037AEH 0037D5H 000028H BYTE UNIT CODE ?PR?U2F_HID_INIT?U2F_HID -0037D6H 0037FCH 000027H BYTE UNIT CODE ?PR?_USBD_XFERCOMPLETECB?CALLBACK -0037FDH 003823H 000027H BYTE UNIT CODE ?PR?U2F_SHA256_FINISH?U2F_ATECC -003824H 003846H 000023H BYTE UNIT CODE ?PR?_USB_GETSHORTREGISTER?USB_0 -003847H 003869H 000023H BYTE UNIT CODE ?PR?EFM8_USBDEP -00386AH 00388BH 000022H BYTE UNIT CODE ?PR?IDLETIMERSTART?IDLE -00388CH 0038ACH 000021H BYTE UNIT CODE ?PR?_U2F_PRINTS?BSP -0038ADH 0038CDH 000021H BYTE UNIT CODE ?PR?_USB_READFIFO_XDATA?EFM8_USBDEP -0038CEH 0038EEH 000021H BYTE UNIT CODE ?PR?_DELAY_CMD?ATECC508A -0038EFH 00390EH 000020H BYTE UNIT CODE ?CO?BSP -00390FH 00392EH 000020H BYTE UNIT CODE ?CO?MAIN -00392FH 00394DH 00001FH BYTE UNIT CODE ?PR?UPDATE_FROM_PACKET_LENGTH?INTERRUPTS -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 6 +0028E5H 002959H 000075H BYTE UNIT CODE ?PR?_USB_WRITEFIFO?EFM8_USBDEP +00295AH 0029C6H 00006DH BYTE UNIT CODE ?PR?_USB_WRITE?BSP +0029C7H 002A32H 00006CH BYTE UNIT CODE ?PR?EFM8_USBD +002A33H 002A9BH 000069H BYTE UNIT CODE ?PR?U2F_ATECC +002A9CH 002B03H 000068H BYTE UNIT CODE ?PR?_BUFFER_REQUEST?U2F_HID +002B04H 002B6AH 000067H BYTE UNIT CODE ?CO?U2F +002B6BH 002BCEH 000064H BYTE UNIT CODE ?PR?EFM8_USBDCH9 +002BCFH 002C31H 000063H BYTE UNIT CODE ?PR?_U2F_SHA256_UPDATE?U2F_ATECC +002C32H 002C93H 000062H BYTE UNIT CODE ?PR?_USB_READFIFO?EFM8_USBDEP +002C94H 002CF4H 000061H BYTE UNIT CODE ?PR?U2F_GET_USER_FEEDBACK?U2F_ATECC +002CF5H 002D54H 000060H BYTE UNIT CODE ?PR?_U2F_LOAD_KEY?U2F_ATECC +002D55H 002DAEH 00005AH BYTE UNIT CODE ?PR?EFM8_USBDINT +002DAFH 002E05H 000057H BYTE UNIT CODE ?PR?USB_READFIFOSETUP?EFM8_USBDINT +002E06H 002E59H 000054H BYTE UNIT CODE ?PR?GETCONFIGURATION?EFM8_USBDCH9 +002E5AH 002EA9H 000050H BYTE UNIT CODE ?PR?_DUMP_HEX?BSP +002EAAH 002EF7H 00004EH BYTE UNIT CODE ?PR?_ATECC_SEND?ATECC508A +002EF8H 002F44H 00004DH BYTE UNIT CODE ?PR?CALLBACK +002F45H 002F91H 00004DH BYTE UNIT CODE ?PR?_SMB_READ?I2C +002F92H 002FDAH 000049H BYTE UNIT CODE ?PR?__EEPROM_WRITE?EEPROM +002FDBH 003021H 000047H BYTE UNIT CODE ?PR?_INT2STR_MAP_10?BSP +003022H 003067H 000046H BYTE UNIT CODE ?PR?ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003068H 0030ACH 000045H BYTE UNIT CODE ?PR?_GET_CID?U2F_HID +0030ADH 0030EEH 000042H BYTE UNIT CODE ?PR?GETINTERFACE?EFM8_USBDCH9 +0030EFH 00312FH 000041H BYTE UNIT CODE ?PR?_INT2STR_MAP_16?BSP +003130H 003170H 000041H BYTE UNIT CODE ?PR?EEPROM_INIT?EEPROM +003171H 0031B0H 000040H BYTE UNIT CODE ?PR?_USBD_SETUSBSTATE?EFM8_USBD +0031B1H 0031F0H 000040H BYTE UNIT CODE ?PR?_SMB_WRITE?I2C +0031F1H 00322DH 00003DH BYTE UNIT CODE ?C_INITSEG +00322EH 00326AH 00003DH BYTE UNIT CODE ?PR?_U2F_DELAY?BSP +00326BH 0032A7H 00003DH BYTE UNIT CODE ?CO?EFM8_USBD +0032A8H 0032E4H 00003DH BYTE UNIT CODE ?PR?HANDLEUSBRESETINT?EFM8_USBDINT +0032E5H 00331FH 00003BH BYTE UNIT CODE ?PR?___INT2STR10?BSP +003320H 00335AH 00003BH BYTE UNIT CODE ?PR?___INT2STR16?BSP +00335BH 003395H 00003BH BYTE UNIT CODE ?PR?_STAMP_ERROR?U2F_HID +003396H 0033CFH 00003AH BYTE UNIT CODE ?PR?_DEL_CID?U2F_HID +0033D0H 003409H 00003AH BYTE UNIT CODE ?PR?_EEPROM_READ?EEPROM +00340AH 003442H 000039H BYTE UNIT CODE ?PR?_U2F_PRINTB?BSP +003443H 00347AH 000038H BYTE UNIT CODE ?PR?ATECC508A +00347BH 0034B1H 000037H BYTE UNIT CODE ?PR?SETINTERFACE?EFM8_USBDCH9 +0034B2H 0034E7H 000036H BYTE UNIT CODE ?PR?USBD_ABORTALLTRANSFERS?EFM8_USBD +0034E8H 00351CH 000035H BYTE UNIT CODE ?PR?_U2F_PRINTL?BSP +00351DH 003551H 000035H BYTE UNIT CODE ?PR?_IS_CID_FREE?U2F_HID +003552H 003585H 000034H BYTE UNIT CODE ?PR?_USB_ABORTINEP?USB_0 +003586H 0035B9H 000034H BYTE UNIT CODE ?PR?_USB_ABORTOUTEP?USB_0 +0035BAH 0035EBH 000032H BYTE UNIT CODE ?PR?TIMER2_ISR?INTERRUPTS +0035ECH 003619H 00002EH BYTE UNIT CODE ?PR?_INT2STR_REDUCE_10?BSP +00361AH 003647H 00002EH BYTE UNIT CODE ?PR?FLUSH_KEY_STORE?U2F_ATECC +003648H 003674H 00002DH BYTE UNIT CODE ?PR?_SMB_SET_EXT_WRITE?I2C +003675H 0036A0H 00002CH BYTE UNIT CODE ?PR?_START_BUFFERING?U2F_HID +0036A1H 0036C9H 000029H BYTE UNIT CODE ?PR?_USBD_EPISBUSY?EFM8_USBD +0036CAH 0036F1H 000028H BYTE UNIT CODE ?PR?U2F_HID_INIT?U2F_HID +0036F2H 003718H 000027H BYTE UNIT CODE ?PR?_USBD_XFERCOMPLETECB?CALLBACK +003719H 00373FH 000027H BYTE UNIT CODE ?PR?U2F_SHA256_FINISH?U2F_ATECC +003740H 003762H 000023H BYTE UNIT CODE ?PR?_USB_GETSHORTREGISTER?USB_0 +003763H 003785H 000023H BYTE UNIT CODE ?PR?EFM8_USBDEP +003786H 0037A7H 000022H BYTE UNIT CODE ?PR?IDLETIMERSTART?IDLE +0037A8H 0037C8H 000021H BYTE UNIT CODE ?PR?_U2F_PRINTS?BSP +0037C9H 0037E9H 000021H BYTE UNIT CODE ?PR?_USB_READFIFO_XDATA?EFM8_USBDEP +0037EAH 00380AH 000021H BYTE UNIT CODE ?PR?_DELAY_CMD?ATECC508A +00380BH 00382AH 000020H BYTE UNIT CODE ?CO?BSP +00382BH 003849H 00001FH BYTE UNIT CODE ?PR?_GET_SIGNATURE_LENGTH?U2F +00384AH 003868H 00001FH BYTE UNIT CODE ?PR?_EP0_WRITE?EFM8_USBDCH9 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 6 -00394EH 00396CH 00001FH BYTE UNIT CODE ?PR?_GET_SIGNATURE_LENGTH?U2F -00396DH 00398BH 00001FH BYTE UNIT CODE ?PR?_START_BUFFERING?U2F_HID -00398CH 0039AAH 00001FH BYTE UNIT CODE ?PR?_EP0_WRITE?EFM8_USBDCH9 -0039ABH 0039C9H 00001FH BYTE UNIT CODE ?PR?_USB_READFIFO_PDATA?EFM8_USBDEP -0039CAH 0039E6H 00001DH BYTE UNIT CODE ?PR?__FEED_CRC?INTERRUPTS -0039E7H 003A03H 00001DH BYTE UNIT CODE ?PR?USBD_ACTIVATEALLEPS?EFM8_USBDCH9 -003A04H 003A20H 00001DH BYTE UNIT CODE ?PR?_USB_READFIFO_IDATA?EFM8_USBDEP -003A21H 003A3BH 00001BH BYTE UNIT CODE ?PR?WHILE_BUSY?I2C -003A3CH 003A56H 00001BH BYTE UNIT CODE ?PR?_INIT?MAIN -003A57H 003A70H 00001AH BYTE UNIT CODE ?PR?U2F_SHA256_START?U2F_ATECC -003A71H 003A89H 000019H BYTE UNIT CODE ?PR?U2F_VERSION?U2F -003A8AH 003AA1H 000018H BYTE UNIT CODE ?PR?_PUTF?BSP -003AA2H 003AB9H 000018H BYTE UNIT CODE ?PR?_IDLETIMERSET?IDLE -003ABAH 003AD1H 000018H BYTE UNIT CODE ?PR?U2F_HID_RESET_PACKET?U2F_HID -003AD2H 003AE8H 000017H BYTE UNIT CODE ?PR?USBD_CONNECT?EFM8_USBD -003AE9H 003AFFH 000017H BYTE UNIT CODE ?PR?_USB_WRITEFIFO_CODE?EFM8_USBDEP -003B00H 003B16H 000017H BYTE UNIT CODE ?PR?SENDEP0STALL?EFM8_USBDINT -003B17H 003B2CH 000016H BYTE UNIT CODE ?PR?_USB_WRITEFIFO_XDATA?EFM8_USBDEP -003B2DH 003B41H 000015H BYTE UNIT CODE ?PR?RESTART_BUS?INTERRUPTS -003B42H 003B56H 000015H BYTE UNIT CODE ?PR?SMB_INIT?I2C -003B57H 003B6AH 000014H BYTE UNIT CODE ?PR?PORTS_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003B6BH 003B7EH 000014H BYTE UNIT CODE ?PR?_USB_WRITEFIFO_IDATA?EFM8_USBDEP -003B7FH 003B92H 000014H BYTE UNIT CODE ?PR?_USB_WRITEFIFO_PDATA?EFM8_USBDEP -003B93H 003BA6H 000014H BYTE UNIT CODE ?PR?SMB_INIT_CRC?I2C -003BA7H 003BB9H 000013H BYTE UNIT CODE ?PR?TIMER01_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003BBAH 003BCCH 000013H BYTE UNIT CODE ?PR?TIMER16_2_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003BCDH 003BDFH 000013H BYTE UNIT CODE ?PR?INTERRUPTS -003BE0H 003BF2H 000013H BYTE UNIT CODE ?PR?_INT2STR_REDUCE_16?BSP -003BF3H 003C04H 000012H BYTE UNIT CODE ?PR?PORTS_1_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003C05H 003C15H 000011H BYTE UNIT CODE ?PR?U2F_HID_FLUSH?U2F_HID -003C16H 003C26H 000011H BYTE UNIT CODE ?PR?ATECC_WAKE?ATECC508A -003C27H 003C36H 000010H BYTE UNIT CODE ?PR?TIMER3_ISR?INTERRUPTS -003C37H 003C45H 00000FH BYTE UNIT CODE ?PR?HANDLEUSBSUSPENDINT?EFM8_USBDINT -003C46H 003C53H 00000EH BYTE UNIT CODE ?PR?CLOCK_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003C54H 003C60H 00000DH BYTE UNIT CODE ?PR?USB_GETSETUPEND?USB_0 -003C61H 003C6DH 00000DH BYTE UNIT CODE ?PR?USB_EP0SENTSTALL?USB_0 -003C6EH 003C7AH 00000DH BYTE UNIT CODE ?PR?USB_EP0INPACKETREADY?USB_0 -003C7BH 003C87H 00000DH BYTE UNIT CODE ?PR?USB_EPNINGETSENTSTALL?USB_0 -003C88H 003C94H 00000DH BYTE UNIT CODE ?PR?USB_EPNOUTGETSENTSTALL?USB_0 -003C95H 003CA0H 00000CH BYTE UNIT CODE ?CO?INTERRUPTS -003CA1H 003CACH 00000CH BYTE UNIT CODE ?PR?_U2F_PUTD?BSP -003CADH 003CB8H 00000CH BYTE UNIT CODE ?PR?USB_EP0OUTPACKETREADY?USB_0 -003CB9H 003CC4H 00000CH BYTE UNIT CODE ?PR?USB_EPNGETOUTPACKETREADY?USB_0 -003CC5H 003CCFH 00000BH BYTE UNIT CODE ?PR?_USB_SETINDEX?USB_0 -003CD0H 003CDAH 00000BH BYTE UNIT CODE ?PR?USB_GETCOMMONINTS?USB_0 -003CDBH 003CE5H 00000BH BYTE UNIT CODE ?PR?USB_GETININTS?USB_0 -003CE6H 003CF0H 00000BH BYTE UNIT CODE ?PR?USB_GETOUTINTS?USB_0 -003CF1H 003CFBH 00000BH BYTE UNIT CODE ?PR?USB_GETINDEX?USB_0 -003CFCH 003D06H 00000BH BYTE UNIT CODE ?PR?USB_EP0GETCOUNT?USB_0 -003D07H 003D11H 00000BH BYTE UNIT CODE ?CO?ATECC508A -003D12H 003D1BH 00000AH BYTE UNIT CODE ?PR?WDT_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003D1CH 003D25H 00000AH BYTE UNIT CODE ?PR?TIMER_SETUP_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003D26H 003D2FH 00000AH BYTE UNIT CODE ?PR?_U2F_PUTB?BSP -003D30H 003D39H 00000AH BYTE UNIT CODE ?PR?ATECC_IDLE?ATECC508A -003D3AH 003D43H 00000AH BYTE UNIT CODE ?PR?EEPROM -003D44H 003D4DH 00000AH BYTE UNIT CODE ?PR?_SET_APP_U2F_HID_MSG?MAIN -003D4EH 003D56H 000009H BYTE UNIT CODE ?PR?USBLIB_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003D57H 003D5FH 000009H BYTE UNIT CODE ?PR?_U2F_PUTX?BSP -003D60H 003D68H 000009H BYTE UNIT CODE ?PR?_USBD_DEVICESTATECHANGECB?CALLBACK -003D69H 003D71H 000009H BYTE UNIT CODE ?PR?_U2F_HID_SET_LEN?U2F_HID -003D72H 003D7AH 000009H BYTE UNIT CODE ?PR?_REFRESH_CID?U2F_HID -003D7BH 003D82H 000008H BYTE UNIT CODE ?PR?HANDLEUSBRESUMEINT?EFM8_USBDINT -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 7 +003869H 003887H 00001FH BYTE UNIT CODE ?PR?_USB_READFIFO_PDATA?EFM8_USBDEP +003888H 0038A6H 00001FH BYTE UNIT CODE ?PR?I2C +0038A7H 0038C3H 00001DH BYTE UNIT CODE ?PR?USBD_ACTIVATEALLEPS?EFM8_USBDCH9 +0038C4H 0038E0H 00001DH BYTE UNIT CODE ?PR?_USB_READFIFO_IDATA?EFM8_USBDEP +0038E1H 0038FCH 00001CH BYTE UNIT CODE ?PR?MAIN +0038FDH 003917H 00001BH BYTE UNIT CODE ?PR?UPDATE_FROM_PACKET_LENGTH?INTERRUPTS +003918H 003932H 00001BH BYTE UNIT CODE ?PR?__FEED_CRC?INTERRUPTS +003933H 00394DH 00001BH BYTE UNIT CODE ?PR?_INIT?MAIN +00394EH 003967H 00001AH BYTE UNIT CODE ?PR?U2F_SHA256_START?U2F_ATECC +003968H 003980H 000019H BYTE UNIT CODE ?PR?U2F_VERSION?U2F +003981H 003999H 000019H BYTE UNIT CODE ?PR?WHILE_BUSY?I2C +00399AH 0039B1H 000018H BYTE UNIT CODE ?PR?_PUTF?BSP +0039B2H 0039C9H 000018H BYTE UNIT CODE ?PR?_IDLETIMERSET?IDLE +0039CAH 0039E1H 000018H BYTE UNIT CODE ?PR?U2F_HID_RESET_PACKET?U2F_HID +0039E2H 0039F8H 000017H BYTE UNIT CODE ?PR?USBD_CONNECT?EFM8_USBD +0039F9H 003A0FH 000017H BYTE UNIT CODE ?PR?_USB_WRITEFIFO_CODE?EFM8_USBDEP +003A10H 003A26H 000017H BYTE UNIT CODE ?PR?SENDEP0STALL?EFM8_USBDINT +003A27H 003A3DH 000017H BYTE UNIT CODE ?CO?MAIN +003A3EH 003A53H 000016H BYTE UNIT CODE ?PR?_USB_WRITEFIFO_XDATA?EFM8_USBDEP +003A54H 003A68H 000015H BYTE UNIT CODE ?PR?PORTS_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003A69H 003A7DH 000015H BYTE UNIT CODE ?PR?RESTART_BUS?INTERRUPTS +003A7EH 003A91H 000014H BYTE UNIT CODE ?PR?_USB_WRITEFIFO_IDATA?EFM8_USBDEP +003A92H 003AA5H 000014H BYTE UNIT CODE ?PR?_USB_WRITEFIFO_PDATA?EFM8_USBDEP +003AA6H 003AB9H 000014H BYTE UNIT CODE ?PR?SMB_INIT_CRC?I2C +003ABAH 003ACCH 000013H BYTE UNIT CODE ?PR?TIMER01_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003ACDH 003ADFH 000013H BYTE UNIT CODE ?PR?TIMER16_2_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003AE0H 003AF2H 000013H BYTE UNIT CODE ?PR?_INT2STR_REDUCE_16?BSP +003AF3H 003B05H 000013H BYTE UNIT CODE ?PR?SMB_INIT?I2C +003B06H 003B17H 000012H BYTE UNIT CODE ?PR?PORTS_1_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003B18H 003B28H 000011H BYTE UNIT CODE ?PR?U2F_HID_FLUSH?U2F_HID +003B29H 003B39H 000011H BYTE UNIT CODE ?PR?ATECC_WAKE?ATECC508A +003B3AH 003B4AH 000011H BYTE UNIT CODE ?PR?_RGB?MAIN +003B4BH 003B5AH 000010H BYTE UNIT CODE ?PR?TIMER3_ISR?INTERRUPTS +003B5BH 003B69H 00000FH BYTE UNIT CODE ?PR?HANDLEUSBSUSPENDINT?EFM8_USBDINT +003B6AH 003B77H 00000EH BYTE UNIT CODE ?PR?CLOCK_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003B78H 003B84H 00000DH BYTE UNIT CODE ?PR?USB_GETSETUPEND?USB_0 +003B85H 003B91H 00000DH BYTE UNIT CODE ?PR?USB_EP0SENTSTALL?USB_0 +003B92H 003B9EH 00000DH BYTE UNIT CODE ?PR?USB_EP0INPACKETREADY?USB_0 +003B9FH 003BABH 00000DH BYTE UNIT CODE ?PR?USB_EPNINGETSENTSTALL?USB_0 +003BACH 003BB8H 00000DH BYTE UNIT CODE ?PR?USB_EPNOUTGETSENTSTALL?USB_0 +003BB9H 003BC4H 00000CH BYTE UNIT CODE ?CO?INTERRUPTS +003BC5H 003BD0H 00000CH BYTE UNIT CODE ?PR?_U2F_PUTD?BSP +003BD1H 003BDCH 00000CH BYTE UNIT CODE ?PR?USB_EP0OUTPACKETREADY?USB_0 +003BDDH 003BE8H 00000CH BYTE UNIT CODE ?PR?USB_EPNGETOUTPACKETREADY?USB_0 +003BE9H 003BF3H 00000BH BYTE UNIT CODE ?PR?INTERRUPTS +003BF4H 003BFEH 00000BH BYTE UNIT CODE ?PR?_USB_SETINDEX?USB_0 +003BFFH 003C09H 00000BH BYTE UNIT CODE ?PR?USB_GETCOMMONINTS?USB_0 +003C0AH 003C14H 00000BH BYTE UNIT CODE ?PR?USB_GETININTS?USB_0 +003C15H 003C1FH 00000BH BYTE UNIT CODE ?PR?USB_GETOUTINTS?USB_0 +003C20H 003C2AH 00000BH BYTE UNIT CODE ?PR?USB_GETINDEX?USB_0 +003C2BH 003C35H 00000BH BYTE UNIT CODE ?PR?USB_EP0GETCOUNT?USB_0 +003C36H 003C40H 00000BH BYTE UNIT CODE ?CO?ATECC508A +003C41H 003C4AH 00000AH BYTE UNIT CODE ?PR?WDT_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003C4BH 003C54H 00000AH BYTE UNIT CODE ?PR?PBCFG_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003C55H 003C5EH 00000AH BYTE UNIT CODE ?PR?TIMER_SETUP_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003C5FH 003C68H 00000AH BYTE UNIT CODE ?PR?_U2F_PUTB?BSP +003C69H 003C72H 00000AH BYTE UNIT CODE ?PR?ATECC_IDLE?ATECC508A +003C73H 003C7CH 00000AH BYTE UNIT CODE ?PR?EEPROM +003C7DH 003C86H 00000AH BYTE UNIT CODE ?PR?_SET_APP_U2F_HID_MSG?MAIN +003C87H 003C8FH 000009H BYTE UNIT CODE ?PR?USBLIB_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003C90H 003C98H 000009H BYTE UNIT CODE ?PR?_USBD_DEVICESTATECHANGECB?CALLBACK +003C99H 003CA1H 000009H BYTE UNIT CODE ?PR?_U2F_HID_SET_LEN?U2F_HID +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 7 -003D83H 003D89H 000007H BYTE UNIT CODE ?PR?VREG_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003D8AH 003D90H 000007H BYTE UNIT CODE ?PR?PBCFG_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003D91H 003D97H 000007H BYTE UNIT CODE ?PR?CIP51_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003D98H 003D9EH 000007H BYTE UNIT CODE ?PR?INTERRUPT_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003D9FH 003DA5H 000007H BYTE UNIT CODE ?PR?USB_GETINTSENABLED?USB_0 -003DA6H 003DACH 000007H BYTE UNIT CODE ?PR?U2F_GET_ATTESTATION_CERT?U2F_ATECC -003DADH 003DB2H 000006H BYTE UNIT CODE ?PR?_U2F_PUTL?BSP -003DB3H 003DB8H 000006H BYTE UNIT CODE ?PR?IDLEGETRATE?IDLE -003DB9H 003DBEH 000006H BYTE UNIT CODE ?PR?USB_EPOUTGETCOUNT?USB_0 -003DBFH 003DC2H 000004H BYTE UNIT CODE ?PR?SMBUS_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003DC3H 003DC6H 000004H BYTE UNIT CODE ?PR?UART_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE -003DC7H 003DC9H 000003H BYTE UNIT CODE ?PR?_SET_APP_ERROR?MAIN -003DCAH 003DCCH 000003H BYTE UNIT CODE ?PR?TEST_APP?MAIN -003DCDH 003DCFH 000003H BYTE UNIT CODE ?PR?_U2F_RESPONSE_WRITEBACK?U2F_ATECC -003DD0H 003DD2H 000003H BYTE UNIT CODE ?PR?U2F_RESPONSE_FLUSH?U2F_ATECC -003DD3H 003DD5H 000003H BYTE UNIT CODE ?PR?U2F_GET_USER_FEEDBACK?U2F_ATECC -003DD6H 003DD7H 000002H BYTE UNIT CODE ?PR?USBD_ISSELFPOWEREDCB?CALLBACK -003DD8H 003DD9H 000002H BYTE UNIT CODE ?PR?_SLAB_ASSERT?ASSERT -003DDAH 003DDAH 000001H BYTE UNIT CODE ?PR?USBD_RESETCB?CALLBACK -003DDBH 003DDBH 000001H BYTE UNIT CODE ?PR?FORCEMODULELOAD_USBINT?EFM8_USBDINT -003DDCH 003DDCH 000001H BYTE UNIT CODE ?PR?U2F_RESPONSE_START?U2F_ATECC -003DDDH 003E96H 0000BAH BYTE UNIT CONST ?CO?DESCRIPTORS -003E97H 003E98H 000002H BYTE UNIT CONST ?CO?EFM8_USBDCH9 +003CA2H 003CAAH 000009H BYTE UNIT CODE ?PR?_REFRESH_CID?U2F_HID +003CABH 003CB2H 000008H BYTE UNIT CODE ?PR?PCA_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003CB3H 003CBAH 000008H BYTE UNIT CODE ?PR?HANDLEUSBRESUMEINT?EFM8_USBDINT +003CBBH 003CC1H 000007H BYTE UNIT CODE ?PR?VREG_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003CC2H 003CC8H 000007H BYTE UNIT CODE ?PR?CIP51_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003CC9H 003CCFH 000007H BYTE UNIT CODE ?PR?INTERRUPT_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003CD0H 003CD6H 000007H BYTE UNIT CODE ?PR?PCACH_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003CD7H 003CDDH 000007H BYTE UNIT CODE ?PR?PCACH_1_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003CDEH 003CE4H 000007H BYTE UNIT CODE ?PR?PCACH_2_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003CE5H 003CEBH 000007H BYTE UNIT CODE ?PR?USB_GETINTSENABLED?USB_0 +003CECH 003CF2H 000007H BYTE UNIT CODE ?PR?U2F_GET_ATTESTATION_CERT?U2F_ATECC +003CF3H 003CF8H 000006H BYTE UNIT CODE ?PR?_U2F_PUTL?BSP +003CF9H 003CFEH 000006H BYTE UNIT CODE ?PR?IDLEGETRATE?IDLE +003CFFH 003D04H 000006H BYTE UNIT CODE ?PR?USB_EPOUTGETCOUNT?USB_0 +003D05H 003D08H 000004H BYTE UNIT CODE ?PR?SMBUS_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003D09H 003D0CH 000004H BYTE UNIT CODE ?PR?UART_0_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE +003D0DH 003D0FH 000003H BYTE UNIT CODE ?PR?_SET_APP_ERROR?MAIN +003D10H 003D12H 000003H BYTE UNIT CODE ?PR?_U2F_RESPONSE_WRITEBACK?U2F_ATECC +003D13H 003D15H 000003H BYTE UNIT CODE ?PR?U2F_RESPONSE_FLUSH?U2F_ATECC +003D16H 003D17H 000002H BYTE UNIT CODE ?PR?USBD_ISSELFPOWEREDCB?CALLBACK +003D18H 003D19H 000002H BYTE UNIT CODE ?PR?_SLAB_ASSERT?ASSERT +003D1AH 003D1AH 000001H BYTE UNIT CODE ?PR?USBD_RESETCB?CALLBACK +003D1BH 003D1BH 000001H BYTE UNIT CODE ?PR?FORCEMODULELOAD_USBINT?EFM8_USBDINT +003D1CH 003D1CH 000001H BYTE UNIT CODE ?PR?U2F_RESPONSE_START?U2F_ATECC +003D1DH 003E7BH 00015FH BYTE UNIT CONST ?CO?U2F_ATECC +003E7CH 003F35H 0000BAH BYTE UNIT CONST ?CO?DESCRIPTORS +003F36H 003F37H 000002H BYTE UNIT CONST ?CO?EFM8_USBDCH9 * * * * * * * * * * * X D A T A M E M O R Y * * * * * * * * * * * * * -000000H 00011FH 000120H BYTE UNIT XDATA _XDATA_GROUP_ -000120H 000235H 000116H BYTE UNIT XDATA ?XD?U2F_HID -000236H 0002C8H 000093H BYTE UNIT XDATA ?XD?U2F_ATECC -0002C9H 000309H 000041H BYTE UNIT XDATA ?XD?CALLBACK -00030AH 000334H 00002BH BYTE UNIT XDATA ?XD?EFM8_USBD -000335H 00034BH 000017H BYTE UNIT XDATA ?XD?INTERRUPTS -00034CH 000357H 00000CH BYTE UNIT XDATA ?XD?BSP -000358H 00035AH 000003H BYTE UNIT XDATA ?XD?IDLE -00035BH 00035CH 000002H BYTE UNIT XDATA ?XD?EFM8_USBDCH9 -00035DH 00035EH 000002H BYTE UNIT XDATA ?XD?ATECC508A +000000H 000149H 00014AH BYTE UNIT XDATA ?XD?U2F_HID +00014AH 00026EH 000125H BYTE UNIT XDATA _XDATA_GROUP_ +00026FH 000301H 000093H BYTE UNIT XDATA ?XD?U2F_ATECC +000302H 000342H 000041H BYTE UNIT XDATA ?XD?CALLBACK +000343H 00036DH 00002BH BYTE UNIT XDATA ?XD?EFM8_USBD +00036EH 000382H 000015H BYTE UNIT XDATA ?XD?INTERRUPTS +000383H 00038EH 00000CH BYTE UNIT XDATA ?XD?BSP +00038FH 000391H 000003H BYTE UNIT XDATA ?XD?IDLE +000392H 000393H 000002H BYTE UNIT XDATA ?XD?EFM8_USBDCH9 +000394H 000395H 000002H BYTE UNIT XDATA ?XD?ATECC508A * * * * * * * * * R E M O V E D S E G M E N T S * * * * * * * * *DEL*: 000015H BYTE UNIT CODE ?PR?PORTS_2_ENTER_DEFAULTMODE_FROM_RESET?INITDEVICE + *DEL*: 000009H BYTE UNIT CODE ?PR?_U2F_PUTX?BSP *DEL*: 000006H BYTE UNIT CODE ?PR?_U2F_PUTLX?BSP + *DEL*: 000035H BYTE UNIT CODE ?PR?_U2F_PRINTX?BSP + *DEL*: 00002FH BYTE UNIT XDATA ?XD?_U2F_PRINTX?BSP *DEL*: 000035H BYTE UNIT CODE ?PR?_U2F_PRINTLX?BSP *DEL*: 00002FH BYTE UNIT XDATA ?XD?_U2F_PRINTLX?BSP *DEL*: 000009H BYTE UNIT CODE ?PR?ISIDLETIMERINDEFINITE?IDLE @@ -447,6 +454,9 @@ START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME *DEL*: 000077H BYTE UNIT CODE ?PR?_USBD_STALLEP?EFM8_USBD *DEL*: 000002H BYTE UNIT XDATA ?XD?_USBD_STALLEP?EFM8_USBD *DEL*: 000000H.1 BIT UNIT BIT ?BI?_USBD_STALLEP?EFM8_USBD +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 8 + + *DEL*: 00000BH BYTE UNIT CODE ?PR?USBD_STOP?EFM8_USBD *DEL*: 000064H BYTE UNIT CODE ?PR?USBD_SUSPEND?EFM8_USBD *DEL*: 000001H BYTE UNIT XDATA ?XD?USBD_SUSPEND?EFM8_USBD @@ -454,9 +464,6 @@ START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME *DEL*: 000075H BYTE UNIT CODE ?PR?_USBD_UNSTALLEP?EFM8_USBD *DEL*: 000002H BYTE UNIT XDATA ?XD?_USBD_UNSTALLEP?EFM8_USBD *DEL*: 000000H.1 BIT UNIT BIT ?BI?_USBD_UNSTALLEP?EFM8_USBD -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 8 - - *DEL*: 00000AH BYTE UNIT CODE ?PR?ATECC_SLEEP?ATECC508A *DEL*: 0000BAH BYTE UNIT CODE ?PR?_ATECC_WRITE_EEPROM?ATECC508A *DEL*: 000014H BYTE UNIT XDATA ?XD?_ATECC_WRITE_EEPROM?ATECC508A @@ -474,7 +481,7 @@ TIMER2_ISR/INTERRUPTS ----- ----- ----- ----- ----- -- *** NEW ROOT ******************************** -SMBUS0_ISR/INTERRUPTS ----- ----- ----- ----- 0000H 0000H +SMBUS0_ISR/INTERRUPTS ----- ----- 0015H 0015H ----- ----- +--> INTERRUPTS +--> __FEED_CRC/INTERRUPTS +--> UPDATE_FROM_PACKET_LENGTH/INTERRUPTS @@ -498,12 +505,12 @@ UPDATE_FROM_PACKET_LENGTH/INTERRUPTS ----- ----- ----- ----- ----- -- ?CO?INTERRUPTS ----- ----- ----- ----- ----- ----- -_U2F_PRINTB/BSP ----- ----- ----- ----- 00C3H 00F1H +_U2F_PRINTB/BSP ----- ----- ----- ----- 0212H 0240H +--> _U2F_PRINTS/BSP +--> BSP +--> _U2F_PUTB/BSP -_U2F_PRINTS/BSP ----- ----- ----- ----- 0112H 0114H +_U2F_PRINTS/BSP ----- ----- ----- ----- 0261H 0263H +--> BSP +--> _PUTF/BSP @@ -512,27 +519,26 @@ BSP ----- ----- ----- ----- ----- -- ?CO?BSP ----- ----- ----- ----- ----- ----- +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 9 + + _PUTF/BSP ----- ----- ----- ----- ----- ----- _U2F_PUTB/BSP ----- ----- ----- ----- ----- ----- +--> ___INT2STR16/BSP +--> _U2F_PRINTS/BSP -___INT2STR16/BSP ----- ----- ----- ----- 0112H 0118H -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 9 - - +___INT2STR16/BSP ----- ----- ----- ----- 0261H 0267H +--> BSP +--> _INT2STR_REDUCE_16/BSP +--> _INT2STR_MAP_16/BSP _INT2STR_REDUCE_16/BSP ----- ----- ----- ----- ----- ----- -_INT2STR_MAP_16/BSP ----- ----- ----- ----- 0119H 011FH +_INT2STR_MAP_16/BSP ----- ----- ----- ----- 0268H 026EH +--> BSP RESTART_BUS/INTERRUPTS ----- ----- ----- ----- ----- ----- - +--> INTERRUPTS _REVERSE_BITS/I2C ----- ----- ----- ----- ----- ----- +--> I2C @@ -548,20 +554,20 @@ TIMER3_ISR/INTERRUPTS ----- ----- ----- ----- ----- -- +--> MAIN/MAIN +--> ?C_INITSEG -MAIN/MAIN ----- ----- 0008H 000FH 003EH 0040H +MAIN/MAIN ----- ----- ----- ----- 0187H 018FH +--> ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE +--> _INIT/MAIN +--> ?CO?MAIN +--> _U2F_PRINTS/BSP + +--> MAIN +--> _U2F_PRINTL/BSP - +--> _U2F_PRINTX/BSP - +--> TEST_APP/MAIN +--> _USBD_EPISBUSY/EFM8_USBD +--> _USBD_READ/EFM8_USBD + +--> _RGB/MAIN +--> _U2F_HID_REQUEST/U2F_HID +--> _U2F_PRINTB/BSP -ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE ----- ----- ----- ----- 0041H 0041H +ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE ----- ----- ----- ----- 0190H 0190H +--> WDT_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE +--> VREG_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE +--> PORTS_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE @@ -573,7 +579,14 @@ ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE ----- ----- ----- ----- 0041H 00 +--> TIMER16_2_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE +--> TIMER16_3_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE +--> TIMER_SETUP_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE + +--> PCA_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE + +--> PCACH_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE + +--> PCACH_1_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE + +--> PCACH_2_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE +--> SMBUS_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 10 + + +--> UART_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE +--> INTERRUPT_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE +--> USBLIB_0_ENTER_DEFAULTMODE_FROM_RESET/INITDEVICE @@ -584,9 +597,6 @@ WDT_0_ENTER_DEFAULTMODE_FROM_RESET/INITD+ ----- ----- ----- ----- ----- -- VREG_0_ENTER_DEFAULTMODE_FROM_RESET/INIT+ ----- ----- ----- ----- ----- ----- ... DEVICE -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 10 - - PORTS_0_ENTER_DEFAULTMODE_FROM_RESET/INI+ ----- ----- ----- ----- ----- ----- ... TDEVICE @@ -614,6 +624,18 @@ TIMER16_3_ENTER_DEFAULTMODE_FROM_RESET/I+ ----- ----- ----- ----- ----- -- TIMER_SETUP_0_ENTER_DEFAULTMODE_FROM_RES+ ----- ----- ----- ----- ----- ----- ... ET/INITDEVICE +PCA_0_ENTER_DEFAULTMODE_FROM_RESET/INITD+ ----- ----- ----- ----- ----- ----- +... EVICE + +PCACH_0_ENTER_DEFAULTMODE_FROM_RESET/INI+ ----- ----- ----- ----- ----- ----- +... TDEVICE + +PCACH_1_ENTER_DEFAULTMODE_FROM_RESET/INI+ ----- ----- ----- ----- ----- ----- +... TDEVICE + +PCACH_2_ENTER_DEFAULTMODE_FROM_RESET/INI+ ----- ----- ----- ----- ----- ----- +... TDEVICE + SMBUS_0_ENTER_DEFAULTMODE_FROM_RESET/INI+ ----- ----- ----- ----- ----- ----- ... TDEVICE @@ -627,10 +649,13 @@ USBLIB_0_ENTER_DEFAULTMODE_FROM_RESET/IN+ ----- ----- ----- ----- ----- -- ... ITDEVICE +--> ?CO?DESCRIPTORS +--> _USBD_INIT/EFM8_USBD +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 11 + + ?CO?DESCRIPTORS ----- ----- ----- ----- ----- ----- -_USBD_INIT/EFM8_USBD ----- ----- ----- ----- 0042H 0045H +_USBD_INIT/EFM8_USBD ----- ----- ----- ----- 0191H 0194H +--> EFM8_USBD +--> FORCEMODULELOAD_USBINT/EFM8_USBDINT +--> USBD_CONNECT/EFM8_USBD @@ -649,9 +674,6 @@ _INIT/MAIN ----- ----- ----- ----- ----- -- +--> SMB_INIT/I2C +--> ATECC_IDLE/ATECC508A +--> EEPROM_INIT/EEPROM -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 11 - - +--> U2F_INIT/U2F_ATECC U2F_HID_INIT/U2F_HID ----- ----- ----- ----- ----- ----- @@ -667,43 +689,41 @@ ATECC_IDLE/ATECC508A ----- ----- ----- ----- ----- -- ATECC508A ----- ----- ----- ----- ----- ----- -_SMB_WRITE/I2C ----- ----- ----- ----- 00CBH 00CFH +_SMB_WRITE/I2C ----- ----- ----- ----- 021AH 021EH +--> WHILE_BUSY/I2C - +--> I2C WHILE_BUSY/I2C ----- ----- ----- ----- ----- ----- +--> _SET_APP_ERROR/MAIN _SET_APP_ERROR/MAIN ----- ----- ----- ----- ----- ----- -EEPROM_INIT/EEPROM ----- ----- ----- ----- 0041H 0041H +EEPROM_INIT/EEPROM ----- ----- ----- ----- 0190H 0190H +--> EEPROM +--> _EEPROM_READ/EEPROM +--> __EEPROM_WRITE/EEPROM EEPROM ----- ----- ----- ----- ----- ----- -_EEPROM_READ/EEPROM 20H.0 20H.0 ----- ----- 00B3H 00B8H +_EEPROM_READ/EEPROM 20H.0 20H.0 ----- ----- 0202H 0207H -__EEPROM_WRITE/EEPROM 20H.0 20H.0 0010H 0011H 00B2H 00B8H +__EEPROM_WRITE/EEPROM 20H.0 20H.0 0016H 0017H 0201H 0207H -U2F_INIT/U2F_ATECC ----- ----- ----- ----- 0041H 0046H +U2F_INIT/U2F_ATECC ----- ----- ----- ----- 0190H 0195H +--> U2F_ATECC +--> _EEPROM_READ/EEPROM - +--> ?CO?U2F_ATECC - +--> _U2F_PRINTS/BSP +--> FLUSH_KEY_STORE/U2F_ATECC +--> _ATECC_SEND_RECV/ATECC508A +--> __EEPROM_WRITE/EEPROM +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 12 + + U2F_ATECC ----- ----- ----- ----- ----- ----- -?CO?U2F_ATECC ----- ----- ----- ----- ----- ----- - FLUSH_KEY_STORE/U2F_ATECC ----- ----- ----- ----- ----- ----- +--> __EEPROM_WRITE/EEPROM -_ATECC_SEND_RECV/ATECC508A ----- ----- ----- ----- 00B3H 00C2H +_ATECC_SEND_RECV/ATECC508A ----- ----- ----- ----- 0202H 0211H +--> ATECC_WAKE/ATECC508A +--> _ATECC_SEND/ATECC508A +--> _U2F_DELAY/BSP @@ -714,12 +734,9 @@ _ATECC_SEND_RECV/ATECC508A ----- ----- ----- ----- 00B3H 00 +--> ATECC_IDLE/ATECC508A ATECC_WAKE/ATECC508A ----- ----- ----- ----- ----- ----- -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 12 - - +--> _SMB_WRITE/I2C -_ATECC_SEND/ATECC508A ----- ----- ----- ----- 00C3H 00CAH +_ATECC_SEND/ATECC508A ----- ----- ----- ----- 0212H 0219H +--> SMB_INIT_CRC/I2C +--> _SMB_SET_EXT_WRITE/I2C +--> ATECC508A @@ -728,20 +745,19 @@ _ATECC_SEND/ATECC508A ----- ----- ----- ----- 00C3H 00 SMB_INIT_CRC/I2C ----- ----- ----- ----- ----- ----- +--> WHILE_BUSY/I2C -_SMB_SET_EXT_WRITE/I2C ----- ----- ----- ----- 00CBH 00CEH +_SMB_SET_EXT_WRITE/I2C ----- ----- ----- ----- 021AH 021DH +--> WHILE_BUSY/I2C -_U2F_DELAY/BSP ----- ----- ----- ----- 00C3H 00C8H +_U2F_DELAY/BSP ----- ----- ----- ----- 0212H 0217H -_ATECC_RECV/ATECC508A ----- ----- ----- ----- 00C3H 00CAH +_ATECC_RECV/ATECC508A ----- ----- ----- ----- 0212H 0219H +--> SMB_INIT_CRC/I2C +--> ATECC508A +--> _SMB_READ/I2C +--> _SET_APP_ERROR/MAIN -_SMB_READ/I2C ----- ----- ----- ----- 00CBH 00CFH +_SMB_READ/I2C ----- ----- ----- ----- 021AH 021EH +--> WHILE_BUSY/I2C - +--> I2C ?CO?ATECC508A ----- ----- ----- ----- ----- ----- @@ -750,7 +766,9 @@ _DELAY_CMD/ATECC508A ----- ----- ----- ----- ----- -- ?CO?MAIN ----- ----- ----- ----- ----- ----- -_U2F_PRINTL/BSP ----- ----- ----- ----- 0041H 006FH +MAIN ----- ----- ----- ----- ----- ----- + +_U2F_PRINTL/BSP ----- ----- ----- ----- 0190H 01BEH +--> _U2F_PRINTS/BSP +--> BSP +--> _U2F_PUTL/BSP @@ -759,45 +777,36 @@ _U2F_PUTL/BSP ----- ----- ----- ----- ----- -- +--> ___INT2STR10/BSP +--> _U2F_PRINTS/BSP -___INT2STR10/BSP ----- ----- ----- ----- 00E5H 00EBH +___INT2STR10/BSP ----- ----- ----- ----- 0234H 023AH +--> BSP +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 13 + + +--> _INT2STR_REDUCE_10/BSP +--> _INT2STR_MAP_10/BSP -_INT2STR_REDUCE_10/BSP ----- ----- ----- ----- 00ECH 00F2H +_INT2STR_REDUCE_10/BSP ----- ----- ----- ----- 023BH 0241H +--> BSP -_INT2STR_MAP_10/BSP ----- ----- ----- ----- 00ECH 00F2H +_INT2STR_MAP_10/BSP ----- ----- ----- ----- 023BH 0241H +--> BSP -_U2F_PRINTX/BSP ----- ----- ----- ----- 0041H 006FH - +--> _U2F_PRINTS/BSP - +--> BSP - +--> _U2F_PUTX/BSP - -_U2F_PUTX/BSP ----- ----- ----- ----- ----- ----- - +--> ___INT2STR16/BSP - +--> _U2F_PRINTS/BSP - -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 13 - - -TEST_APP/MAIN ----- ----- ----- ----- ----- ----- - -_USBD_EPISBUSY/EFM8_USBD ----- ----- ----- ----- 0041H 0041H +_USBD_EPISBUSY/EFM8_USBD ----- ----- ----- ----- 0190H 0190H +--> EFM8_USBD +--> _SLAB_ASSERT/ASSERT _SLAB_ASSERT/ASSERT ----- ----- ----- ----- ----- ----- -_USBD_READ/EFM8_USBD 20H.0 20H.1 ----- ----- 0041H 0049H +_USBD_READ/EFM8_USBD 20H.0 20H.1 ----- ----- 0190H 0198H +--> EFM8_USBD +--> _SLAB_ASSERT/ASSERT +--> USB_GETINTSENABLED/USB_0 USB_GETINTSENABLED/USB_0 ----- ----- ----- ----- ----- ----- -_U2F_HID_REQUEST/U2F_HID ----- ----- ----- ----- 0041H 0049H +_RGB/MAIN ----- ----- ----- ----- ----- ----- + +_U2F_HID_REQUEST/U2F_HID ----- ----- ----- ----- 0190H 0198H +--> U2F_HID +--> _GET_CID/U2F_HID +--> _REFRESH_CID/U2F_HID @@ -807,7 +816,7 @@ _U2F_HID_REQUEST/U2F_HID ----- ----- ----- ----- 0041H 00 +--> _U2F_PRINTS/BSP +--> _HID_U2F_PARSE/U2F_HID -_GET_CID/U2F_HID ----- ----- ----- ----- 004AH 004EH +_GET_CID/U2F_HID ----- ----- ----- ----- 0199H 019DH +--> U2F_HID _REFRESH_CID/U2F_HID ----- ----- ----- ----- ----- ----- @@ -816,25 +825,28 @@ _REFRESH_CID/U2F_HID ----- ----- ----- ----- ----- -- U2F_HID_RESET_PACKET/U2F_HID ----- ----- ----- ----- ----- ----- +--> U2F_HID -_STAMP_ERROR/U2F_HID ----- ----- ----- ----- 0052H 0056H +_STAMP_ERROR/U2F_HID ----- ----- ----- ----- 01A4H 01A8H +--> U2F_HID +--> _USB_WRITE/BSP +--> _DEL_CID/U2F_HID -_USB_WRITE/BSP ----- ----- ----- ----- 00AFH 00B5H +_USB_WRITE/BSP ----- ----- ----- ----- 01FEH 0204H +--> _USBD_WRITE/EFM8_USBD +--> _U2F_DELAY/BSP +--> ?CO?BSP +--> _U2F_PRINTD/BSP -_USBD_WRITE/EFM8_USBD 20H.3 20H.4 ----- ----- 0107H 010FH +_USBD_WRITE/EFM8_USBD 20H.3 20H.4 ----- ----- 0256H 025EH +--> EFM8_USBD +--> _SLAB_ASSERT/ASSERT +--> USB_GETINTSENABLED/USB_0 +--> _USB_WRITEFIFO/EFM8_USBDEP -_USB_WRITEFIFO/EFM8_USBDEP 20H.5 20H.5 ----- ----- 0110H 0114H +_USB_WRITEFIFO/EFM8_USBDEP 20H.5 20H.5 ----- ----- 025FH 0263H +--> EFM8_USBDEP +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 14 + + +--> _USB_WRITEFIFO_IDATA/EFM8_USBDEP +--> _USB_WRITEFIFO_XDATA/EFM8_USBDEP +--> _USB_WRITEFIFO_PDATA/EFM8_USBDEP @@ -844,9 +856,6 @@ _USB_WRITEFIFO/EFM8_USBDEP 20H.5 20H.5 ----- ----- 0110H 01 EFM8_USBDEP ----- ----- ----- ----- ----- ----- _USB_WRITEFIFO_IDATA/EFM8_USBDEP ----- ----- ----- ----- ----- ----- -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 14 - - _USB_WRITEFIFO_XDATA/EFM8_USBDEP ----- ----- ----- ----- ----- ----- @@ -856,7 +865,7 @@ _USB_WRITEFIFO_CODE/EFM8_USBDEP ----- ----- ----- ----- ----- -- _USB_SETINDEX/USB_0 ----- ----- ----- ----- ----- ----- -_U2F_PRINTD/BSP ----- ----- ----- ----- 00B6H 00E4H +_U2F_PRINTD/BSP ----- ----- ----- ----- 0205H 0233H +--> _U2F_PRINTS/BSP +--> BSP +--> _U2F_PUTD/BSP @@ -865,12 +874,12 @@ _U2F_PUTD/BSP ----- ----- ----- ----- ----- -- +--> ___INT2STR10/BSP +--> _U2F_PRINTS/BSP -_DEL_CID/U2F_HID ----- ----- ----- ----- 0057H 005BH +_DEL_CID/U2F_HID ----- ----- ----- ----- 01A9H 01ADH +--> U2F_HID ?CO?U2F_HID ----- ----- ----- ----- ----- ----- -_HID_U2F_PARSE/U2F_HID ----- ----- ----- ----- 004AH 0051H +_HID_U2F_PARSE/U2F_HID ----- ----- ----- ----- 0199H 01A0H +--> U2F_HID +--> ?CO?U2F_HID +--> _U2F_HID_SET_LEN/U2F_HID @@ -886,20 +895,23 @@ _HID_U2F_PARSE/U2F_HID ----- ----- ----- ----- 004AH 00 _U2F_HID_SET_LEN/U2F_HID ----- ----- ----- ----- ----- ----- -GET_NEW_CID/U2F_HID ----- ----- ----- ----- 0052H 0053H +GET_NEW_CID/U2F_HID ----- ----- ----- ----- 01A1H 01A2H +--> U2F_HID +--> _IS_CID_FREE/U2F_HID +--> _REFRESH_CID/U2F_HID -_IS_CID_FREE/U2F_HID ----- ----- ----- ----- 0054H 0056H +_IS_CID_FREE/U2F_HID ----- ----- ----- ----- 01A3H 01A5H +--> U2F_HID -_U2F_HID_WRITEBACK/U2F_HID ----- ----- ----- ----- 00AAH 00AEH +_U2F_HID_WRITEBACK/U2F_HID ----- ----- ----- ----- 01F9H 01FDH +--> U2F_HID +--> _SET_APP_ERROR/MAIN +--> _USB_WRITE/BSP U2F_HID_FLUSH/U2F_HID ----- ----- ----- ----- ----- ----- +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 15 + + +--> U2F_HID +--> _USB_WRITE/BSP +--> U2F_HID_RESET_PACKET/U2F_HID @@ -907,15 +919,13 @@ U2F_HID_FLUSH/U2F_HID ----- ----- ----- ----- ----- -- _START_BUFFERING/U2F_HID ----- ----- ----- ----- ----- ----- +--> U2F_HID -_BUFFER_REQUEST/U2F_HID ----- ----- ----- ----- 0052H 0054H +_BUFFER_REQUEST/U2F_HID ----- ----- ----- ----- 01A1H 01A3H +--> ?CO?U2F_HID -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 15 - - +--> _U2F_PRINTS/BSP +--> U2F_HID + +--> _STAMP_ERROR/U2F_HID -_U2F_REQUEST/U2F ----- ----- ----- ----- 0052H 0057H +_U2F_REQUEST/U2F ----- ----- ----- ----- 01A1H 01A6H +--> U2F_RESPONSE_START/U2F_ATECC +--> ?CO?U2F +--> _U2F_REGISTER/U2F @@ -929,7 +939,7 @@ U2F_RESPONSE_START/U2F_ATECC ----- ----- ----- ----- ----- -- ?CO?U2F ----- ----- ----- ----- ----- ----- -_U2F_REGISTER/U2F ----- ----- ----- ----- 0058H 00A2H +_U2F_REGISTER/U2F ----- ----- ----- ----- 01A7H 01F1H +--> ?CO?U2F +--> U2F +--> U2F_ATTESTATION_CERT_SIZE/U2F_ATECC @@ -949,9 +959,10 @@ U2F ----- ----- ----- ----- ----- -- U2F_ATTESTATION_CERT_SIZE/U2F_ATECC ----- ----- ----- ----- ----- ----- -U2F_GET_USER_FEEDBACK/U2F_ATECC ----- ----- ----- ----- ----- ----- +U2F_GET_USER_FEEDBACK/U2F_ATECC ----- ----- ----- ----- 01F2H 01F5H + +--> _RGB/MAIN -_U2F_NEW_KEYPAIR/U2F_ATECC ----- ----- ----- ----- 00A3H 00B1H +_U2F_NEW_KEYPAIR/U2F_ATECC ----- ----- ----- ----- 01F2H 0200H +--> U2F_ATECC +--> _ATECC_SEND_RECV/ATECC508A +--> _EEPROM_READ/EEPROM @@ -962,7 +973,10 @@ U2F_SHA256_START/U2F_ATECC ----- ----- ----- ----- ----- -- +--> U2F_ATECC +--> _ATECC_SEND_RECV/ATECC508A -_U2F_SHA256_UPDATE/U2F_ATECC ----- ----- ----- ----- 00A3H 00A7H +_U2F_SHA256_UPDATE/U2F_ATECC ----- ----- ----- ----- 01F2H 01F6H +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 16 + + +--> U2F_ATECC +--> _ATECC_SEND_RECV/ATECC508A @@ -970,13 +984,10 @@ U2F_SHA256_FINISH/U2F_ATECC ----- ----- ----- ----- ----- -- +--> U2F_ATECC +--> _ATECC_SEND_RECV/ATECC508A -_U2F_ECDSA_SIGN/U2F_ATECC ----- ----- ----- ----- 00A3H 00B2H +_U2F_ECDSA_SIGN/U2F_ATECC ----- ----- ----- ----- 01F2H 0201H +--> U2F_ATECC +--> _ATECC_SEND_RECV/ATECC508A +--> _EEPROM_READ/EEPROM -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 16 - - _GET_SIGNATURE_LENGTH/U2F ----- ----- ----- ----- ----- ----- @@ -986,15 +997,18 @@ _U2F_RESPONSE_WRITEBACK/U2F_ATECC ----- ----- ----- ----- ----- -- U2F_GET_ATTESTATION_CERT/U2F_ATECC ----- ----- ----- ----- ----- ----- +--> ?CO?U2F_ATECC -_DUMP_SIGNATURE_DER/U2F ----- ----- ----- ----- 00A3H 00A9H +?CO?U2F_ATECC ----- ----- ----- ----- ----- ----- + +_DUMP_SIGNATURE_DER/U2F ----- ----- ----- ----- 01F2H 01F8H +--> ?CO?U2F +--> U2F +--> _U2F_RESPONSE_WRITEBACK/U2F_ATECC -_U2F_AUTHENTICATE/U2F ----- ----- ----- ----- 0058H 0060H +_U2F_AUTHENTICATE/U2F ----- ----- ----- ----- 01A7H 01AFH +--> U2F +--> _U2F_LOAD_KEY/U2F_ATECC +--> _U2F_HID_SET_LEN/U2F_HID + +--> U2F_GET_USER_FEEDBACK/U2F_ATECC +--> U2F_COUNT/U2F_ATECC +--> U2F_SHA256_START/U2F_ATECC +--> _U2F_SHA256_UPDATE/U2F_ATECC @@ -1004,11 +1018,11 @@ _U2F_AUTHENTICATE/U2F ----- ----- ----- ----- 0058H 00 +--> _U2F_RESPONSE_WRITEBACK/U2F_ATECC +--> _DUMP_SIGNATURE_DER/U2F -_U2F_LOAD_KEY/U2F_ATECC ----- ----- ----- ----- 0061H 0068H +_U2F_LOAD_KEY/U2F_ATECC ----- ----- ----- ----- 01B0H 01B7H +--> U2F_ATECC +--> _EEPROM_READ/EEPROM -U2F_COUNT/U2F_ATECC ----- ----- ----- ----- 0061H 0064H +U2F_COUNT/U2F_ATECC ----- ----- ----- ----- 01B0H 01B3H +--> U2F_ATECC +--> _ATECC_SEND_RECV/ATECC508A @@ -1025,7 +1039,10 @@ U2F_RESPONSE_FLUSH/U2F_ATECC ----- ----- ----- ----- ----- -- *** NEW ROOT ******************************** -USBIRQHANDLER/EFM8_USBDINT ----- ----- ----- ----- 0100H 0103H +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 17 + + +USBIRQHANDLER/EFM8_USBDINT ----- ----- ----- ----- 024FH 0252H +--> USB_GETCOMMONINTS/USB_0 +--> USB_GETININTS/USB_0 +--> USB_GETOUTINTS/USB_0 @@ -1039,9 +1056,6 @@ USBIRQHANDLER/EFM8_USBDINT ----- ----- ----- ----- 0100H 01 +--> _USB_SETINDEX/USB_0 USB_GETCOMMONINTS/USB_0 ----- ----- ----- ----- ----- ----- -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 17 - - USB_GETININTS/USB_0 ----- ----- ----- ----- ----- ----- @@ -1056,16 +1070,16 @@ HANDLEUSBRESETINT/EFM8_USBDINT ----- ----- ----- ----- ----- -- EFM8_USBDINT ----- ----- ----- ----- ----- ----- -_USBD_SETUSBSTATE/EFM8_USBD ----- ----- ----- ----- 0106H 0107H +_USBD_SETUSBSTATE/EFM8_USBD ----- ----- ----- ----- 0255H 0256H +--> USBD_ABORTALLTRANSFERS/EFM8_USBD +--> _USBD_DEVICESTATECHANGECB/CALLBACK -USBD_ABORTALLTRANSFERS/EFM8_USBD 20H.3 20H.3 ----- ----- 0108H 0109H +USBD_ABORTALLTRANSFERS/EFM8_USBD 20H.3 20H.3 ----- ----- 0257H 0258H +--> USB_GETINTSENABLED/USB_0 +--> EFM8_USBD +--> _USBD_ABORTTRANSFER/EFM8_USBD -_USBD_ABORTTRANSFER/EFM8_USBD 20H.4 20H.4 ----- ----- 010AH 010EH +_USBD_ABORTTRANSFER/EFM8_USBD 20H.4 20H.4 ----- ----- 0259H 025DH +--> EFM8_USBD +--> _SLAB_ASSERT/ASSERT +--> USB_GETINTSENABLED/USB_0 @@ -1078,7 +1092,7 @@ _USB_ABORTINEP/USB_0 ----- ----- ----- ----- ----- -- _USB_ABORTOUTEP/USB_0 ----- ----- ----- ----- ----- ----- +--> _USB_SETINDEX/USB_0 -_USBD_DEVICESTATECHANGECB/CALLBACK ----- ----- ----- ----- 0108H 0109H +_USBD_DEVICESTATECHANGECB/CALLBACK ----- ----- ----- ----- 0257H 0258H USBD_RESETCB/CALLBACK ----- ----- ----- ----- ----- ----- @@ -1088,8 +1102,11 @@ HANDLEUSBRESUMEINT/EFM8_USBDINT ----- ----- ----- ----- ----- -- HANDLEUSBSUSPENDINT/EFM8_USBDINT ----- ----- ----- ----- ----- ----- +--> _USBD_SETUSBSTATE/EFM8_USBD -HANDLEUSBIN1INT/EFM8_USBDEP 20H.3 20H.3 ----- ----- 0104H 0104H +HANDLEUSBIN1INT/EFM8_USBDEP 20H.3 20H.3 ----- ----- 0253H 0253H +--> _USB_SETINDEX/USB_0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 18 + + +--> USB_EPNINGETSENTSTALL/USB_0 +--> EFM8_USBDEP +--> _USB_WRITEFIFO/EFM8_USBDEP @@ -1097,22 +1114,19 @@ HANDLEUSBIN1INT/EFM8_USBDEP 20H.3 20H.3 ----- ----- 0104H 01 USB_EPNINGETSENTSTALL/USB_0 ----- ----- ----- ----- ----- ----- -_USBD_XFERCOMPLETECB/CALLBACK ----- ----- ----- ----- 0107H 010CH +_USBD_XFERCOMPLETECB/CALLBACK ----- ----- ----- ----- 0256H 025BH +--> _DUMP_HEX/BSP +--> _SET_APP_U2F_HID_MSG/MAIN -_DUMP_HEX/BSP ----- ----- ----- ----- 010DH 0111H +_DUMP_HEX/BSP ----- ----- ----- ----- 025CH 0260H +--> BSP +--> _PUTF/BSP -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 18 - - +--> _U2F_PUTB/BSP +--> _U2F_PRINTS/BSP _SET_APP_U2F_HID_MSG/MAIN ----- ----- ----- ----- ----- ----- -HANDLEUSBOUT1INT/EFM8_USBDEP 20H.3 20H.3 ----- ----- 0104H 0105H +HANDLEUSBOUT1INT/EFM8_USBDEP 20H.3 20H.3 ----- ----- 0253H 0254H +--> _USB_SETINDEX/USB_0 +--> USB_EPNOUTGETSENTSTALL/USB_0 +--> USB_EPNGETOUTPACKETREADY/USB_0 @@ -1130,7 +1144,7 @@ USB_EPOUTGETCOUNT/USB_0 ----- ----- ----- ----- ----- -- _USB_GETSHORTREGISTER/USB_0 ----- ----- ----- ----- ----- ----- -_USB_READFIFO/EFM8_USBDEP ----- ----- ----- ----- 0106H 010AH +_USB_READFIFO/EFM8_USBDEP ----- ----- ----- ----- 0255H 0259H +--> EFM8_USBDEP +--> _USB_READFIFO_IDATA/EFM8_USBDEP +--> _USB_READFIFO_XDATA/EFM8_USBDEP @@ -1155,6 +1169,9 @@ HANDLEUSBEP0INT/EFM8_USBDINT ----- ----- ----- ----- ----- -- +--> HANDLEUSBEP0RX/EFM8_USBDINT +--> USB_EP0INPACKETREADY/USB_0 +--> HANDLEUSBEP0TX/EFM8_USBDINT +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 19 + + USB_EP0SENTSTALL/USB_0 ----- ----- ----- ----- ----- ----- @@ -1162,16 +1179,13 @@ USB_GETSETUPEND/USB_0 ----- ----- ----- ----- ----- -- USB_EP0OUTPACKETREADY/USB_0 ----- ----- ----- ----- ----- ----- -USB_READFIFOSETUP/EFM8_USBDINT ----- ----- ----- ----- 0104H 0105H +USB_READFIFOSETUP/EFM8_USBDINT ----- ----- ----- ----- 0253H 0254H +--> _USB_READFIFO/EFM8_USBDEP +--> EFM8_USBDINT -_USBD_SETUPCMDCB/CALLBACK ----- ----- ----- ----- 0104H 0106H +_USBD_SETUPCMDCB/CALLBACK ----- ----- ----- ----- 0253H 0255H +--> CALLBACK +--> ?CO?DESCRIPTORS -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 19 - - +--> _IDLETIMERSET/IDLE +--> IDLEGETRATE/IDLE +--> _USBD_WRITE/EFM8_USBD @@ -1185,7 +1199,7 @@ IDLETIMERSTART/IDLE ----- ----- ----- ----- ----- -- IDLEGETRATE/IDLE ----- ----- ----- ----- ----- ----- -USBDCH9_SETUPCMD/EFM8_USBDCH9 ----- ----- ----- ----- 0104H 0104H +USBDCH9_SETUPCMD/EFM8_USBDCH9 ----- ----- ----- ----- 0253H 0253H +--> GETSTATUS/EFM8_USBDCH9 +--> CLEARFEATURE/EFM8_USBDCH9 +--> SETFEATURE/EFM8_USBDCH9 @@ -1198,7 +1212,7 @@ USBDCH9_SETUPCMD/EFM8_USBDCH9 ----- ----- ----- ----- 0104H 01 +--> _USB_SETINDEX/USB_0 +--> SENDEP0STALL/EFM8_USBDINT -GETSTATUS/EFM8_USBDCH9 ----- ----- ----- ----- 0105H 0105H +GETSTATUS/EFM8_USBDCH9 ----- ----- ----- ----- 0254H 0254H +--> EFM8_USBDCH9 +--> USBD_ISSELFPOWEREDCB/CALLBACK +--> _EP0_WRITE/EFM8_USBDCH9 @@ -1209,19 +1223,22 @@ USBD_ISSELFPOWEREDCB/CALLBACK ----- ----- ----- ----- ----- -- _EP0_WRITE/EFM8_USBDCH9 ----- ----- ----- ----- ----- ----- -CLEARFEATURE/EFM8_USBDCH9 ----- ----- ----- ----- 0105H 0105H +CLEARFEATURE/EFM8_USBDCH9 ----- ----- ----- ----- 0254H 0254H +--> EFM8_USBDCH9 +--> _USB_SETINDEX/USB_0 -SETFEATURE/EFM8_USBDCH9 ----- ----- ----- ----- 0105H 0105H +SETFEATURE/EFM8_USBDCH9 ----- ----- ----- ----- 0254H 0254H +--> EFM8_USBDCH9 +--> _USB_SETINDEX/USB_0 -SETADDRESS/EFM8_USBDCH9 ----- ----- ----- ----- 0105H 0105H +SETADDRESS/EFM8_USBDCH9 ----- ----- ----- ----- 0254H 0254H +--> EFM8_USBDCH9 +--> _USBD_SETUSBSTATE/EFM8_USBD +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 20 -GETDESCRIPTOR/EFM8_USBDCH9 ----- ----- ----- ----- 0105H 0109H + + +GETDESCRIPTOR/EFM8_USBDCH9 ----- ----- ----- ----- 0254H 0258H +--> EFM8_USBDCH9 +--> _EP0_WRITE/EFM8_USBDCH9 @@ -1231,12 +1248,9 @@ GETCONFIGURATION/EFM8_USBDCH9 ----- ----- ----- ----- ----- -- ?CO?EFM8_USBDCH9 ----- ----- ----- ----- ----- ----- -SETCONFIGURATION/EFM8_USBDCH9 ----- ----- ----- ----- 0105H 0105H +SETCONFIGURATION/EFM8_USBDCH9 ----- ----- ----- ----- 0254H 0254H +--> EFM8_USBDCH9 +--> USBD_ACTIVATEALLEPS/EFM8_USBDCH9 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 20 - - +--> _USBD_SETUSBSTATE/EFM8_USBD +--> USBD_ABORTALLTRANSFERS/EFM8_USBD @@ -1259,7 +1273,7 @@ SETINTERFACE/EFM8_USBDCH9 ----- ----- ----- ----- ----- -- SENDEP0STALL/EFM8_USBDINT ----- ----- ----- ----- ----- ----- +--> _USB_SETINDEX/USB_0 -HANDLEUSBEP0RX/EFM8_USBDINT 20H.3 20H.3 ----- ----- 0104H 0105H +HANDLEUSBEP0RX/EFM8_USBDINT 20H.3 20H.3 ----- ----- 0253H 0254H +--> USB_EP0GETCOUNT/USB_0 +--> EFM8_USBDINT +--> _USB_READFIFO/EFM8_USBDEP @@ -1269,7 +1283,7 @@ USB_EP0GETCOUNT/USB_0 ----- ----- ----- ----- ----- -- USB_EP0INPACKETREADY/USB_0 ----- ----- ----- ----- ----- ----- -HANDLEUSBEP0TX/EFM8_USBDINT 20H.3 20H.3 ----- ----- 0104H 0106H +HANDLEUSBEP0TX/EFM8_USBDINT 20H.3 20H.3 ----- ----- 0253H 0255H +--> _USB_WRITEFIFO/EFM8_USBDEP +--> EFM8_USBDINT +--> ?CO?EFM8_USBDCH9 @@ -1282,31 +1296,31 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) VALUE CLASS TYPE PUBLIC SYMBOL NAME ================================================= - 020000B2H XDATA BYTE ?__eeprom_write?BYTE - 020000C3H XDATA BYTE ?_atecc_recv?BYTE - 020000C3H XDATA BYTE ?_atecc_send?BYTE - 020000B3H XDATA BYTE ?_atecc_send_recv?BYTE + 02000201H XDATA BYTE ?__eeprom_write?BYTE + 02000212H XDATA BYTE ?_atecc_recv?BYTE + 02000212H XDATA BYTE ?_atecc_send?BYTE +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 21 + + + 02000202H XDATA BYTE ?_atecc_send_recv?BYTE *DEL*:00000000H XDATA BYTE ?_atecc_write_eeprom?BYTE - 020000B3H XDATA BYTE ?_eeprom_read?BYTE - 020000CBH XDATA BYTE ?_smb_read?BYTE - 020000CBH XDATA BYTE ?_smb_write?BYTE - 020000A3H XDATA BYTE ?_u2f_ecdsa_sign?BYTE - 020000A3H XDATA BYTE ?_u2f_new_keypair?BYTE - 020000C3H XDATA BYTE ?_u2f_printb?BYTE - 020000B6H XDATA BYTE ?_u2f_printd?BYTE - 02000041H XDATA BYTE ?_u2f_printl?BYTE + 02000202H XDATA BYTE ?_eeprom_read?BYTE + 0200021AH XDATA BYTE ?_smb_read?BYTE + 0200021AH XDATA BYTE ?_smb_write?BYTE + 020001F2H XDATA BYTE ?_u2f_ecdsa_sign?BYTE + 020001F2H XDATA BYTE ?_u2f_new_keypair?BYTE + 02000212H XDATA BYTE ?_u2f_printb?BYTE + 02000205H XDATA BYTE ?_u2f_printd?BYTE + 02000190H XDATA BYTE ?_u2f_printl?BYTE *DEL*:00000000H XDATA BYTE ?_u2f_printlx?BYTE - 02000041H XDATA BYTE ?_u2f_printx?BYTE +*DEL*:00000000H XDATA BYTE ?_u2f_printx?BYTE 00000020H.4 BIT BIT ?_USB_ActivateEp?BIT 00000020H.5 BIT BIT ?_USB_WriteFIFO?BIT -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 21 - - 00000020H.0 BIT BIT ?_USBD_Read?BIT - 02000041H XDATA BYTE ?_USBD_Read?BYTE + 02000190H XDATA BYTE ?_USBD_Read?BYTE 00000020H.3 BIT BIT ?_USBD_Write?BIT - 02000107H XDATA BYTE ?_USBD_Write?BYTE - 02000107H XDATA BYTE ?_USBD_XferCompleteCb?BYTE + 02000256H XDATA BYTE ?_USBD_Write?BYTE + 02000256H XDATA BYTE ?_USBD_XferCompleteCb?BYTE 010005BFH CODE --- ?C?CCASE 0100018DH CODE --- ?C?CLDOPTR 01000174H CODE --- ?C?CLDPTR @@ -1350,6 +1364,9 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 010004D4H CODE --- ?C?PLDIXDATA 01000536H CODE --- ?C?PLDOPTR 01000856H CODE --- ?C?PLDPDATA +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 22 + + 010004F4H CODE --- ?C?PLDPTR 010004CBH CODE --- ?C?PLDXDATA 01000836H CODE --- ?C?PSTIDATA @@ -1360,78 +1377,76 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 01000312H CODE --- ?C?ULDIV 010003C2H CODE --- ?C?ULSHR 00000000H NUMBER --- ?C?XDATASEG - 010025E0H CODE --- ?C_START + 010024B6H CODE --- ?C_START 01000000H CODE --- ?C_STARTUP - 0100335DH CODE --- ___int2str10 - 01003398H CODE --- ___int2str16 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 22 - - - 01000C46H CODE --- __attest - 0100304DH CODE --- __eeprom_write - 01001BCEH CODE --- _atecc_recv - 01002F64H CODE --- _atecc_send - 01001550H CODE --- _atecc_send_recv + 010032E5H CODE --- ___int2str10 + 01003320H CODE --- ___int2str16 + 01003D1DH CONST --- __attest + 01002F92H CODE --- __eeprom_write + 01001B6EH CODE --- _atecc_recv + 01002EAAH CODE --- _atecc_send + 01001505H CODE --- _atecc_send_recv *DEL*:00000000H CODE --- _atecc_write_eeprom - 01002F14H CODE --- _dump_hex - 01003482H CODE --- _eeprom_read - 010026B1H CODE --- _feed_crc - 01003AA2H CODE --- _idleTimerSet - 0000001AH DATA DWORD _MS_ - 01003A8AH CODE --- _putf - 010027B3H CODE --- _reverse_bits - 01003DC7H CODE --- _set_app_error - 01003D44H CODE --- _set_app_u2f_hid_msg + 01002E5AH CODE --- _dump_hex + 010033D0H CODE --- _eeprom_read + 01002587H CODE --- _feed_crc + 010039B2H CODE --- _idleTimerSet + 00000011H DATA DWORD _MS_ + 0100399AH CODE --- _putf + 01002689H CODE --- _reverse_bits + 01003B3AH CODE --- _rgb + 01003D0DH CODE --- _set_app_error + 01003C7DH CODE --- _set_app_u2f_hid_msg *DEL*:00000000H CODE --- _set_response_length - 01003DD8H CODE --- _slab_Assert - 01003001H CODE --- _smb_read - 0100372FH CODE --- _smb_set_ext_write - 01003267H CODE --- _smb_write - 010032A6H CODE --- _u2f_delay - 01001A49H CODE --- _u2f_ecdsa_sign - 01001265H CODE --- _u2f_hid_request - 01003D69H CODE --- _u2f_hid_set_len - 010017DDH CODE --- _u2f_hid_writeback - 01002D56H CODE --- _u2f_load_key - 01002508H CODE --- _u2f_new_keypair - 010034BCH CODE --- _u2f_printb + 01003D18H CODE --- _slab_Assert + 01002F45H CODE --- _smb_read + 01003648H CODE --- _smb_set_ext_write + 010031B1H CODE --- _smb_write + 0100322EH CODE --- _u2f_delay + 010019E9H CODE --- _u2f_ecdsa_sign + 01001139H CODE --- _u2f_hid_request + 01003C99H CODE --- _u2f_hid_set_len + 010016B9H CODE --- _u2f_hid_writeback + 01002CF5H CODE --- _u2f_load_key + 010023DEH CODE --- _u2f_new_keypair + 0100340AH CODE --- _u2f_printb 0100003EH CODE --- _u2f_printd - 0100359AH CODE --- _u2f_printl + 010034E8H CODE --- _u2f_printl *DEL*:00000000H CODE --- _u2f_printlx - 0100388CH CODE --- _u2f_prints - 010035CFH CODE --- _u2f_printx - 01003D26H CODE --- _u2f_putb - 01003CA1H CODE --- _u2f_putd - 01003DADH CODE --- _u2f_putl + 010037A8H CODE --- _u2f_prints +*DEL*:00000000H CODE --- _u2f_printx + 01003C5FH CODE --- _u2f_putb + 01003BC5H CODE --- _u2f_putd + 01003CF3H CODE --- _u2f_putl *DEL*:00000000H CODE --- _u2f_putlx - 01003D57H CODE --- _u2f_putx - 01002010H CODE --- _u2f_request - 01003DCDH CODE --- _u2f_response_writeback - 01002C91H CODE --- _u2f_sha256_update - 01003639H CODE --- _USB_AbortInEp - 0100366DH CODE --- _USB_AbortOutEp - 01002625H CODE --- _USB_ActivateEp - 01002CF4H CODE --- _USB_ReadFIFO - 01003CC5H CODE --- _USB_SetIndex - 01002A84H CODE --- _usb_write - 01002A0FH CODE --- _USB_WriteFIFO - 01002734H CODE --- _USBD_AbortTransfer - 01003D60H CODE --- _USBD_DeviceStateChangeCb - 0100375CH CODE --- _USBD_EpIsBusy - 010022B9H CODE --- _USBD_Init - 01001F61H CODE --- _USBD_Read - 01000DA5H CODE --- _USBD_SetupCmdCb - 01003227H CODE --- _USBD_SetUsbState +*DEL*:00000000H CODE --- _u2f_putx + 01001E3BH CODE --- _u2f_request + 01003D10H CODE --- _u2f_response_writeback + 01002BCFH CODE --- _u2f_sha256_update + 01003552H CODE --- _USB_AbortInEp + 01003586H CODE --- _USB_AbortOutEp + 010024FBH CODE --- _USB_ActivateEp + 01002C32H CODE --- _USB_ReadFIFO + 01003BF4H CODE --- _USB_SetIndex + 0100295AH CODE --- _usb_write +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 23 + + + 010028E5H CODE --- _USB_WriteFIFO + 0100260AH CODE --- _USBD_AbortTransfer + 01003C90H CODE --- _USBD_DeviceStateChangeCb + 010036A1H CODE --- _USBD_EpIsBusy + 0100218FH CODE --- _USBD_Init + 01001D8CH CODE --- _USBD_Read + 01000DBFH CODE --- _USBD_SetupCmdCb + 01003171H CODE --- _USBD_SetUsbState *DEL*:00000000H CODE --- _USBD_StallEp *DEL*:00000000H CODE --- _USBD_UnStallEp - 010018B1H CODE --- _USBD_Write - 010037D6H CODE --- _USBD_XferCompleteCb + 0100178DH CODE --- _USBD_Write + 010036F2H CODE --- _USBD_XferCompleteCb *SFR* 000000E0H DATA BYTE ACC *SFR* 000000E0H DATA BIT ACC_ACC0 *SFR* 000000E0H.1 DATA BIT ACC_ACC1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 23 - - *SFR* 000000E0H.2 DATA BIT ACC_ACC2 *SFR* 000000E0H.3 DATA BIT ACC_ACC3 *SFR* 000000E0H.4 DATA BIT ACC_ACC4 @@ -1463,9 +1478,9 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000DFH DATA BYTE ADC0PWR *SFR* 000000B9H DATA BYTE ADC0TK 00000021H DATA --- appdata - 01003D30H CODE --- atecc_idle + 01003C69H CODE --- atecc_idle *DEL*:00000000H CODE --- atecc_sleep - 01003C16H CODE --- atecc_wake + 01003B29H CODE --- atecc_wake *SFR* 000000F0H DATA BYTE B *SFR* 000000F0H DATA BIT B_B0 *SFR* 000000F0H.1 DATA BIT B_B1 @@ -1475,12 +1490,15 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000F0H.5 DATA BIT B_B5 *SFR* 000000F0H.6 DATA BIT B_B6 *SFR* 000000F0H.7 DATA BIT B_B7 - 02000126H XDATA --- CIDS - 01003D91H CODE --- CIP51_0_enter_DefaultMode_from_RESET + 02000006H XDATA --- CIDS + 01003CC2H CODE --- CIP51_0_enter_DefaultMode_from_RESET *SFR* 0000008EH DATA BYTE CKCON0 *SFR* 000000A6H DATA BYTE CKCON1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 24 + + *SFR* 000000A9H DATA BYTE CLKSEL - 01003C46H CODE --- CLOCK_0_enter_DefaultMode_from_RESET + 01003B6AH CODE --- CLOCK_0_enter_DefaultMode_from_RESET *SFR* 0000009BH DATA BYTE CMP0CN0 *SFR* 00000099H DATA BYTE CMP0CN1 *SFR* 0000009DH DATA BYTE CMP0MD @@ -1489,25 +1507,21 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000ACH DATA BYTE CMP1CN1 *SFR* 000000ABH DATA BYTE CMP1MD *SFR* 000000AAH DATA BYTE CMP1MX - 01003E11H CONST --- configDesc - 02000335H XDATA BYTE count + 01003EB0H CONST --- configDesc *SFR* 000000CEH DATA BYTE CRC0CN0 *SFR* 00000086H DATA BYTE CRC0CN1 *SFR* 000000D3H DATA BYTE CRC0CNT -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 24 - - *SFR* 000000DEH DATA BYTE CRC0DAT *SFR* 000000CFH DATA BYTE CRC0FLIP *SFR* 000000DDH DATA BYTE CRC0IN *SFR* 000000D2H DATA BYTE CRC0ST *SFR* 000000ADH DATA BYTE DERIVID - 01003DFFH CONST --- deviceDesc + 01003E9EH CONST --- deviceDesc *SFR* 000000B5H DATA BYTE DEVICEID *SFR* 00000082H DATA WORD DP *SFR* 00000083H DATA BYTE DPH *SFR* 00000082H DATA BYTE DPL - 010031E6H CODE --- eeprom_init + 01003130H CODE --- eeprom_init *SFR* 000000E6H DATA BYTE EIE1 *SFR* 000000CEH DATA BYTE EIE2 *SFR* 000000F3H DATA BYTE EIP1 @@ -1515,16 +1529,16 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000F4H DATA BYTE EIP2 *SFR* 000000F6H DATA BYTE EIP2H *SFR* 000000E7H DATA BYTE EMI0CN - 0100340EH CODE --- enter_DefaultMode_from_RESET + 01003022H CODE --- enter_DefaultMode_from_RESET *SFR* 000000B7H DATA BYTE FLKEY - 01003DDBH CODE --- forceModuleLoad_usbint - 01002351H CODE --- handleUsbEp0Rx - 01002214H CODE --- handleUsbIn1Int - 01001464H CODE --- handleUsbOut1Int + 01003D1BH CODE --- forceModuleLoad_usbint + 01002227H CODE --- handleUsbEp0Rx + 010020EAH CODE --- handleUsbIn1Int + 01001338H CODE --- handleUsbOut1Int *SFR* 000000C7H DATA BYTE HFO0CAL *SFR* 000000D6H DATA BYTE HFO1CAL *SFR* 000000EFH DATA BYTE HFOCN - 020002CAH XDATA --- hidmsgbuf + 02000303H XDATA --- hidmsgbuf *SFR* 000000BAH DATA BYTE I2C0CN0 *SFR* 000000BCH DATA BYTE I2C0DIN *SFR* 000000BBH DATA BYTE I2C0DOUT @@ -1533,8 +1547,8 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000F5H DATA BYTE I2C0FCT *SFR* 000000BDH DATA BYTE I2C0SLAD *SFR* 000000B9H DATA BYTE I2C0STAT - 01003DB3H CODE --- idleGetRate - 0100386AH CODE --- idleTimerStart + 01003CF9H CODE --- idleGetRate + 01003786H CODE --- idleTimerStart *DEL*:00000000H CODE --- idleTimerTick *SFR* 000000A8H DATA BYTE IE *SFR* 000000A8H.7 DATA BIT IE_EA @@ -1545,8 +1559,11 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000A8H.5 DATA BIT IE_ET2 *SFR* 000000A8H DATA BIT IE_EX0 *SFR* 000000A8H.2 DATA BIT IE_EX1 - 01003E8DH CONST --- initstruct - 01003D98H CODE --- INTERRUPT_0_enter_DefaultMode_from_RESET +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 25 + + + 01003F2CH CONST --- initstruct + 01003CC9H CODE --- INTERRUPT_0_enter_DefaultMode_from_RESET *SFR* 000000B8H DATA BYTE IP *SFR* 000000B8H.4 DATA BIT IP_PS0 *SFR* 000000B8H.6 DATA BIT IP_PSPI0 @@ -1559,16 +1576,13 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *DEL*:00000000H CODE --- isIdleTimerExpired *DEL*:00000000H CODE --- isIdleTimerIndefinite *SFR* 000000E4H DATA BYTE IT01CF -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 25 - - - 0200027FH XDATA --- key_store -*SFR* 00000090H DATA BIT LED_B -*SFR* 00000080H.6 DATA BIT LED_G -*SFR* 00000080H.7 DATA BIT LED_R + 020002B8H XDATA --- key_store +*SFR* 00000080H.6 DATA BIT LED_B +*SFR* 00000080H.7 DATA BIT LED_G +*SFR* 00000090H DATA BIT LED_R *SFR* 000000B1H DATA BYTE LFO0CN - 01000EF6H CODE --- main - 0200030AH XDATA --- myUsbDevice + 01000C19H CODE --- main + 02000343H XDATA --- myUsbDevice *SFR* 00000080H DATA BYTE P0 *SFR* 00000080H DATA BIT P0_B0 *SFR* 00000080H.1 DATA BIT P0_B1 @@ -1610,9 +1624,12 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000B0H DATA BYTE P3 *SFR* 000000B0H DATA BIT P3_B0 *SFR* 000000B0H.1 DATA BIT P3_B1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 26 + + *SFR* 000000F4H DATA BYTE P3MDIN *SFR* 0000009CH DATA BYTE P3MDOUT - 01003D8AH CODE --- PBCFG_0_enter_DefaultMode_from_RESET + 01003C4BH CODE --- PBCFG_0_enter_DefaultMode_from_RESET *SFR* 000000F9H DATA WORD PCA0 *SFR* 0000009EH DATA BYTE PCA0CENT *SFR* 0000009CH DATA BYTE PCA0CLR @@ -1624,9 +1641,6 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000D8H.6 DATA BIT PCA0CN0_CR *SFR* 000000FBH DATA WORD PCA0CP0 *SFR* 000000E9H DATA WORD PCA0CP1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 26 - - *SFR* 000000EBH DATA WORD PCA0CP2 *SFR* 000000FCH DATA BYTE PCA0CPH0 *SFR* 000000EAH DATA BYTE PCA0CPH1 @@ -1642,11 +1656,15 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000D9H DATA BYTE PCA0MD *SFR* 00000096H DATA BYTE PCA0POL *SFR* 000000F7H DATA BYTE PCA0PWM + 01003CABH CODE --- PCA_0_enter_DefaultMode_from_RESET + 01003CD0H CODE --- PCACH_0_enter_DefaultMode_from_RESET + 01003CD7H CODE --- PCACH_1_enter_DefaultMode_from_RESET + 01003CDEH CODE --- PCACH_2_enter_DefaultMode_from_RESET *SFR* 00000087H DATA BYTE PCON0 *SFR* 0000009AH DATA BYTE PCON1 *SFR* 000000C1H DATA BYTE PFE0CN - 01003B57H CODE --- PORTS_0_enter_DefaultMode_from_RESET - 01003BF3H CODE --- PORTS_1_enter_DefaultMode_from_RESET + 01003A54H CODE --- PORTS_0_enter_DefaultMode_from_RESET + 01003B06H CODE --- PORTS_1_enter_DefaultMode_from_RESET *DEL*:00000000H CODE --- PORTS_2_enter_DefaultMode_from_RESET *SFR* 000000F6H DATA BYTE PRTDRV *SFR* 0000008FH DATA BYTE PSCTL @@ -1662,7 +1680,7 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000D1H DATA BYTE REF0CN *SFR* 000000C9H DATA BYTE REG0CN *SFR* 000000C6H DATA BYTE REG1CN - 01003DDDH CONST --- ReportDescriptor0 + 01003E7CH CONST --- ReportDescriptor0 *SFR* 000000B6H DATA BYTE REVID *SFR* 000000EFH DATA BYTE RSTSRC *SFR* 00000094H DATA BYTE SBCON1 @@ -1671,6 +1689,9 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 00000095H DATA BYTE SBRLL1 *SFR* 00000099H DATA BYTE SBUF0 *SFR* 00000092H DATA BYTE SBUF1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 27 + + *SFR* 00000098H DATA BYTE SCON0 *SFR* 00000098H.5 DATA BIT SCON0_MCE *SFR* 00000098H.2 DATA BIT SCON0_RB8 @@ -1687,14 +1708,11 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000C8H DATA BIT SCON1_RI *SFR* 000000C8H.3 DATA BIT SCON1_TBX *SFR* 000000C8H.1 DATA BIT SCON1_TI - 01003B00H CODE --- SendEp0Stall + 01003A10H CODE --- SendEp0Stall *SFR* 000000A7H DATA BYTE SFRPAGE -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 27 - - *SFR* 000000CFH DATA BYTE SFRPGCN *SFR* 000000D7H DATA BYTE SFRSTACK - 02000337H XDATA --- SMB + 0200036EH XDATA --- SMB *SFR* 000000D6H DATA BYTE SMB0ADM *SFR* 000000D7H DATA BYTE SMB0ADR *SFR* 000000C1H DATA BYTE SMB0CF @@ -1713,11 +1731,11 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000EFH DATA BYTE SMB0FCT *SFR* 000000C5H DATA BYTE SMB0RXLN *SFR* 000000ACH DATA BYTE SMB0TC - 02000336H XDATA BYTE SMB_FLAGS - 01003B42H CODE --- smb_init - 01003B93H CODE --- smb_init_crc - 01000A69H CODE --- SMBUS0_ISR - 01003DBFH CODE --- SMBUS_0_enter_DefaultMode_from_RESET + 00000010H DATA BYTE SMB_FLAGS + 01003AF3H CODE --- smb_init + 01003AA6H CODE --- smb_init_crc + 01000A72H CODE --- SMBUS0_ISR + 01003D05H CODE --- SMBUS_0_enter_DefaultMode_from_RESET *SFR* 00000093H DATA BYTE SMOD1 *SFR* 00000081H DATA BYTE SP *SFR* 000000A1H DATA BYTE SPI0CFG @@ -1736,6 +1754,9 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 0000009BH DATA BYTE SPI0FCN1 *SFR* 000000F7H DATA BYTE SPI0FCT *SFR* 00000088H DATA BYTE TCON +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 28 + + *SFR* 00000088H.1 DATA BIT TCON_IE0 *SFR* 00000088H.3 DATA BIT TCON_IE1 *SFR* 00000088H DATA BIT TCON_IT0 @@ -1744,22 +1765,18 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 00000088H.7 DATA BIT TCON_TF1 *SFR* 00000088H.4 DATA BIT TCON_TR0 *SFR* 00000088H.6 DATA BIT TCON_TR1 - 01003DCAH CODE --- test_app *SFR* 0000008CH DATA BYTE TH0 *SFR* 0000008DH DATA BYTE TH1 - 01003BA7H CODE --- TIMER01_0_enter_DefaultMode_from_RESET - 01003BBAH CODE --- TIMER16_2_enter_DefaultMode_from_RESET + 01003ABAH CODE --- TIMER01_0_enter_DefaultMode_from_RESET + 01003ACDH CODE --- TIMER16_2_enter_DefaultMode_from_RESET 0100002EH CODE --- TIMER16_3_enter_DefaultMode_from_RESET - 010036A1H CODE --- TIMER2_ISR - 01003C27H CODE --- TIMER3_ISR - 01003D1CH CODE --- TIMER_SETUP_0_enter_DefaultMode_from_RESET + 010035BAH CODE --- TIMER2_ISR + 01003B4BH CODE --- TIMER3_ISR + 01003C55H CODE --- TIMER_SETUP_0_enter_DefaultMode_from_RESET *SFR* 0000008AH DATA BYTE TL0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 28 - - *SFR* 0000008BH DATA BYTE TL1 *SFR* 00000089H DATA BYTE TMOD - 020002C9H XDATA BYTE tmpBuffer + 02000302H XDATA BYTE tmpBuffer *SFR* 000000CCH DATA WORD TMR2 *SFR* 000000C8H DATA BYTE TMR2CN0 *SFR* 000000C8H.3 DATA BIT TMR2CN0_T2SPLIT @@ -1800,28 +1817,28 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000A2H DATA WORD TMR4RL *SFR* 000000A3H DATA BYTE TMR4RLH *SFR* 000000A2H DATA BYTE TMR4RLL - 01003E97H CONST --- txZero + 01003F36H CONST --- txZero 01000076H CODE --- u2f_attestation_cert_size +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 29 + + *SFR* 00000080H.2 DATA BIT U2F_BUTTON *SFR* 00000080H.3 DATA BIT U2F_BUTTON_VAL - 0100282FH CODE --- u2f_count - 01003DA6H CODE --- u2f_get_attestation_cert - 01003DD3H CODE --- u2f_get_user_feedback - 01003C05H CODE --- u2f_hid_flush - 010037AEH CODE --- u2f_hid_init - 01001D49H CODE --- u2f_init - 01003DD0H CODE --- u2f_response_flush - 01003DDCH CODE --- u2f_response_start - 010037FDH CODE --- u2f_sha256_finish - 01003A57H CODE --- u2f_sha256_start + 01002705H CODE --- u2f_count + 01003CECH CODE --- u2f_get_attestation_cert + 01002C94H CODE --- u2f_get_user_feedback + 01003B18H CODE --- u2f_hid_flush + 010036CAH CODE --- u2f_hid_init + 01001F95H CODE --- u2f_init + 01003D13H CODE --- u2f_response_flush + 01003D1CH CODE --- u2f_response_start + 01003719H CODE --- u2f_sha256_finish + 0100394EH CODE --- u2f_sha256_start *SFR* 0000009DH DATA BYTE UART1FCN0 *SFR* 000000D8H DATA BYTE UART1FCN1 *SFR* 000000D8H.3 DATA BIT UART1FCN1_RFRQ *SFR* 000000D8H DATA BIT UART1FCN1_RIE *SFR* 000000D8H.1 DATA BIT UART1FCN1_RXTO0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 29 - - *SFR* 000000D8H.2 DATA BIT UART1FCN1_RXTO1 *SFR* 000000D8H.7 DATA BIT UART1FCN1_TFRQ *SFR* 000000D8H.4 DATA BIT UART1FCN1_TIE @@ -1829,7 +1846,7 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000D8H.6 DATA BIT UART1FCN1_TXNF *SFR* 000000FAH DATA BYTE UART1FCT *SFR* 0000009EH DATA BYTE UART1LIN - 01003DC3H CODE --- UART_0_enter_DefaultMode_from_RESET + 01003D09H CODE --- UART_0_enter_DefaultMode_from_RESET *SFR* 000000AEH DATA BYTE USB0ADR *SFR* 000000B2H DATA BYTE USB0AEC *SFR* 000000B6H DATA BYTE USB0CDCF @@ -1838,39 +1855,42 @@ PUBLIC SYMBOLS OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *SFR* 000000B5H DATA BYTE USB0CF *SFR* 000000AFH DATA BYTE USB0DAT *SFR* 000000B3H DATA BYTE USB0XCN - 01003CFCH CODE --- USB_Ep0GetCount - 01003C6EH CODE --- USB_Ep0InPacketReady - 01003CADH CODE --- USB_Ep0OutPacketReady - 01003C61H CODE --- USB_Ep0SentStall - 01003CB9H CODE --- USB_EpnGetOutPacketReady - 01003C7BH CODE --- USB_EpnInGetSentStall - 01003C88H CODE --- USB_EpnOutGetSentStall - 01003DB9H CODE --- USB_EpOutGetCount - 01003CD0H CODE --- USB_GetCommonInts - 01003CF1H CODE --- USB_GetIndex - 01003CDBH CODE --- USB_GetInInts - 01003D9FH CODE --- USB_GetIntsEnabled - 01003CE6H CODE --- USB_GetOutInts - 01003C54H CODE --- USB_GetSetupEnd + 01003C2BH CODE --- USB_Ep0GetCount + 01003B92H CODE --- USB_Ep0InPacketReady + 01003BD1H CODE --- USB_Ep0OutPacketReady + 01003B85H CODE --- USB_Ep0SentStall + 01003BDDH CODE --- USB_EpnGetOutPacketReady + 01003B9FH CODE --- USB_EpnInGetSentStall + 01003BACH CODE --- USB_EpnOutGetSentStall + 01003CFFH CODE --- USB_EpOutGetCount + 01003BFFH CODE --- USB_GetCommonInts + 01003C20H CODE --- USB_GetIndex + 01003C0AH CODE --- USB_GetInInts + 01003CE5H CODE --- USB_GetIntsEnabled + 01003C15H CODE --- USB_GetOutInts + 01003B78H CODE --- USB_GetSetupEnd *DEL*:00000000H CODE --- USB_GetSofNumber *DEL*:00000000H CODE --- USB_IsPrefetchEnabled *DEL*:00000000H CODE --- USB_IsRegulatorEnabled *DEL*:00000000H CODE --- USB_IsSuspended *DEL*:00000000H CODE --- USB_SuspendOscillator - 01003564H CODE --- USBD_AbortAllTransfers - 01003AD2H CODE --- USBD_Connect + 010034B2H CODE --- USBD_AbortAllTransfers + 010039E2H CODE --- USBD_Connect *DEL*:00000000H CODE --- USBD_Disconnect *DEL*:00000000H CODE --- USBD_GetUsbState - 01003DD6H CODE --- USBD_IsSelfPoweredCb - 01003DDAH CODE --- USBD_ResetCb + 01003D16H CODE --- USBD_IsSelfPoweredCb + 01003D1AH CODE --- USBD_ResetCb *DEL*:00000000H CODE --- USBD_Stop *DEL*:00000000H CODE --- USBD_Suspend - 010028A9H CODE --- USBDCH9_SetupCmd - 01001705H CODE --- usbIrqHandler - 01003D4EH CODE --- USBLIB_0_enter_DefaultMode_from_RESET + 0100277FH CODE --- USBDCH9_SetupCmd + 010015E1H CODE --- usbIrqHandler +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 30 + + + 01003C87H CODE --- USBLIB_0_enter_DefaultMode_from_RESET *SFR* 000000FFH DATA BYTE VDM0CN - 01003D83H CODE --- VREG_0_enter_DefaultMode_from_RESET - 01003D12H CODE --- WDT_0_enter_DefaultMode_from_RESET + 01003CBBH CODE --- VREG_0_enter_DefaultMode_from_RESET + 01003C41H CODE --- WDT_0_enter_DefaultMode_from_RESET *SFR* 00000097H DATA BYTE WDTCN *SFR* 000000E1H DATA BYTE XBR0 *SFR* 000000E2H DATA BYTE XBR1 @@ -1883,25 +1903,26 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) VALUE REP CLASS TYPE SYMBOL NAME ==================================================== --- MODULE --- --- INITDEVICE - 01003D4EH PUBLIC CODE --- USBLIB_0_enter_DefaultMode_from_RESET -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 30 - - - 01003D98H PUBLIC CODE --- INTERRUPT_0_enter_DefaultMode_from_RESET - 01003DC3H PUBLIC CODE --- UART_0_enter_DefaultMode_from_RESET - 01003DBFH PUBLIC CODE --- SMBUS_0_enter_DefaultMode_from_RESET - 01003D1CH PUBLIC CODE --- TIMER_SETUP_0_enter_DefaultMode_from_RESET + 01003CDEH PUBLIC CODE --- PCACH_2_enter_DefaultMode_from_RESET + 01003CD7H PUBLIC CODE --- PCACH_1_enter_DefaultMode_from_RESET + 01003CD0H PUBLIC CODE --- PCACH_0_enter_DefaultMode_from_RESET + 01003CABH PUBLIC CODE --- PCA_0_enter_DefaultMode_from_RESET + 01003C87H PUBLIC CODE --- USBLIB_0_enter_DefaultMode_from_RESET + 01003CC9H PUBLIC CODE --- INTERRUPT_0_enter_DefaultMode_from_RESET + 01003D09H PUBLIC CODE --- UART_0_enter_DefaultMode_from_RESET + 01003D05H PUBLIC CODE --- SMBUS_0_enter_DefaultMode_from_RESET + 01003C55H PUBLIC CODE --- TIMER_SETUP_0_enter_DefaultMode_from_RESET 0100002EH PUBLIC CODE --- TIMER16_3_enter_DefaultMode_from_RESET - 01003BBAH PUBLIC CODE --- TIMER16_2_enter_DefaultMode_from_RESET - 01003BA7H PUBLIC CODE --- TIMER01_0_enter_DefaultMode_from_RESET - 01003C46H PUBLIC CODE --- CLOCK_0_enter_DefaultMode_from_RESET - 01003D91H PUBLIC CODE --- CIP51_0_enter_DefaultMode_from_RESET - 01003D8AH PUBLIC CODE --- PBCFG_0_enter_DefaultMode_from_RESET - 01003BF3H PUBLIC CODE --- PORTS_1_enter_DefaultMode_from_RESET - 01003B57H PUBLIC CODE --- PORTS_0_enter_DefaultMode_from_RESET - 01003D83H PUBLIC CODE --- VREG_0_enter_DefaultMode_from_RESET - 01003D12H PUBLIC CODE --- WDT_0_enter_DefaultMode_from_RESET - 0100340EH PUBLIC CODE --- enter_DefaultMode_from_RESET + 01003ACDH PUBLIC CODE --- TIMER16_2_enter_DefaultMode_from_RESET + 01003ABAH PUBLIC CODE --- TIMER01_0_enter_DefaultMode_from_RESET + 01003B6AH PUBLIC CODE --- CLOCK_0_enter_DefaultMode_from_RESET + 01003CC2H PUBLIC CODE --- CIP51_0_enter_DefaultMode_from_RESET + 01003C4BH PUBLIC CODE --- PBCFG_0_enter_DefaultMode_from_RESET + 01003B06H PUBLIC CODE --- PORTS_1_enter_DefaultMode_from_RESET + 01003A54H PUBLIC CODE --- PORTS_0_enter_DefaultMode_from_RESET + 01003CBBH PUBLIC CODE --- VREG_0_enter_DefaultMode_from_RESET + 01003C41H PUBLIC CODE --- WDT_0_enter_DefaultMode_from_RESET + 01003022H PUBLIC CODE --- enter_DefaultMode_from_RESET 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -1928,6 +1949,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A5H SFRSYM DATA BYTE P1MDOUT 000000E8H.5 SFRSYM DATA BIT ADC0CN0_ADINT 000000CBH SFRSYM DATA BYTE TMR2RLH +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 31 + + 000000A6H SFRSYM DATA BYTE P2MDOUT 000000A8H SFRSYM DATA BYTE IE 00000093H SFRSYM DATA BYTE TMR3RLH @@ -1949,9 +1973,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C3H SFRSYM DATA WORD ADC0GT 000000BDH SFRSYM DATA BYTE I2C0SLAD 000000D8H.3 SFRSYM DATA BIT UART1FCN1_RFRQ -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 31 - - 000000F0H.2 SFRSYM DATA BIT B_B2 000000CFH SFRSYM DATA BYTE SFRPGCN 000000FBH SFRSYM DATA BYTE PCA0CPL0 @@ -1993,6 +2014,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E0H.2 SFRSYM DATA BIT ACC_ACC2 000000C6H SFRSYM DATA BYTE REG1CN 000000E0H.3 SFRSYM DATA BIT ACC_ACC3 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 32 + + 00000081H SFRSYM DATA BYTE SP 0000009DH SFRSYM DATA BYTE CMP0MD 000000E0H.4 SFRSYM DATA BIT ACC_ACC4 @@ -2014,9 +2038,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000094H SFRSYM DATA BYTE SBCON1 000000C0H.3 SFRSYM DATA BIT SMB0CN0_ACKRQ 000000FFH SFRSYM DATA BYTE VDM0CN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 32 - - 000000F1H SFRSYM DATA BYTE P0MDIN 00000098H.4 SFRSYM DATA BIT SCON0_REN 000000ACH SFRSYM DATA BYTE SMB0TC @@ -2058,6 +2079,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AAH SFRSYM DATA BYTE CMP1MX 00000098H.1 SFRSYM DATA BIT TMR4CN0_T4XCLK1 000000A8H.3 SFRSYM DATA BIT IE_ET1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 33 + + 000000D4H SFRSYM DATA BYTE P0SKIP 000000D8H SFRSYM DATA BIT UART1FCN1_RIE 000000A8H.5 SFRSYM DATA BIT IE_ET2 @@ -2079,9 +2103,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E8H.6 SFRSYM DATA BIT ADC0CN0_ADBMEN 000000CAH SFRSYM DATA WORD TMR2RL 000000BDH SFRSYM DATA BYTE ADC0L -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 33 - - 00000092H SFRSYM DATA WORD TMR3RL 000000A2H SFRSYM DATA WORD TMR4RL 000000D8H SFRSYM DATA BYTE PCA0CN0 @@ -2123,6 +2144,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000BFH SFRSYM DATA BYTE CMP1CN0 00000099H SFRSYM DATA BYTE CMP0CN1 00000088H.3 SFRSYM DATA BIT TCON_IE1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 34 + + 000000B0H SFRSYM DATA BIT P3_B0 000000A0H.1 SFRSYM DATA BIT P2_B1 00000090H.2 SFRSYM DATA BIT P1_B2 @@ -2144,9 +2168,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.6 SFRSYM DATA BIT P1_B6 00000080H.7 SFRSYM DATA BIT P0_B7 000000C5H SFRSYM DATA BYTE SMB0RXLN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 34 - - 000000F6H SFRSYM DATA BYTE EIP2H 00000090H.7 SFRSYM DATA BIT P1_B7 00000083H SFRSYM DATA BYTE DPH @@ -2188,6 +2209,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000EDH SFRSYM DATA BYTE P1MAT 000000E8H.3 SFRSYM DATA BIT ADC0CN0_ADWINT 00000095H SFRSYM DATA WORD SBRL1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 35 + + 000000B2H SFRSYM DATA BYTE USB0AEC 00000093H SFRSYM DATA BYTE SMOD1 000000C8H SFRSYM DATA BYTE SCON1 @@ -2209,9 +2233,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000088H.4 SFRSYM DATA BIT TCON_TR0 000000C8H.4 SFRSYM DATA BIT TMR2CN0_TF2CEN 00000088H.6 SFRSYM DATA BIT TCON_TR1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 35 - - 000000C2H SFRSYM DATA BYTE SMB0DAT 000000CDH SFRSYM DATA BYTE TMR2H 000000A1H SFRSYM DATA BYTE SPI0CFG @@ -2249,182 +2270,218 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 0100340EH BLOCK CODE --- LVL=0 - 0100340EH BLOCK CODE NEAR LAB LVL=1 - 02000041H SYMBOL XDATA BYTE SFRPAGE_save + 01003022H BLOCK CODE --- LVL=0 + 01003022H BLOCK CODE NEAR LAB LVL=1 + 02000190H SYMBOL XDATA BYTE SFRPAGE_save --- BLOCKEND --- --- LVL=1 - 0100340EH LINE CODE --- #25 - 0100340EH LINE CODE --- #28 - 01003414H LINE CODE --- #29 - 01003417H LINE CODE --- #30 - 0100341AH LINE CODE --- #31 - 0100341DH LINE CODE --- #32 - 01003420H LINE CODE --- #33 - 01003423H LINE CODE --- #34 - 01003426H LINE CODE --- #35 - 01003429H LINE CODE --- #36 - 0100342CH LINE CODE --- #37 - 0100342FH LINE CODE --- #38 - 01003432H LINE CODE --- #39 - 01003435H LINE CODE --- #40 - 01003438H LINE CODE --- #41 - 0100343BH LINE CODE --- #42 - 0100343EH LINE CODE --- #43 - 01003441H LINE CODE --- #45 - 01003447H LINE CODE --- #48 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 36 + + + 01003022H LINE CODE --- #25 + 01003022H LINE CODE --- #28 + 01003028H LINE CODE --- #29 + 0100302BH LINE CODE --- #30 + 0100302EH LINE CODE --- #31 + 01003031H LINE CODE --- #32 + 01003034H LINE CODE --- #33 + 01003037H LINE CODE --- #34 + 0100303AH LINE CODE --- #35 + 0100303DH LINE CODE --- #36 + 01003040H LINE CODE --- #37 + 01003043H LINE CODE --- #38 + 01003046H LINE CODE --- #39 + 01003049H LINE CODE --- #40 + 0100304CH LINE CODE --- #41 + 0100304FH LINE CODE --- #42 + 01003052H LINE CODE --- #43 + 01003055H LINE CODE --- #44 + 01003058H LINE CODE --- #45 + 0100305BH LINE CODE --- #46 + 0100305EH LINE CODE --- #47 + 01003061H LINE CODE --- #49 + 01003067H LINE CODE --- #52 --- BLOCKEND --- --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 36 - - - 01003D12H BLOCK CODE --- LVL=0 - 01003D12H LINE CODE --- #53 - 01003D12H LINE CODE --- #55 - 01003D15H LINE CODE --- #57 - 01003D18H LINE CODE --- #58 - 01003D1BH LINE CODE --- #61 + 01003C41H BLOCK CODE --- LVL=0 + 01003C41H LINE CODE --- #57 + 01003C41H LINE CODE --- #59 + 01003C44H LINE CODE --- #61 + 01003C47H LINE CODE --- #62 + 01003C4AH LINE CODE --- #65 --- BLOCKEND --- --- LVL=0 - 01003D83H BLOCK CODE --- LVL=0 - 01003D83H LINE CODE --- #66 - 01003D83H LINE CODE --- #80 - 01003D86H LINE CODE --- #81 - 01003D89H LINE CODE --- #85 + 01003CBBH BLOCK CODE --- LVL=0 + 01003CBBH LINE CODE --- #70 + 01003CBBH LINE CODE --- #84 + 01003CBEH LINE CODE --- #85 + 01003CC1H LINE CODE --- #89 --- BLOCKEND --- --- LVL=0 - 01003B57H BLOCK CODE --- LVL=0 - 01003B57H LINE CODE --- #90 - 01003B57H LINE CODE --- #110 - 01003B5AH LINE CODE --- #111 - 01003B5DH LINE CODE --- #129 - 01003B60H LINE CODE --- #154 - 01003B63H LINE CODE --- #178 - 01003B65H LINE CODE --- #203 - 01003B67H LINE CODE --- #227 - 01003B6AH LINE CODE --- #231 + 01003A54H BLOCK CODE --- LVL=0 + 01003A54H LINE CODE --- #94 + 01003A54H LINE CODE --- #114 + 01003A57H LINE CODE --- #115 + 01003A5AH LINE CODE --- #133 + 01003A5DH LINE CODE --- #158 + 01003A60H LINE CODE --- #182 + 01003A63H LINE CODE --- #207 + 01003A65H LINE CODE --- #231 + 01003A68H LINE CODE --- #235 --- BLOCKEND --- --- LVL=0 - 01003BF3H BLOCK CODE --- LVL=0 - 01003BF3H LINE CODE --- #236 - 01003BF3H LINE CODE --- #246 - 01003BF6H LINE CODE --- #257 - 01003BF9H LINE CODE --- #270 - 01003BFCH LINE CODE --- #282 - 01003BFFH LINE CODE --- #295 - 01003C01H LINE CODE --- #307 - 01003C04H LINE CODE --- #310 + 01003B06H BLOCK CODE --- LVL=0 + 01003B06H LINE CODE --- #240 + 01003B06H LINE CODE --- #250 + 01003B09H LINE CODE --- #261 + 01003B0CH LINE CODE --- #274 + 01003B0FH LINE CODE --- #286 + 01003B12H LINE CODE --- #299 + 01003B14H LINE CODE --- #311 + 01003B17H LINE CODE --- #314 + --- BLOCKEND --- --- LVL=0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 37 + + + + 01003C4BH BLOCK CODE --- LVL=0 + 01003C4BH LINE CODE --- #374 + 01003C4BH LINE CODE --- #388 + 01003C4EH LINE CODE --- #413 + 01003C51H LINE CODE --- #428 + 01003C54H LINE CODE --- #432 --- BLOCKEND --- --- LVL=0 - 01003D8AH BLOCK CODE --- LVL=0 - 01003D8AH LINE CODE --- #370 - 01003D8AH LINE CODE --- #384 - 01003D8DH LINE CODE --- #409 - 01003D90H LINE CODE --- #417 + 01003CC2H BLOCK CODE --- LVL=0 + 01003CC2H LINE CODE --- #437 + 01003CC2H LINE CODE --- #444 + 01003CC5H LINE CODE --- #445 + 01003CC8H LINE CODE --- #448 --- BLOCKEND --- --- LVL=0 - 01003D91H BLOCK CODE --- LVL=0 - 01003D91H LINE CODE --- #422 - 01003D91H LINE CODE --- #429 - 01003D94H LINE CODE --- #430 - 01003D97H LINE CODE --- #433 + 01003B6AH BLOCK CODE --- LVL=0 + 01003B6AH LINE CODE --- #453 + 01003B6AH LINE CODE --- #456 + 01003B6DH LINE CODE --- #457 + 01003B6FH LINE CODE --- #458 + 01003B71H LINE CODE --- #459 + 01003B71H LINE CODE --- #474 + 01003B74H LINE CODE --- #475 + 01003B77H LINE CODE --- #476 + 01003B77H LINE CODE --- #480 --- BLOCKEND --- --- LVL=0 - 01003C46H BLOCK CODE --- LVL=0 - 01003C46H LINE CODE --- #438 - 01003C46H LINE CODE --- #441 - 01003C49H LINE CODE --- #442 - 01003C4BH LINE CODE --- #443 - 01003C4DH LINE CODE --- #444 - 01003C4DH LINE CODE --- #459 - 01003C50H LINE CODE --- #460 - 01003C53H LINE CODE --- #461 - 01003C53H LINE CODE --- #465 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 37 - - - --- BLOCKEND --- --- LVL=0 - - 01003BA7H BLOCK CODE --- LVL=0 - 01003BA7H BLOCK CODE NEAR LAB LVL=1 + 01003ABAH BLOCK CODE --- LVL=0 + 01003ABAH BLOCK CODE NEAR LAB LVL=1 00000007H SYMBOL DATA BYTE TCON_save --- BLOCKEND --- --- LVL=1 - 01003BA7H LINE CODE --- #470 - 01003BA7H LINE CODE --- #474 - 01003BA9H LINE CODE --- #476 - 01003BACH LINE CODE --- #490 - 01003BAFH LINE CODE --- #498 - 01003BB9H LINE CODE --- #502 + 01003ABAH LINE CODE --- #485 + 01003ABAH LINE CODE --- #489 + 01003ABCH LINE CODE --- #491 + 01003ABFH LINE CODE --- #505 + 01003AC2H LINE CODE --- #513 + 01003ACCH LINE CODE --- #517 --- BLOCKEND --- --- LVL=0 - 01003BBAH BLOCK CODE --- LVL=0 - 01003BBAH BLOCK CODE NEAR LAB LVL=1 + 01003ACDH BLOCK CODE --- LVL=0 + 01003ACDH BLOCK CODE NEAR LAB LVL=1 00000007H SYMBOL DATA BYTE TMR2CN0_TR2_save --- BLOCKEND --- --- LVL=1 - 01003BBAH LINE CODE --- #507 - 01003BBAH LINE CODE --- #511 - 01003BBEH LINE CODE --- #513 - 01003BC1H LINE CODE --- #532 - 01003BC4H LINE CODE --- #539 - 01003BC7H LINE CODE --- #546 - 01003BCAH LINE CODE --- #551 - 01003BCCH LINE CODE --- #554 + 01003ACDH LINE CODE --- #522 + 01003ACDH LINE CODE --- #526 + 01003AD1H LINE CODE --- #528 + 01003AD4H LINE CODE --- #547 + 01003AD7H LINE CODE --- #554 + 01003ADAH LINE CODE --- #561 + 01003ADDH LINE CODE --- #566 + 01003ADFH LINE CODE --- #569 --- BLOCKEND --- --- LVL=0 0100002EH BLOCK CODE --- LVL=0 0100002EH BLOCK CODE NEAR LAB LVL=1 00000007H SYMBOL DATA BYTE TMR3CN0_TR3_save --- BLOCKEND --- --- LVL=1 - 0100002EH LINE CODE --- #559 - 0100002EH LINE CODE --- #563 - 01000032H LINE CODE --- #565 - 01000035H LINE CODE --- #590 - 01000038H LINE CODE --- #595 - 0100003AH LINE CODE --- #598 + 0100002EH LINE CODE --- #574 + 0100002EH LINE CODE --- #578 + 01000032H LINE CODE --- #580 + 01000035H LINE CODE --- #605 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 38 + + + 01000038H LINE CODE --- #610 + 0100003AH LINE CODE --- #613 --- BLOCKEND --- --- LVL=0 - 01003D1CH BLOCK CODE --- LVL=0 - 01003D1CH LINE CODE --- #603 - 01003D1CH LINE CODE --- #619 - 01003D1FH LINE CODE --- #642 - 01003D22H LINE CODE --- #650 - 01003D25H LINE CODE --- #653 + 01003C55H BLOCK CODE --- LVL=0 + 01003C55H LINE CODE --- #618 + 01003C55H LINE CODE --- #634 + 01003C58H LINE CODE --- #657 + 01003C5BH LINE CODE --- #665 + 01003C5EH LINE CODE --- #668 --- BLOCKEND --- --- LVL=0 - 01003DBFH BLOCK CODE --- LVL=0 - 01003DBFH LINE CODE --- #658 - 01003DBFH LINE CODE --- #681 - 01003DC2H LINE CODE --- #686 + 01003D05H BLOCK CODE --- LVL=0 + 01003D05H LINE CODE --- #673 + 01003D05H LINE CODE --- #696 + 01003D08H LINE CODE --- #701 --- BLOCKEND --- --- LVL=0 - 01003DC3H BLOCK CODE --- LVL=0 - 01003DC3H LINE CODE --- #691 - 01003DC3H LINE CODE --- #696 - 01003DC6H LINE CODE --- #699 + 01003D09H BLOCK CODE --- LVL=0 + 01003D09H LINE CODE --- #706 + 01003D09H LINE CODE --- #711 + 01003D0CH LINE CODE --- #714 --- BLOCKEND --- --- LVL=0 - 01003D98H BLOCK CODE --- LVL=0 - 01003D98H LINE CODE --- #704 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 38 - - - 01003D98H LINE CODE --- #724 - 01003D9BH LINE CODE --- #762 - 01003D9EH LINE CODE --- #773 + 01003CC9H BLOCK CODE --- LVL=0 + 01003CC9H LINE CODE --- #719 + 01003CC9H LINE CODE --- #739 + 01003CCCH LINE CODE --- #777 + 01003CCFH LINE CODE --- #788 --- BLOCKEND --- --- LVL=0 - 01003D4EH BLOCK CODE --- LVL=0 - 01003D4EH LINE CODE --- #778 - 01003D4EH LINE CODE --- #780 + 01003C87H BLOCK CODE --- LVL=0 + 01003C87H LINE CODE --- #793 + 01003C87H LINE CODE --- #795 + --- BLOCKEND --- --- LVL=0 + + 01003CABH BLOCK CODE --- LVL=0 + 01003CABH LINE CODE --- #800 + 01003CABH LINE CODE --- #802 + 01003CADH LINE CODE --- #814 + 01003CB0H LINE CODE --- #834 + 01003CB2H LINE CODE --- #837 + --- BLOCKEND --- --- LVL=0 + + 01003CD0H BLOCK CODE --- LVL=0 + 01003CD0H LINE CODE --- #839 + 01003CD0H LINE CODE --- #842 + 01003CD3H LINE CODE --- #864 + 01003CD6H LINE CODE --- #882 + --- BLOCKEND --- --- LVL=0 + + 01003CD7H BLOCK CODE --- LVL=0 + 01003CD7H LINE CODE --- #884 + 01003CD7H LINE CODE --- #887 + 01003CDAH LINE CODE --- #909 + 01003CDDH LINE CODE --- #927 + --- BLOCKEND --- --- LVL=0 + + 01003CDEH BLOCK CODE --- LVL=0 + 01003CDEH LINE CODE --- #929 + 01003CDEH LINE CODE --- #932 + 01003CE1H LINE CODE --- #954 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 39 + + + 01003CE4H LINE CODE --- #972 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- INTERRUPTS - 02000337H PUBLIC XDATA --- SMB - 0000001AH PUBLIC DATA DWORD _MS_ - 02000336H PUBLIC XDATA BYTE SMB_FLAGS - 02000335H PUBLIC XDATA BYTE count - 01003C27H PUBLIC CODE --- TIMER3_ISR - 01000A69H PUBLIC CODE --- SMBUS0_ISR - 010036A1H PUBLIC CODE --- TIMER2_ISR + 0200036EH PUBLIC XDATA --- SMB + 00000011H PUBLIC DATA DWORD _MS_ + 00000010H PUBLIC DATA BYTE SMB_FLAGS + 01003B4BH PUBLIC CODE --- TIMER3_ISR + 01000A72H PUBLIC CODE --- SMBUS0_ISR + 010035BAH PUBLIC CODE --- TIMER2_ISR 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -2441,7 +2498,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -2469,9 +2526,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F0H SFRSYM DATA BIT B_B0 00000082H SFRSYM DATA WORD DP 000000A2H SFRSYM DATA BYTE TMR4RLL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 39 - - 000000ECH SFRSYM DATA BYTE PCA0CPH2 000000F0H.1 SFRSYM DATA BIT B_B1 000000C3H SFRSYM DATA WORD ADC0GT @@ -2480,6 +2534,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F0H.2 SFRSYM DATA BIT B_B2 000000CFH SFRSYM DATA BYTE SFRPGCN 000000FBH SFRSYM DATA BYTE PCA0CPL0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 40 + + 000000F0H.3 SFRSYM DATA BIT B_B3 000000D9H SFRSYM DATA BYTE PCA0MD 000000DAH SFRSYM DATA BYTE PCA0CPM0 @@ -2534,9 +2591,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D8H.2 SFRSYM DATA BIT PCA0CN0_CCF2 000000E0H.7 SFRSYM DATA BIT ACC_ACC7 00000094H SFRSYM DATA WORD TMR3 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 40 - - 0000009BH SFRSYM DATA BYTE SPI0FCN1 000000A4H SFRSYM DATA WORD TMR4 00000094H SFRSYM DATA BYTE SBCON1 @@ -2545,6 +2599,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F1H SFRSYM DATA BYTE P0MDIN 00000098H.4 SFRSYM DATA BIT SCON0_REN 000000ACH SFRSYM DATA BYTE SMB0TC +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 41 + + 000000F2H SFRSYM DATA BYTE P1MDIN 000000C8H.4 SFRSYM DATA BIT SCON1_REN 000000F3H SFRSYM DATA BYTE P2MDIN @@ -2599,9 +2656,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B5H SFRSYM DATA BYTE DEVICEID 000000A9H SFRSYM DATA BYTE CLKSEL 000000F8H SFRSYM DATA BIT SPI0CN0_SPIEN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 41 - - 000000F0H SFRSYM DATA BYTE B 000000BEH SFRSYM DATA BYTE ADC0H 000000E8H.6 SFRSYM DATA BIT ADC0CN0_ADBMEN @@ -2610,6 +2664,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000092H SFRSYM DATA WORD TMR3RL 000000A2H SFRSYM DATA WORD TMR4RL 000000D8H SFRSYM DATA BYTE PCA0CN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 42 + + 000000E0H SFRSYM DATA BYTE ACC 000000FBH SFRSYM DATA WORD PCA0CP0 000000E9H SFRSYM DATA WORD PCA0CP1 @@ -2664,9 +2721,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000080H.5 SFRSYM DATA BIT P0_B5 000000D8H.1 SFRSYM DATA BIT UART1FCN1_RXTO0 00000090H.5 SFRSYM DATA BIT P1_B5 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 42 - - 00000080H.6 SFRSYM DATA BIT P0_B6 000000F5H SFRSYM DATA BYTE EIP1H 000000D8H.2 SFRSYM DATA BIT UART1FCN1_RXTO1 @@ -2675,6 +2729,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C5H SFRSYM DATA BYTE SMB0RXLN 000000F6H SFRSYM DATA BYTE EIP2H 00000090H.7 SFRSYM DATA BIT P1_B7 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 43 + + 00000083H SFRSYM DATA BYTE DPH 000000C4H SFRSYM DATA BYTE ADC0GTH 000000C8H.7 SFRSYM DATA BIT TMR2CN0_TF2H @@ -2729,9 +2786,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000091H SFRSYM DATA BYTE TMR3CN0 000000FDH SFRSYM DATA BYTE TMR2CN1 00000098H SFRSYM DATA BYTE TMR4CN0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 43 - - 000000FEH SFRSYM DATA BYTE TMR3CN1 000000FFH SFRSYM DATA BYTE TMR4CN1 000000D7H SFRSYM DATA BYTE SMB0ADR @@ -2740,6 +2794,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000088H.6 SFRSYM DATA BIT TCON_TR1 000000C2H SFRSYM DATA BYTE SMB0DAT 000000CDH SFRSYM DATA BYTE TMR2H +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 44 + + 000000A1H SFRSYM DATA BYTE SPI0CFG 00000095H SFRSYM DATA BYTE TMR3H 000000EFH SFRSYM DATA BYTE HFOCN @@ -2758,7 +2815,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 @@ -2773,170 +2830,168 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 010039CAH SYMBOL CODE --- __feed_crc - 01003B2DH SYMBOL CODE --- restart_bus - 0100392FH SYMBOL CODE --- update_from_packet_length + 01003918H SYMBOL CODE --- __feed_crc + 01003A69H SYMBOL CODE --- restart_bus + 010038FDH SYMBOL CODE --- update_from_packet_length - 01003BCDH BLOCK CODE --- LVL=0 + 01003BE9H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 010036A1H BLOCK CODE --- LVL=0 - 010036A1H LINE CODE --- #15 - 010036AEH LINE CODE --- #17 - 010036B0H LINE CODE --- #18 - 010036C8H LINE CODE --- #19 + 010035BAH BLOCK CODE --- LVL=0 + 010035BAH LINE CODE --- #15 + 010035C7H LINE CODE --- #17 + 010035C9H LINE CODE --- #18 + 010035E1H LINE CODE --- #19 --- BLOCKEND --- --- LVL=0 - 0100392FH BLOCK CODE --- LVL=0 - 0100392FH LINE CODE --- #34 - 0100392FH LINE CODE --- #35 - 0100392FH LINE CODE --- #36 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 44 - - - 01003943H LINE CODE --- #37 - 01003943H LINE CODE --- #38 - 01003945H LINE CODE --- #39 - 01003946H LINE CODE --- #41 - 01003946H LINE CODE --- #43 - 0100394DH LINE CODE --- #44 - 0100394DH LINE CODE --- #45 + 010038FDH BLOCK CODE --- LVL=0 + 010038FDH LINE CODE --- #34 + 010038FDH LINE CODE --- #35 + 010038FDH LINE CODE --- #36 + 01003911H LINE CODE --- #37 + 01003911H LINE CODE --- #38 + 01003913H LINE CODE --- #39 + 01003914H LINE CODE --- #41 + 01003914H LINE CODE --- #43 + 01003917H LINE CODE --- #44 + 01003917H LINE CODE --- #45 --- BLOCKEND --- --- LVL=0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 45 - 010039CAH BLOCK CODE --- LVL=0 + + + 01003918H BLOCK CODE --- LVL=0 00000005H SYMBOL DATA BYTE b - 010039CAH LINE CODE --- #47 - 010039CCH LINE CODE --- #48 - 010039CCH LINE CODE --- #49 - 010039D3H LINE CODE --- #50 - 010039D3H LINE CODE --- #51 - 010039E6H LINE CODE --- #52 - 010039E6H LINE CODE --- #53 + 01003918H LINE CODE --- #47 + 0100391AH LINE CODE --- #48 + 0100391AH LINE CODE --- #49 + 0100391FH LINE CODE --- #50 + 0100391FH LINE CODE --- #51 + 01003932H LINE CODE --- #52 + 01003932H LINE CODE --- #53 --- BLOCKEND --- --- LVL=0 - 01003B2DH BLOCK CODE --- LVL=0 - 01003B2DH LINE CODE --- #55 - 01003B2DH LINE CODE --- #56 - 01003B2DH LINE CODE --- #57 - 01003B30H LINE CODE --- #58 - 01003B33H LINE CODE --- #59 - 01003B35H LINE CODE --- #60 - 01003B37H LINE CODE --- #61 - 01003B39H LINE CODE --- #62 - 01003B3CH LINE CODE --- #63 - 01003B41H LINE CODE --- #64 + 01003A69H BLOCK CODE --- LVL=0 + 01003A69H LINE CODE --- #55 + 01003A69H LINE CODE --- #56 + 01003A69H LINE CODE --- #57 + 01003A6CH LINE CODE --- #58 + 01003A6FH LINE CODE --- #59 + 01003A71H LINE CODE --- #60 + 01003A73H LINE CODE --- #61 + 01003A75H LINE CODE --- #62 + 01003A78H LINE CODE --- #63 + 01003A7DH LINE CODE --- #64 --- BLOCKEND --- --- LVL=0 - 01000A69H BLOCK CODE --- LVL=0 - 01000A86H BLOCK CODE NEAR LAB LVL=1 - 02000000H SYMBOL XDATA BYTE bus - 01000BECH SYMBOL CODE --- fail + 01000A72H BLOCK CODE --- LVL=0 + 01000A8FH BLOCK CODE NEAR LAB LVL=1 + 00000015H SYMBOL DATA BYTE bus + 01000BD4H SYMBOL CODE --- fail --- BLOCKEND --- --- LVL=1 - 01000A69H LINE CODE --- #67 - 01000A86H LINE CODE --- #69 - 01000A8EH LINE CODE --- #70 - 01000A94H LINE CODE --- #71 - 01000A94H LINE CODE --- #72 - 01000A94H LINE CODE --- #73 - 01000A94H LINE CODE --- #75 - 01000AAAH LINE CODE --- #76 - 01000AAAH LINE CODE --- #77 - 01000AAAH LINE CODE --- #78 - 01000AB6H LINE CODE --- #79 - 01000ABBH LINE CODE --- #80 - 01000ABDH LINE CODE --- #81 - 01000AC0H LINE CODE --- #83 - 01000AC0H LINE CODE --- #84 - 01000AC6H LINE CODE --- #85 - 01000AC9H LINE CODE --- #86 - 01000AC9H LINE CODE --- #89 - 01000ACBH LINE CODE --- #90 - 01000AD0H LINE CODE --- #91 - 01000AD4H LINE CODE --- #92 - 01000AD7H LINE CODE --- #93 - 01000AE1H LINE CODE --- #94 - 01000AE1H LINE CODE --- #96 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 45 - - - 01000AE1H LINE CODE --- #97 - 01000AEDH LINE CODE --- #98 - 01000AEDH LINE CODE --- #101 + 01000A72H LINE CODE --- #66 + 01000A8FH LINE CODE --- #68 + 01000A95H LINE CODE --- #69 + 01000A9BH LINE CODE --- #70 + 01000A9BH LINE CODE --- #71 + 01000A9BH LINE CODE --- #72 + 01000A9BH LINE CODE --- #74 + 01000AAFH LINE CODE --- #75 + 01000AAFH LINE CODE --- #76 + 01000AAFH LINE CODE --- #77 + 01000ABBH LINE CODE --- #78 + 01000ABDH LINE CODE --- #79 + 01000AC0H LINE CODE --- #81 + 01000AC0H LINE CODE --- #82 + 01000AC3H LINE CODE --- #83 + 01000AC3H LINE CODE --- #86 + 01000AC5H LINE CODE --- #87 + 01000AC8H LINE CODE --- #88 + 01000ACBH LINE CODE --- #89 + 01000ACEH LINE CODE --- #90 + 01000AD6H LINE CODE --- #91 + 01000AD6H LINE CODE --- #93 + 01000AD6H LINE CODE --- #94 + 01000AE2H LINE CODE --- #95 + 01000AE2H LINE CODE --- #98 + 01000AEFH LINE CODE --- #99 + 01000AF8H LINE CODE --- #101 01000AFAH LINE CODE --- #102 - 01000B03H LINE CODE --- #104 - 01000B05H LINE CODE --- #105 - 01000B18H LINE CODE --- #106 - 01000B18H LINE CODE --- #108 - 01000B22H LINE CODE --- #109 - 01000B36H LINE CODE --- #110 - 01000B39H LINE CODE --- #111 - 01000B40H LINE CODE --- #112 - 01000B40H LINE CODE --- #114 - 01000B51H LINE CODE --- #115 - 01000B51H LINE CODE --- #116 - 01000B51H LINE CODE --- #117 - 01000B54H LINE CODE --- #118 - 01000B56H LINE CODE --- #119 - 01000B59H LINE CODE --- #120 - 01000B59H LINE CODE --- #121 - 01000B5FH LINE CODE --- #122 - 01000B66H LINE CODE --- #123 - 01000B69H LINE CODE --- #124 - 01000B69H LINE CODE --- #125 - 01000B69H LINE CODE --- #127 - 01000B69H LINE CODE --- #129 - 01000B6BH LINE CODE --- #130 - 01000B6EH LINE CODE --- #131 - 01000B6EH LINE CODE --- #132 - 01000B6EH LINE CODE --- #135 - 01000B70H LINE CODE --- #137 - 01000B70H LINE CODE --- #140 - 01000B7BH LINE CODE --- #141 - 01000B7BH LINE CODE --- #142 - 01000B8EH LINE CODE --- #146 - 01000B91H LINE CODE --- #147 - 01000B91H LINE CODE --- #148 - 01000B94H LINE CODE --- #149 - 01000B94H LINE CODE --- #151 - 01000BA9H LINE CODE --- #152 - 01000BA9H LINE CODE --- #153 - 01000BC8H LINE CODE --- #154 - 01000BC8H LINE CODE --- #156 - 01000BCEH LINE CODE --- #157 - 01000BD0H LINE CODE --- #158 - 01000BD2H LINE CODE --- #160 - 01000BD2H LINE CODE --- #162 - 01000BD9H LINE CODE --- #163 - 01000BD9H LINE CODE --- #164 - 01000BDCH LINE CODE --- #165 - 01000BDCH LINE CODE --- #166 - 01000BDFH LINE CODE --- #167 - 01000BE1H LINE CODE --- #168 - 01000BE3H LINE CODE --- #169 - 01000BE8H LINE CODE --- #170 - 01000BE8H LINE CODE --- #172 - 01000BE8H LINE CODE --- #174 - 01000BE8H LINE CODE --- #175 - 01000BE8H LINE CODE --- #176 - 01000BE8H LINE CODE --- #178 - 01000BE8H LINE CODE --- #182 - 01000BECH LINE CODE --- #185 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 46 + 01000B0BH LINE CODE --- #103 + 01000B0BH LINE CODE --- #105 + 01000B15H LINE CODE --- #106 + 01000B29H LINE CODE --- #107 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 46 - 01000BECH LINE CODE --- #186 - 01000BFFH LINE CODE --- #187 - 01000C02H LINE CODE --- #188 - 01000C04H LINE CODE --- #189 + 01000B2CH LINE CODE --- #108 + 01000B31H LINE CODE --- #109 + 01000B31H LINE CODE --- #111 + 01000B42H LINE CODE --- #112 + 01000B42H LINE CODE --- #113 + 01000B42H LINE CODE --- #114 + 01000B45H LINE CODE --- #115 + 01000B47H LINE CODE --- #116 + 01000B4AH LINE CODE --- #117 + 01000B4AH LINE CODE --- #118 + 01000B50H LINE CODE --- #119 + 01000B53H LINE CODE --- #120 + 01000B55H LINE CODE --- #121 + 01000B55H LINE CODE --- #122 + 01000B55H LINE CODE --- #124 + 01000B55H LINE CODE --- #126 + 01000B57H LINE CODE --- #127 + 01000B5AH LINE CODE --- #128 + 01000B5AH LINE CODE --- #129 + 01000B5AH LINE CODE --- #132 + 01000B5CH LINE CODE --- #134 + 01000B5CH LINE CODE --- #137 + 01000B67H LINE CODE --- #138 + 01000B67H LINE CODE --- #139 + 01000B7AH LINE CODE --- #143 + 01000B7DH LINE CODE --- #144 + 01000B7DH LINE CODE --- #145 + 01000B80H LINE CODE --- #146 + 01000B80H LINE CODE --- #148 + 01000B93H LINE CODE --- #149 + 01000B93H LINE CODE --- #150 + 01000BB2H LINE CODE --- #151 + 01000BB2H LINE CODE --- #153 + 01000BB8H LINE CODE --- #154 + 01000BBAH LINE CODE --- #155 + 01000BBCH LINE CODE --- #157 + 01000BBCH LINE CODE --- #159 + 01000BC1H LINE CODE --- #160 + 01000BC1H LINE CODE --- #161 + 01000BC4H LINE CODE --- #162 + 01000BC4H LINE CODE --- #163 + 01000BC7H LINE CODE --- #164 + 01000BC9H LINE CODE --- #165 + 01000BCBH LINE CODE --- #166 + 01000BD0H LINE CODE --- #167 + 01000BD0H LINE CODE --- #169 + 01000BD0H LINE CODE --- #171 + 01000BD0H LINE CODE --- #172 + 01000BD0H LINE CODE --- #173 + 01000BD0H LINE CODE --- #175 + 01000BD0H LINE CODE --- #179 + 01000BD4H LINE CODE --- #182 + 01000BD4H LINE CODE --- #183 + 01000BE5H LINE CODE --- #184 + 01000BE8H LINE CODE --- #185 + 01000BEAH LINE CODE --- #186 --- BLOCKEND --- --- LVL=0 - 01003C27H BLOCK CODE --- LVL=0 - 01003C27H LINE CODE --- #204 - 01003C2DH LINE CODE --- #206 - 01003C30H LINE CODE --- #207 + 01003B4BH BLOCK CODE --- LVL=0 + 01003B4BH LINE CODE --- #201 + 01003B51H LINE CODE --- #203 + 01003B54H LINE CODE --- #204 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 47 + + --- BLOCKEND --- --- LVL=0 --- MODULE --- --- ?C_STARTUP @@ -2948,7 +3003,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000000H SYMBOL NUMBER --- IBPSTACK 00000100H SYMBOL NUMBER --- IBPSTACKTOP 00000080H SYMBOL NUMBER --- IDATALEN - 0100259CH SYMBOL CODE --- IDATALOOP + 01002472H SYMBOL CODE --- IDATALOOP 00000000H SYMBOL NUMBER --- PBPSTACK 00000100H SYMBOL NUMBER --- PBPSTACKTOP 00000000H SYMBOL NUMBER --- PDATALEN @@ -2957,42 +3012,36 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000000H SYMBOL NUMBER --- PPAGEENABLE 000000A0H SYMBOL DATA --- PPAGE_SFR 00000081H SYMBOL DATA --- SP - 01002599H SYMBOL CODE --- STARTUP1 + 0100246FH SYMBOL CODE --- STARTUP1 00000000H SYMBOL NUMBER --- XBPSTACK 00000000H SYMBOL NUMBER --- XBPSTACKTOP 00000000H SYMBOL NUMBER --- XDATALEN 00000000H SYMBOL NUMBER --- XDATASTART 01000000H LINE CODE --- #126 - 01002599H LINE CODE --- #138 - 0100259BH LINE CODE --- #139 - 0100259CH LINE CODE --- #140 - 0100259DH LINE CODE --- #141 - 0100259FH LINE CODE --- #190 - 010025A2H LINE CODE --- #201 + 0100246FH LINE CODE --- #138 + 01002471H LINE CODE --- #139 + 01002472H LINE CODE --- #140 + 01002473H LINE CODE --- #141 + 01002475H LINE CODE --- #190 + 01002478H LINE CODE --- #201 --- MODULE --- --- BSP - 020000C3H PUBLIC XDATA BYTE ?_u2f_printb?BYTE - 010034BCH PUBLIC CODE --- _u2f_printb - 02000041H PUBLIC XDATA BYTE ?_u2f_printx?BYTE - 010035CFH PUBLIC CODE --- _u2f_printx - 02000041H PUBLIC XDATA BYTE ?_u2f_printl?BYTE - 0100359AH PUBLIC CODE --- _u2f_printl - 020000B6H PUBLIC XDATA BYTE ?_u2f_printd?BYTE + 02000212H PUBLIC XDATA BYTE ?_u2f_printb?BYTE + 0100340AH PUBLIC CODE --- _u2f_printb + 02000190H PUBLIC XDATA BYTE ?_u2f_printl?BYTE + 010034E8H PUBLIC CODE --- _u2f_printl + 02000205H PUBLIC XDATA BYTE ?_u2f_printd?BYTE 0100003EH PUBLIC CODE --- _u2f_printd - 01003DADH PUBLIC CODE --- _u2f_putl - 01003D57H PUBLIC CODE --- _u2f_putx - 01003CA1H PUBLIC CODE --- _u2f_putd - 01003D26H PUBLIC CODE --- _u2f_putb - 01003398H PUBLIC CODE --- ___int2str16 - 0100335DH PUBLIC CODE --- ___int2str10 - 0100388CH PUBLIC CODE --- _u2f_prints - 01002F14H PUBLIC CODE --- _dump_hex - 01003A8AH PUBLIC CODE --- _putf - 01002A84H PUBLIC CODE --- _usb_write -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 47 - - - 010032A6H PUBLIC CODE --- _u2f_delay + 01003CF3H PUBLIC CODE --- _u2f_putl + 01003BC5H PUBLIC CODE --- _u2f_putd + 01003C5FH PUBLIC CODE --- _u2f_putb + 01003320H PUBLIC CODE --- ___int2str16 + 010032E5H PUBLIC CODE --- ___int2str10 + 010037A8H PUBLIC CODE --- _u2f_prints + 01002E5AH PUBLIC CODE --- _dump_hex + 0100399AH PUBLIC CODE --- _putf + 0100295AH PUBLIC CODE --- _usb_write + 0100322EH PUBLIC CODE --- _u2f_delay 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -3005,11 +3054,14 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000BCH SFRSYM DATA BYTE ADC0CF 000000C0H.7 SFRSYM DATA BIT SMB0CN0_MASTER 000000F9H SFRSYM DATA WORD PCA0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 48 + + 000000E6H SFRSYM DATA BYTE EIE1 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -3054,9 +3106,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000DBH SFRSYM DATA BYTE PCA0CPM1 000000EBH SFRSYM DATA BYTE PCA0CPL2 000000F0H.5 SFRSYM DATA BIT B_B5 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 48 - - 000000DCH SFRSYM DATA BYTE PCA0CPM2 000000B8H SFRSYM DATA BYTE IP 000000B9H SFRSYM DATA BYTE ADC0TK @@ -3070,6 +3119,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C4H SFRSYM DATA BYTE SMB0FCN1 000000C1H SFRSYM DATA BYTE SMB0CF 000000E2H SFRSYM DATA BYTE XBR1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 49 + + 000000C1H SFRSYM DATA BYTE PFE0CN 000000E7H SFRSYM DATA BYTE EMI0CN 000000C0H.5 SFRSYM DATA BIT SMB0CN0_STA @@ -3119,9 +3171,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B9H SFRSYM DATA BYTE I2C0STAT 000000BBH SFRSYM DATA BYTE I2C0DOUT 00000096H SFRSYM DATA BYTE SBRLH1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 49 - - 000000FEH SFRSYM DATA BYTE P0MASK 000000D8H.5 SFRSYM DATA BIT UART1FCN1_TXHOLD 000000EEH SFRSYM DATA BYTE P1MASK @@ -3135,6 +3184,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D0H.4 SFRSYM DATA BIT PSW_RS1 00000095H SFRSYM DATA BYTE SBRLL1 000000C8H.2 SFRSYM DATA BIT SCON1_RBX +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 50 + + 000000C8H SFRSYM DATA BIT TMR2CN0_T2XCLK0 000000C8H.1 SFRSYM DATA BIT TMR2CN0_T2XCLK1 000000C8H.3 SFRSYM DATA BIT SCON1_TBX @@ -3184,9 +3236,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000008CH SFRSYM DATA BYTE TH0 00000086H SFRSYM DATA BYTE CRC0CN1 000000B8H.4 SFRSYM DATA BIT IP_PS0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 50 - - 000000FAH SFRSYM DATA BYTE UART1FCT 0000008DH SFRSYM DATA BYTE TH1 000000FAH SFRSYM DATA BYTE PCA0H @@ -3200,6 +3249,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D0H.5 SFRSYM DATA BIT PSW_F0 000000A8H.6 SFRSYM DATA BIT IE_ESPI0 0000008BH SFRSYM DATA BYTE TL1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 51 + + 000000F9H SFRSYM DATA BYTE PCA0L 000000C0H SFRSYM DATA BIT SMB0CN0_SI 000000D0H.1 SFRSYM DATA BIT PSW_F1 @@ -3249,9 +3301,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C7H SFRSYM DATA BYTE HFO0CAL 00000088H.5 SFRSYM DATA BIT TCON_TF0 00000098H SFRSYM DATA BIT SCON0_RI -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 51 - - 000000D6H SFRSYM DATA BYTE HFO1CAL 00000082H SFRSYM DATA BYTE DPL 00000088H.7 SFRSYM DATA BIT TCON_TF1 @@ -3265,6 +3314,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H.6 SFRSYM DATA BIT TMR2CN0_TF2L 00000098H.1 SFRSYM DATA BIT SCON0_TI 000000E8H SFRSYM DATA BIT ADC0CN0_ADCM0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 52 + + 00000092H SFRSYM DATA BYTE SBUF1 0000009AH SFRSYM DATA BYTE PCON1 000000C6H SFRSYM DATA BYTE ADC0LTH @@ -3314,9 +3366,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000EFH SFRSYM DATA BYTE SMB0FCT 00000096H SFRSYM DATA BYTE PCA0POL 000000CCH SFRSYM DATA BYTE TMR2L -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 52 - - 000000F8H.7 SFRSYM DATA BIT SPI0CN0_SPIF 000000AEH SFRSYM DATA BYTE USB0ADR 00000094H SFRSYM DATA BYTE TMR3L @@ -3326,10 +3375,13 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 53 + + 000000A3H SFRSYM DATA BYTE SPI0DAT 000000ADH SFRSYM DATA BYTE I2C0FCN0 000000F8H.3 SFRSYM DATA BIT SPI0CN0_NSSMD1 @@ -3341,224 +3393,218 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01003BE0H SYMBOL CODE --- _int2str_reduce_16 - 0200034CH SYMBOL XDATA --- __int2str_buf - 01003096H SYMBOL CODE --- _int2str_map_10 - 010031A5H SYMBOL CODE --- _int2str_map_16 - 02000355H SYMBOL XDATA --- __digits - 010036D3H SYMBOL CODE --- _int2str_reduce_10 + 01003AE0H SYMBOL CODE --- _int2str_reduce_16 + 02000383H SYMBOL XDATA --- __int2str_buf + 01002FDBH SYMBOL CODE --- _int2str_map_10 + 010030EFH SYMBOL CODE --- _int2str_map_16 + 0200038CH SYMBOL XDATA --- __digits + 010035ECH SYMBOL CODE --- _int2str_reduce_10 - 01002999H BLOCK CODE --- LVL=0 + 0100286FH BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 010032A6H BLOCK CODE --- LVL=0 - 020000C3H SYMBOL XDATA WORD ms - 010032AEH BLOCK CODE NEAR LAB LVL=1 - 020000C5H SYMBOL XDATA DWORD ms_now + 0100322EH BLOCK CODE --- LVL=0 + 02000212H SYMBOL XDATA WORD ms + 01003236H BLOCK CODE NEAR LAB LVL=1 + 02000214H SYMBOL XDATA DWORD ms_now --- BLOCKEND --- --- LVL=1 - 010032A6H LINE CODE --- #13 - 010032AEH LINE CODE --- #14 - 010032BAH LINE CODE --- #15 - 010032E2H LINE CODE --- #16 - 010032E2H LINE CODE --- #17 + 0100322EH LINE CODE --- #13 + 01003236H LINE CODE --- #14 + 01003242H LINE CODE --- #15 + 0100326AH LINE CODE --- #16 + 0100326AH LINE CODE --- #17 --- BLOCKEND --- --- LVL=0 - 01002A84H BLOCK CODE --- LVL=0 - 020000AFH SYMBOL XDATA --- buf - 020000B2H SYMBOL XDATA BYTE len - 01002A8FH BLOCK CODE NEAR LAB LVL=1 - 020000B3H SYMBOL XDATA INT ec - 020000B5H SYMBOL XDATA BYTE errors + 0100295AH BLOCK CODE --- LVL=0 + 020001FEH SYMBOL XDATA --- buf + 02000201H SYMBOL XDATA BYTE len + 01002965H BLOCK CODE NEAR LAB LVL=1 + 02000202H SYMBOL XDATA INT ec + 02000204H SYMBOL XDATA BYTE errors --- BLOCKEND --- --- LVL=1 - 01002A84H LINE CODE --- #19 - 01002A8FH LINE CODE --- #20 - 01002A8FH LINE CODE --- #22 - 01002A94H LINE CODE --- #23 - 01002ABDH LINE CODE --- #24 - 01002ABDH LINE CODE --- #25 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 53 - - - 01002AC4H LINE CODE --- #26 - 01002AD1H LINE CODE --- #27 - 01002AD1H LINE CODE --- #28 - 01002AF0H LINE CODE --- #29 - 01002AF0H LINE CODE --- #30 - 01002AF0H LINE CODE --- #31 - 01002AF0H LINE CODE --- #32 + 0100295AH LINE CODE --- #19 + 01002965H LINE CODE --- #20 + 01002965H LINE CODE --- #22 + 0100296AH LINE CODE --- #23 + 01002993H LINE CODE --- #24 + 01002993H LINE CODE --- #25 + 0100299AH LINE CODE --- #26 + 010029A7H LINE CODE --- #27 + 010029A7H LINE CODE --- #28 + 010029C6H LINE CODE --- #29 + 010029C6H LINE CODE --- #30 + 010029C6H LINE CODE --- #31 + 010029C6H LINE CODE --- #32 --- BLOCKEND --- --- LVL=0 - 01003A8AH BLOCK CODE --- LVL=0 + 0100399AH BLOCK CODE --- LVL=0 00000007H SYMBOL DATA CHAR c - 01003A8AH BLOCK CODE NEAR LAB LVL=1 + 0100399AH BLOCK CODE NEAR LAB LVL=1 00000007H SYMBOL DATA BYTE i +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 54 + + --- BLOCKEND --- --- LVL=1 - 01003A8AH LINE CODE --- #37 - 01003A8AH LINE CODE --- #38 - 01003A8AH LINE CODE --- #40 - 01003A8CH LINE CODE --- #41 - 01003A93H LINE CODE --- #42 - 01003A9AH LINE CODE --- #43 - 01003AA1H LINE CODE --- #44 + 0100399AH LINE CODE --- #37 + 0100399AH LINE CODE --- #38 + 0100399AH LINE CODE --- #40 + 0100399CH LINE CODE --- #41 + 010039A3H LINE CODE --- #42 + 010039AAH LINE CODE --- #43 + 010039B1H LINE CODE --- #44 --- BLOCKEND --- --- LVL=0 - 01002F14H BLOCK CODE --- LVL=0 - 0200010DH SYMBOL XDATA --- hex - 02000110H SYMBOL XDATA BYTE len - 01002F1FH BLOCK CODE NEAR LAB LVL=1 - 02000111H SYMBOL XDATA BYTE i + 01002E5AH BLOCK CODE --- LVL=0 + 0200025CH SYMBOL XDATA --- hex + 0200025FH SYMBOL XDATA BYTE len + 01002E65H BLOCK CODE NEAR LAB LVL=1 + 02000260H SYMBOL XDATA BYTE i --- BLOCKEND --- --- LVL=1 - 01002F14H LINE CODE --- #47 - 01002F1FH LINE CODE --- #48 - 01002F1FH LINE CODE --- #50 - 01002F2EH LINE CODE --- #51 - 01002F2EH LINE CODE --- #52 - 01002F3EH LINE CODE --- #53 - 01002F3EH LINE CODE --- #54 - 01002F43H LINE CODE --- #55 - 01002F43H LINE CODE --- #56 - 01002F56H LINE CODE --- #57 - 01002F5EH LINE CODE --- #58 + 01002E5AH LINE CODE --- #47 + 01002E65H LINE CODE --- #48 + 01002E65H LINE CODE --- #50 + 01002E74H LINE CODE --- #51 + 01002E74H LINE CODE --- #52 + 01002E84H LINE CODE --- #53 + 01002E84H LINE CODE --- #54 + 01002E89H LINE CODE --- #55 + 01002E89H LINE CODE --- #56 + 01002E9CH LINE CODE --- #57 + 01002EA4H LINE CODE --- #58 --- BLOCKEND --- --- LVL=0 - 0100388CH BLOCK CODE --- LVL=0 - 02000112H SYMBOL XDATA --- d - 01003892H BLOCK CODE NEAR LAB LVL=1 - 0000001EH SYMBOL DATA WORD i + 010037A8H BLOCK CODE --- LVL=0 + 02000261H SYMBOL XDATA --- d + 010037AEH BLOCK CODE NEAR LAB LVL=1 + 00000018H SYMBOL DATA WORD i --- BLOCKEND --- --- LVL=1 - 0100388CH LINE CODE --- #62 - 01003892H LINE CODE --- #63 - 01003892H LINE CODE --- #65 - 0100389DH LINE CODE --- #66 - 0100389DH LINE CODE --- #68 - 010038AAH LINE CODE --- #70 - 010038ACH LINE CODE --- #71 + 010037A8H LINE CODE --- #62 + 010037AEH LINE CODE --- #63 + 010037AEH LINE CODE --- #65 + 010037B9H LINE CODE --- #66 + 010037B9H LINE CODE --- #68 + 010037C6H LINE CODE --- #70 + 010037C8H LINE CODE --- #71 --- BLOCKEND --- --- LVL=0 - 010036D3H BLOCK CODE --- LVL=0 - 020000ECH SYMBOL XDATA --- snum - 020000EFH SYMBOL XDATA DWORD copy - 010036D3H LINE CODE --- #73 - 010036DFH LINE CODE --- #74 - 010036DFH LINE CODE --- #76 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 54 - - - 010036DFH LINE CODE --- #77 - 010036E9H LINE CODE --- #78 - 010036F8H LINE CODE --- #79 - 01003700H LINE CODE --- #80 + 010035ECH BLOCK CODE --- LVL=0 + 0200023BH SYMBOL XDATA --- snum + 0200023EH SYMBOL XDATA DWORD copy + 010035ECH LINE CODE --- #73 + 010035F8H LINE CODE --- #74 + 010035F8H LINE CODE --- #76 + 010035F8H LINE CODE --- #77 + 01003602H LINE CODE --- #78 + 01003611H LINE CODE --- #79 + 01003619H LINE CODE --- #80 --- BLOCKEND --- --- LVL=0 - 01003BE0H BLOCK CODE --- LVL=0 + 01003AE0H BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- snum 00000004H SYMBOL DATA DWORD copy - 01003BE0H LINE CODE --- #82 - 01003BE0H LINE CODE --- #83 - 01003BE0H LINE CODE --- #85 - 01003BE0H LINE CODE --- #86 - 01003BE7H LINE CODE --- #87 - 01003BECH LINE CODE --- #88 - 01003BF2H LINE CODE --- #89 + 01003AE0H LINE CODE --- #82 + 01003AE0H LINE CODE --- #83 + 01003AE0H LINE CODE --- #85 + 01003AE0H LINE CODE --- #86 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 55 + + + 01003AE7H LINE CODE --- #87 + 01003AECH LINE CODE --- #88 + 01003AF2H LINE CODE --- #89 --- BLOCKEND --- --- LVL=0 - 01003096H BLOCK CODE --- LVL=0 - 020000ECH SYMBOL XDATA --- snum - 020000EFH SYMBOL XDATA DWORD i - 01003096H LINE CODE --- #94 - 010030A2H LINE CODE --- #95 - 010030A2H LINE CODE --- #97 - 010030A2H LINE CODE --- #98 - 010030C5H LINE CODE --- #99 - 010030D4H LINE CODE --- #100 - 010030DCH LINE CODE --- #101 + 01002FDBH BLOCK CODE --- LVL=0 + 0200023BH SYMBOL XDATA --- snum + 0200023EH SYMBOL XDATA DWORD i + 01002FDBH LINE CODE --- #94 + 01002FE7H LINE CODE --- #95 + 01002FE7H LINE CODE --- #97 + 01002FE7H LINE CODE --- #98 + 0100300AH LINE CODE --- #99 + 01003019H LINE CODE --- #100 + 01003021H LINE CODE --- #101 --- BLOCKEND --- --- LVL=0 - 010031A5H BLOCK CODE --- LVL=0 - 02000119H SYMBOL XDATA --- snum - 0200011CH SYMBOL XDATA DWORD i - 010031A5H LINE CODE --- #103 - 010031B1H LINE CODE --- #104 - 010031B1H LINE CODE --- #106 - 010031B1H LINE CODE --- #107 - 010031CCH LINE CODE --- #108 - 010031DDH LINE CODE --- #109 - 010031E5H LINE CODE --- #110 + 010030EFH BLOCK CODE --- LVL=0 + 02000268H SYMBOL XDATA --- snum + 0200026BH SYMBOL XDATA DWORD i + 010030EFH LINE CODE --- #103 + 010030FBH LINE CODE --- #104 + 010030FBH LINE CODE --- #106 + 010030FBH LINE CODE --- #107 + 01003116H LINE CODE --- #108 + 01003127H LINE CODE --- #109 + 0100312FH LINE CODE --- #110 --- BLOCKEND --- --- LVL=0 - 0100335DH BLOCK CODE --- LVL=0 - 020000E5H SYMBOL XDATA LONG i - 01003360H BLOCK CODE NEAR LAB LVL=1 - 020000E9H SYMBOL XDATA --- snum + 010032E5H BLOCK CODE --- LVL=0 + 02000234H SYMBOL XDATA LONG i + 010032E8H BLOCK CODE NEAR LAB LVL=1 + 02000238H SYMBOL XDATA --- snum --- BLOCKEND --- --- LVL=1 - 0100335DH LINE CODE --- #115 - 01003360H LINE CODE --- #116 - 01003360H LINE CODE --- #117 - 01003369H LINE CODE --- #118 - 0100337BH LINE CODE --- #119 - 01003381H LINE CODE --- #120 - 0100338BH LINE CODE --- #121 - 01003391H LINE CODE --- #122 - 01003397H LINE CODE --- #123 + 010032E5H LINE CODE --- #115 + 010032E8H LINE CODE --- #116 + 010032E8H LINE CODE --- #117 + 010032F1H LINE CODE --- #118 + 01003303H LINE CODE --- #119 + 01003309H LINE CODE --- #120 + 01003313H LINE CODE --- #121 + 01003319H LINE CODE --- #122 + 0100331FH LINE CODE --- #123 --- BLOCKEND --- --- LVL=0 - 01003398H BLOCK CODE --- LVL=0 - 02000112H SYMBOL XDATA LONG i - 0100339BH BLOCK CODE NEAR LAB LVL=1 - 02000116H SYMBOL XDATA --- snum -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 55 - - + 01003320H BLOCK CODE --- LVL=0 + 02000261H SYMBOL XDATA LONG i + 01003323H BLOCK CODE NEAR LAB LVL=1 + 02000265H SYMBOL XDATA --- snum --- BLOCKEND --- --- LVL=1 - 01003398H LINE CODE --- #125 - 0100339BH LINE CODE --- #126 - 0100339BH LINE CODE --- #127 - 010033A4H LINE CODE --- #128 - 010033B6H LINE CODE --- #129 - 010033BCH LINE CODE --- #130 - 010033C6H LINE CODE --- #131 - 010033CCH LINE CODE --- #132 - 010033D2H LINE CODE --- #133 + 01003320H LINE CODE --- #125 + 01003323H LINE CODE --- #126 + 01003323H LINE CODE --- #127 + 0100332CH LINE CODE --- #128 + 0100333EH LINE CODE --- #129 + 01003344H LINE CODE --- #130 + 0100334EH LINE CODE --- #131 + 01003354H LINE CODE --- #132 + 0100335AH LINE CODE --- #133 --- BLOCKEND --- --- LVL=0 - 01003D26H BLOCK CODE --- LVL=0 + 01003C5FH BLOCK CODE --- LVL=0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 56 + + 00000007H SYMBOL DATA BYTE i - 01003D26H LINE CODE --- #136 - 01003D26H LINE CODE --- #137 - 01003D26H LINE CODE --- #138 + 01003C5FH LINE CODE --- #136 + 01003C5FH LINE CODE --- #137 + 01003C5FH LINE CODE --- #138 --- BLOCKEND --- --- LVL=0 - 01003CA1H BLOCK CODE --- LVL=0 + 01003BC5H BLOCK CODE --- LVL=0 00000006H SYMBOL DATA INT i - 01003CA1H LINE CODE --- #141 - 01003CA1H LINE CODE --- #142 - 01003CA1H LINE CODE --- #143 + 01003BC5H LINE CODE --- #141 + 01003BC5H LINE CODE --- #142 + 01003BC5H LINE CODE --- #143 --- BLOCKEND --- --- LVL=0 - - 01003D57H BLOCK CODE --- LVL=0 00000006H SYMBOL DATA WORD i - 01003D57H LINE CODE --- #146 - 01003D57H LINE CODE --- #147 - 01003D57H LINE CODE --- #148 - --- BLOCKEND --- --- LVL=0 - 01003DADH BLOCK CODE --- LVL=0 + 01003CF3H BLOCK CODE --- LVL=0 00000004H SYMBOL DATA LONG i - 01003DADH LINE CODE --- #151 - 01003DADH LINE CODE --- #152 - 01003DADH LINE CODE --- #153 + 01003CF3H LINE CODE --- #151 + 01003CF3H LINE CODE --- #152 + 01003CF3H LINE CODE --- #153 --- BLOCKEND --- --- LVL=0 00000004H SYMBOL DATA LONG i 0100003EH BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- tag - 020000B9H SYMBOL XDATA BYTE c + 02000208H SYMBOL XDATA BYTE c 01000043H BLOCK CODE NEAR LAB LVL=1 - 020000BAH SYMBOL XDATA --- ellipsis_40 - 020000E2H SYMBOL XDATA --- args + 02000209H SYMBOL XDATA --- ellipsis_40 + 02000231H SYMBOL XDATA --- args --- BLOCKEND --- --- LVL=1 0100003EH LINE CODE --- #160 01000043H LINE CODE --- #161 @@ -3572,79 +3618,58 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0100006DH LINE CODE --- #170 --- BLOCKEND --- --- LVL=0 - 0100359AH BLOCK CODE --- LVL=0 + 010034E8H BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- tag -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 56 - - - 02000044H SYMBOL XDATA BYTE c - 0100359FH BLOCK CODE NEAR LAB LVL=1 - 02000045H SYMBOL XDATA --- ellipsis_40 - 0200006DH SYMBOL XDATA --- args + 02000193H SYMBOL XDATA BYTE c + 010034EDH BLOCK CODE NEAR LAB LVL=1 + 02000194H SYMBOL XDATA --- ellipsis_40 + 020001BCH SYMBOL XDATA --- args --- BLOCKEND --- --- LVL=1 - 0100359AH LINE CODE --- #174 - 0100359FH LINE CODE --- #175 - 0100359FH LINE CODE --- #177 - 010035A2H LINE CODE --- #178 - 010035AEH LINE CODE --- #179 - 010035B8H LINE CODE --- #180 - 010035B8H LINE CODE --- #181 - 010035C1H LINE CODE --- #182 - 010035C7H LINE CODE --- #183 - 010035C9H LINE CODE --- #184 + 010034E8H LINE CODE --- #174 + 010034EDH LINE CODE --- #175 + 010034EDH LINE CODE --- #177 + 010034F0H LINE CODE --- #178 + 010034FCH LINE CODE --- #179 + 01003506H LINE CODE --- #180 + 01003506H LINE CODE --- #181 + 0100350FH LINE CODE --- #182 + 01003515H LINE CODE --- #183 + 01003517H LINE CODE --- #184 --- BLOCKEND --- --- LVL=0 - - 010035CFH BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- tag - 02000044H SYMBOL XDATA BYTE c - 010035D4H BLOCK CODE NEAR LAB LVL=1 - 02000045H SYMBOL XDATA --- ellipsis_40 - 0200006DH SYMBOL XDATA --- args - --- BLOCKEND --- --- LVL=1 - 010035CFH LINE CODE --- #188 - 010035D4H LINE CODE --- #189 - 010035D4H LINE CODE --- #191 - 010035D7H LINE CODE --- #192 - 010035E3H LINE CODE --- #193 - 010035EDH LINE CODE --- #194 - 010035EDH LINE CODE --- #195 - 010035F6H LINE CODE --- #196 - 010035FCH LINE CODE --- #197 - 010035FEH LINE CODE --- #198 - --- BLOCKEND --- --- LVL=0 - 010034BCH BLOCK CODE --- LVL=0 + 0100340AH BLOCK CODE --- LVL=0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 57 + + 00000001H SYMBOL DATA --- tag - 020000C6H SYMBOL XDATA BYTE c - 010034C1H BLOCK CODE NEAR LAB LVL=1 - 020000C7H SYMBOL XDATA --- ellipsis_40 - 020000EFH SYMBOL XDATA --- args + 02000215H SYMBOL XDATA BYTE c + 0100340FH BLOCK CODE NEAR LAB LVL=1 + 02000216H SYMBOL XDATA --- ellipsis_40 + 0200023EH SYMBOL XDATA --- args --- BLOCKEND --- --- LVL=1 - 010034BCH LINE CODE --- #202 - 010034C1H LINE CODE --- #203 - 010034C1H LINE CODE --- #205 - 010034C4H LINE CODE --- #206 - 010034D0H LINE CODE --- #207 - 010034DAH LINE CODE --- #208 - 010034DAH LINE CODE --- #209 - 010034E7H LINE CODE --- #210 - 010034EDH LINE CODE --- #211 - 010034EFH LINE CODE --- #212 + 0100340AH LINE CODE --- #202 + 0100340FH LINE CODE --- #203 + 0100340FH LINE CODE --- #205 + 01003412H LINE CODE --- #206 + 0100341EH LINE CODE --- #207 + 01003428H LINE CODE --- #208 + 01003428H LINE CODE --- #209 + 01003435H LINE CODE --- #210 + 0100343BH LINE CODE --- #211 + 0100343DH LINE CODE --- #212 --- BLOCKEND --- --- LVL=0 00000001H SYMBOL DATA --- tag --- MODULE --- --- CALLBACK - 020002CAH PUBLIC XDATA --- hidmsgbuf - 020002C9H PUBLIC XDATA BYTE tmpBuffer - 02000107H PUBLIC XDATA BYTE ?_USBD_XferCompleteCb?BYTE - 010037D6H PUBLIC CODE --- _USBD_XferCompleteCb - 01000DA5H PUBLIC CODE --- _USBD_SetupCmdCb -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 57 - - - 01003DD6H PUBLIC CODE --- USBD_IsSelfPoweredCb - 01003D60H PUBLIC CODE --- _USBD_DeviceStateChangeCb - 01003DDAH PUBLIC CODE --- USBD_ResetCb + 02000303H PUBLIC XDATA --- hidmsgbuf + 02000302H PUBLIC XDATA BYTE tmpBuffer + 02000256H PUBLIC XDATA BYTE ?_USBD_XferCompleteCb?BYTE + 010036F2H PUBLIC CODE --- _USBD_XferCompleteCb + 01000DBFH PUBLIC CODE --- _USBD_SetupCmdCb + 01003D16H PUBLIC CODE --- USBD_IsSelfPoweredCb + 01003C90H PUBLIC CODE --- _USBD_DeviceStateChangeCb + 01003D1AH PUBLIC CODE --- USBD_ResetCb 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -3661,7 +3686,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -3679,6 +3704,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000009CH SFRSYM DATA BYTE P3MDOUT 000000A3H SFRSYM DATA BYTE TMR4RLH 000000F3H SFRSYM DATA BYTE EIP1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 58 + + 000000F4H SFRSYM DATA BYTE EIP2 00000098H.2 SFRSYM DATA BIT SCON0_RB8 000000CAH SFRSYM DATA BYTE TMR2RLL @@ -3704,9 +3732,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D8H.7 SFRSYM DATA BIT UART1FCN1_TFRQ 000000F0H.4 SFRSYM DATA BIT B_B4 000000DBH SFRSYM DATA BYTE PCA0CPM1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 58 - - 000000EBH SFRSYM DATA BYTE PCA0CPL2 000000F0H.5 SFRSYM DATA BIT B_B5 000000DCH SFRSYM DATA BYTE PCA0CPM2 @@ -3744,6 +3769,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B1H SFRSYM DATA BYTE LFO0CN 000000ABH SFRSYM DATA BYTE CMP1MD 000000D8H SFRSYM DATA BIT PCA0CN0_CCF0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 59 + + 000000E0H.5 SFRSYM DATA BIT ACC_ACC5 000000B5H SFRSYM DATA BYTE USB0CF 00000098H.2 SFRSYM DATA BIT TMR4CN0_TR4 @@ -3769,9 +3797,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B6H SFRSYM DATA BYTE USB0CDCF 000000F4H SFRSYM DATA BYTE P3MDIN 000000B9H SFRSYM DATA BYTE I2C0STAT -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 59 - - 000000BBH SFRSYM DATA BYTE I2C0DOUT 00000096H SFRSYM DATA BYTE SBRLH1 000000FEH SFRSYM DATA BYTE P0MASK @@ -3809,6 +3834,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D5H SFRSYM DATA BYTE P1SKIP 000000CCH SFRSYM DATA BYTE P2SKIP 000000E8H SFRSYM DATA BYTE ADC0CN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 60 + + 000000D8H.4 SFRSYM DATA BIT UART1FCN1_TIE 000000A8H SFRSYM DATA BIT IE_EX0 000000B2H SFRSYM DATA BYTE ADC0CN1 @@ -3834,9 +3862,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000BCH SFRSYM DATA BYTE I2C0DIN 000000CEH SFRSYM DATA BYTE CRC0CN0 0000008CH SFRSYM DATA BYTE TH0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 60 - - 00000086H SFRSYM DATA BYTE CRC0CN1 000000B8H.4 SFRSYM DATA BIT IP_PS0 000000FAH SFRSYM DATA BYTE UART1FCT @@ -3874,6 +3899,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.2 SFRSYM DATA BIT P1_B2 00000080H.3 SFRSYM DATA BIT P0_B3 000000C0H SFRSYM DATA BYTE SMB0CN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 61 + + 000000ACH SFRSYM DATA BYTE CMP1CN1 000000B0H.1 SFRSYM DATA BIT P3_B1 000000A0H.2 SFRSYM DATA BIT P2_B2 @@ -3899,9 +3927,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D0H.6 SFRSYM DATA BIT PSW_AC 000000F8H SFRSYM DATA BYTE SPI0CN0 000000C7H SFRSYM DATA BYTE HFO0CAL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 61 - - 00000088H.5 SFRSYM DATA BIT TCON_TF0 00000098H SFRSYM DATA BIT SCON0_RI 000000D6H SFRSYM DATA BYTE HFO1CAL @@ -3939,6 +3964,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H SFRSYM DATA BYTE SCON1 000000FBH SFRSYM DATA BYTE P2MAT 00000098H.6 SFRSYM DATA BIT TMR4CN0_TF4L +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 62 + + 000000E8H.4 SFRSYM DATA BIT ADC0CN0_ADBUSY 000000D6H SFRSYM DATA BYTE SMB0ADM 000000C5H SFRSYM DATA BYTE ADC0LTL @@ -3964,9 +3992,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A5H SFRSYM DATA BYTE TMR4H 00000098H.4 SFRSYM DATA BIT TMR4CN0_TF4CEN 000000EFH SFRSYM DATA BYTE SMB0FCT -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 62 - - 00000096H SFRSYM DATA BYTE PCA0POL 000000CCH SFRSYM DATA BYTE TMR2L 000000F8H.7 SFRSYM DATA BIT SPI0CN0_SPIF @@ -3978,7 +4003,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 @@ -3993,125 +4018,125 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01002FB4H BLOCK CODE --- LVL=0 + 01002EF8H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 01003DDAH BLOCK CODE --- LVL=0 - 01003DDAH LINE CODE --- #40 - 01003DDAH LINE CODE --- #42 + 01003D1AH BLOCK CODE --- LVL=0 + 01003D1AH LINE CODE --- #40 + 01003D1AH LINE CODE --- #42 + --- BLOCKEND --- --- LVL=0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 63 + + + + 01003C90H BLOCK CODE --- LVL=0 + 02000257H SYMBOL XDATA BYTE oldState + 02000258H SYMBOL XDATA BYTE newState + 01003C90H LINE CODE --- #45 + 01003C98H LINE CODE --- #46 + 01003C98H LINE CODE --- #48 --- BLOCKEND --- --- LVL=0 - 01003D60H BLOCK CODE --- LVL=0 - 02000108H SYMBOL XDATA BYTE oldState - 02000109H SYMBOL XDATA BYTE newState - 01003D60H LINE CODE --- #45 - 01003D68H LINE CODE --- #46 - 01003D68H LINE CODE --- #48 + 01003D16H BLOCK CODE --- LVL=0 + 01003D16H LINE CODE --- #50 + 01003D16H LINE CODE --- #51 + 01003D17H LINE CODE --- #52 --- BLOCKEND --- --- LVL=0 - 01003DD6H BLOCK CODE --- LVL=0 - 01003DD6H LINE CODE --- #50 - 01003DD6H LINE CODE --- #51 - 01003DD7H LINE CODE --- #52 - --- BLOCKEND --- --- LVL=0 - - 01000DA5H BLOCK CODE --- LVL=0 - 02000104H SYMBOL XDATA --- setup - 01000DADH BLOCK CODE NEAR LAB LVL=1 - 02000106H SYMBOL XDATA CHAR retVal + 01000DBFH BLOCK CODE --- LVL=0 + 02000253H SYMBOL XDATA --- setup + 01000DC7H BLOCK CODE NEAR LAB LVL=1 + 02000255H SYMBOL XDATA CHAR retVal --- BLOCKEND --- --- LVL=1 - 01000DA5H LINE CODE --- #55 - 01000DADH LINE CODE --- #56 - 01000DADH LINE CODE --- #58 - 01000DB1H LINE CODE --- #61 - 01000DD4H LINE CODE --- #63 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 63 + 01000DBFH LINE CODE --- #55 + 01000DC7H LINE CODE --- #56 + 01000DC7H LINE CODE --- #58 + 01000DCBH LINE CODE --- #61 + 01000DEEH LINE CODE --- #63 + 01000DEEH LINE CODE --- #67 + 01000DF7H LINE CODE --- #68 + 01000DF7H LINE CODE --- #69 + 01000DFEH LINE CODE --- #70 + 01000E13H LINE CODE --- #71 + 01000E13H LINE CODE --- #72 + 01000E2DH LINE CODE --- #75 + 01000E2DH LINE CODE --- #76 + 01000E2FH LINE CODE --- #78 + 01000E2FH LINE CODE --- #79 + 01000E2FH LINE CODE --- #80 + 01000E2FH LINE CODE --- #81 + 01000E39H LINE CODE --- #82 + 01000E4EH LINE CODE --- #83 + 01000E4EH LINE CODE --- #84 + 01000E6FH LINE CODE --- #86 + 01000E6FH LINE CODE --- #87 + 01000E72H LINE CODE --- #89 + 01000E72H LINE CODE --- #90 + 01000E72H LINE CODE --- #91 + 01000E72H LINE CODE --- #92 + 01000E72H LINE CODE --- #93 + 01000E72H LINE CODE --- #94 + 01000E72H LINE CODE --- #95 + 01000E72H LINE CODE --- #96 + 01000EA2H LINE CODE --- #99 + 01000EA2H LINE CODE --- #101 + 01000EB2H LINE CODE --- #102 + 01000EB2H LINE CODE --- #103 + 01000EB2H LINE CODE --- #105 + 01000EB2H LINE CODE --- #107 + 01000EB2H LINE CODE --- #109 + 01000EB2H LINE CODE --- #111 + 01000EB2H LINE CODE --- #112 + 01000EC8H LINE CODE --- #115 + 01000EC8H LINE CODE --- #116 + 01000ECDH LINE CODE --- #117 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 64 - 01000DD4H LINE CODE --- #67 - 01000DDDH LINE CODE --- #68 - 01000DDDH LINE CODE --- #69 - 01000DE4H LINE CODE --- #70 - 01000DF9H LINE CODE --- #71 - 01000DF9H LINE CODE --- #72 - 01000E13H LINE CODE --- #75 - 01000E13H LINE CODE --- #76 - 01000E15H LINE CODE --- #78 - 01000E15H LINE CODE --- #79 - 01000E15H LINE CODE --- #80 - 01000E15H LINE CODE --- #81 - 01000E1FH LINE CODE --- #82 - 01000E34H LINE CODE --- #83 - 01000E34H LINE CODE --- #84 - 01000E55H LINE CODE --- #86 - 01000E55H LINE CODE --- #87 - 01000E58H LINE CODE --- #89 - 01000E58H LINE CODE --- #90 - 01000E58H LINE CODE --- #91 - 01000E58H LINE CODE --- #92 - 01000E58H LINE CODE --- #93 - 01000E58H LINE CODE --- #94 - 01000E58H LINE CODE --- #95 - 01000E58H LINE CODE --- #96 - 01000E88H LINE CODE --- #99 - 01000E88H LINE CODE --- #101 - 01000E98H LINE CODE --- #102 - 01000E98H LINE CODE --- #103 - 01000E98H LINE CODE --- #105 - 01000E98H LINE CODE --- #107 - 01000E98H LINE CODE --- #109 - 01000E98H LINE CODE --- #111 - 01000E98H LINE CODE --- #112 - 01000EAEH LINE CODE --- #115 - 01000EAEH LINE CODE --- #116 - 01000EB3H LINE CODE --- #117 - 01000EB3H LINE CODE --- #118 - 01000EB5H LINE CODE --- #120 - 01000EB5H LINE CODE --- #122 - 01000EB5H LINE CODE --- #123 - 01000ECEH LINE CODE --- #126 - 01000ECEH LINE CODE --- #128 - 01000ED6H LINE CODE --- #129 - 01000EEBH LINE CODE --- #130 - 01000EF0H LINE CODE --- #131 - 01000EF0H LINE CODE --- #133 - 01000EF0H LINE CODE --- #134 - 01000EF0H LINE CODE --- #136 - 01000EF0H LINE CODE --- #137 - 01000EF0H LINE CODE --- #139 - 01000EF0H LINE CODE --- #141 - 01000EF0H LINE CODE --- #143 - 01000EF5H LINE CODE --- #144 + 01000ECDH LINE CODE --- #118 + 01000ECFH LINE CODE --- #120 + 01000ECFH LINE CODE --- #122 + 01000ECFH LINE CODE --- #123 + 01000EE8H LINE CODE --- #126 + 01000EE8H LINE CODE --- #128 + 01000EF0H LINE CODE --- #129 + 01000F05H LINE CODE --- #130 + 01000F0AH LINE CODE --- #131 + 01000F0AH LINE CODE --- #133 + 01000F0AH LINE CODE --- #134 + 01000F0AH LINE CODE --- #136 + 01000F0AH LINE CODE --- #137 + 01000F0AH LINE CODE --- #139 + 01000F0AH LINE CODE --- #141 + 01000F0AH LINE CODE --- #143 + 01000F0FH LINE CODE --- #144 --- BLOCKEND --- --- LVL=0 - 010037D6H BLOCK CODE --- LVL=0 + 010036F2H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE epAddr - 02000108H SYMBOL XDATA CHAR status - 02000109H SYMBOL XDATA WORD xferred - 0200010BH SYMBOL XDATA WORD remaining - 010037D6H LINE CODE --- #149 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 64 - - - 010037E1H LINE CODE --- #150 - 010037E1H LINE CODE --- #153 - 010037E5H LINE CODE --- #154 - 010037E5H LINE CODE --- #155 - 010037F0H LINE CODE --- #157 - 010037F9H LINE CODE --- #159 - 010037F9H LINE CODE --- #162 - 010037FCH LINE CODE --- #163 + 02000257H SYMBOL XDATA CHAR status + 02000258H SYMBOL XDATA WORD xferred + 0200025AH SYMBOL XDATA WORD remaining + 010036F2H LINE CODE --- #149 + 010036FDH LINE CODE --- #150 + 010036FDH LINE CODE --- #153 + 01003701H LINE CODE --- #154 + 01003701H LINE CODE --- #155 + 0100370CH LINE CODE --- #157 + 01003715H LINE CODE --- #159 + 01003715H LINE CODE --- #162 + 01003718H LINE CODE --- #163 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- DESCRIPTORS - 01003E8DH PUBLIC CONST --- initstruct - 01003E11H PUBLIC CONST --- configDesc - 01003DFFH PUBLIC CONST --- deviceDesc - 01003DDDH PUBLIC CONST --- ReportDescriptor0 + 01003F2CH PUBLIC CONST --- initstruct + 01003EB0H PUBLIC CONST --- configDesc + 01003E9EH PUBLIC CONST --- deviceDesc + 01003E7CH PUBLIC CONST --- ReportDescriptor0 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -4134,6 +4159,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000ADH SFRSYM DATA BYTE DERIVID 000000A7H SFRSYM DATA BYTE SFRPAGE 000000A4H SFRSYM DATA BYTE P0MDOUT +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 65 + + 000000BFH SFRSYM DATA BYTE USB0CDSTA 000000A5H SFRSYM DATA BYTE P1MDOUT 000000E8H.5 SFRSYM DATA BIT ADC0CN0_ADINT @@ -4159,9 +4187,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C3H SFRSYM DATA WORD ADC0GT 000000BDH SFRSYM DATA BYTE I2C0SLAD 000000D8H.3 SFRSYM DATA BIT UART1FCN1_RFRQ -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 65 - - 000000F0H.2 SFRSYM DATA BIT B_B2 000000CFH SFRSYM DATA BYTE SFRPGCN 000000FBH SFRSYM DATA BYTE PCA0CPL0 @@ -4199,6 +4224,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C9H SFRSYM DATA BYTE REG0CN 000000DDH SFRSYM DATA BYTE CRC0IN 000000A6H SFRSYM DATA BYTE CKCON1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 66 + + 000000C8H.2 SFRSYM DATA BIT TMR2CN0_TR2 000000E0H.2 SFRSYM DATA BIT ACC_ACC2 000000C6H SFRSYM DATA BYTE REG1CN @@ -4224,9 +4252,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000094H SFRSYM DATA BYTE SBCON1 000000C0H.3 SFRSYM DATA BIT SMB0CN0_ACKRQ 000000FFH SFRSYM DATA BYTE VDM0CN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 66 - - 000000F1H SFRSYM DATA BYTE P0MDIN 00000098H.4 SFRSYM DATA BIT SCON0_REN 000000ACH SFRSYM DATA BYTE SMB0TC @@ -4264,6 +4289,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A8H.4 SFRSYM DATA BIT IE_ES0 0000009FH SFRSYM DATA BYTE CMP0MX 00000098H SFRSYM DATA BIT TMR4CN0_T4XCLK0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 67 + + 000000A8H.1 SFRSYM DATA BIT IE_ET0 000000AAH SFRSYM DATA BYTE CMP1MX 00000098H.1 SFRSYM DATA BIT TMR4CN0_T4XCLK1 @@ -4289,9 +4317,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E8H.6 SFRSYM DATA BIT ADC0CN0_ADBMEN 000000CAH SFRSYM DATA WORD TMR2RL 000000BDH SFRSYM DATA BYTE ADC0L -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 67 - - 00000092H SFRSYM DATA WORD TMR3RL 000000A2H SFRSYM DATA WORD TMR4RL 000000D8H SFRSYM DATA BYTE PCA0CN0 @@ -4329,6 +4354,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000088H.1 SFRSYM DATA BIT TCON_IE0 000000A0H SFRSYM DATA BIT P2_B0 00000090H.1 SFRSYM DATA BIT P1_B1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 68 + + 00000080H.2 SFRSYM DATA BIT P0_B2 000000BFH SFRSYM DATA BYTE CMP1CN0 00000099H SFRSYM DATA BYTE CMP0CN1 @@ -4354,9 +4382,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.6 SFRSYM DATA BIT P1_B6 00000080H.7 SFRSYM DATA BIT P0_B7 000000C5H SFRSYM DATA BYTE SMB0RXLN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 68 - - 000000F6H SFRSYM DATA BYTE EIP2H 00000090H.7 SFRSYM DATA BIT P1_B7 00000083H SFRSYM DATA BYTE DPH @@ -4394,6 +4419,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E8H.2 SFRSYM DATA BIT ADC0CN0_ADCM2 000000D7H SFRSYM DATA BYTE SFRSTACK 00000098H SFRSYM DATA BYTE SCON0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 69 + + 000000F6H SFRSYM DATA BYTE PRTDRV 000000EDH SFRSYM DATA BYTE P1MAT 000000E8H.3 SFRSYM DATA BIT ADC0CN0_ADWINT @@ -4419,9 +4447,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000088H.4 SFRSYM DATA BIT TCON_TR0 000000C8H.4 SFRSYM DATA BIT TMR2CN0_TF2CEN 00000088H.6 SFRSYM DATA BIT TCON_TR1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 69 - - 000000C2H SFRSYM DATA BYTE SMB0DAT 000000CDH SFRSYM DATA BYTE TMR2H 000000A1H SFRSYM DATA BYTE SPI0CFG @@ -4458,58 +4483,58 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B6H SFRSYM DATA BYTE REVID 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01003E6EH SYMBOL CONST --- int0Desc - 01003E3AH SYMBOL CONST --- langDesc - 01003E4EH SYMBOL CONST --- prodDesc - 01003E3EH SYMBOL CONST --- mfrDesc - 01003E5AH SYMBOL CONST --- serDesc - 01003E7EH SYMBOL CONST --- myUsbStringTable_USEnglish + 01003F0DH SYMBOL CONST --- int0Desc +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 70 + + + 01003ED9H SYMBOL CONST --- langDesc + 01003EEDH SYMBOL CONST --- prodDesc + 01003EDDH SYMBOL CONST --- mfrDesc + 01003EF9H SYMBOL CONST --- serDesc + 01003F1DH SYMBOL CONST --- myUsbStringTable_USEnglish --- MODULE --- --- IDLE - 01003DB3H PUBLIC CODE --- idleGetRate - 01003AA2H PUBLIC CODE --- _idleTimerSet - 0100386AH PUBLIC CODE --- idleTimerStart - 02000358H SYMBOL XDATA --- idle + 01003CF9H PUBLIC CODE --- idleGetRate + 010039B2H PUBLIC CODE --- _idleTimerSet + 01003786H PUBLIC CODE --- idleTimerStart + 0200038FH SYMBOL XDATA --- idle - 0100386AH BLOCK CODE --- LVL=0 - 0100386AH LINE CODE --- #19 - 0100386AH LINE CODE --- #20 - 0100386AH LINE CODE --- #21 - 01003874H LINE CODE --- #22 - 01003874H LINE CODE --- #23 - 01003881H LINE CODE --- #24 - 01003882H LINE CODE --- #26 - 01003882H LINE CODE --- #27 - 0100388BH LINE CODE --- #28 - 0100388BH LINE CODE --- #29 + 01003786H BLOCK CODE --- LVL=0 + 01003786H LINE CODE --- #19 + 01003786H LINE CODE --- #20 + 01003786H LINE CODE --- #21 + 01003790H LINE CODE --- #22 + 01003790H LINE CODE --- #23 + 0100379DH LINE CODE --- #24 + 0100379EH LINE CODE --- #26 + 0100379EH LINE CODE --- #27 + 010037A7H LINE CODE --- #28 + 010037A7H LINE CODE --- #29 --- BLOCKEND --- --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 70 - - - 01003AA2H BLOCK CODE --- LVL=0 + 010039B2H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE rate - 01003AA2H LINE CODE --- #52 - 01003AA2H LINE CODE --- #53 - 01003AA2H LINE CODE --- #54 - 01003AAAH LINE CODE --- #55 - 01003AAAH LINE CODE --- #56 - 01003AB0H LINE CODE --- #57 - 01003AB2H LINE CODE --- #59 - 01003AB2H LINE CODE --- #60 - 01003AB7H LINE CODE --- #61 - 01003AB7H LINE CODE --- #63 + 010039B2H LINE CODE --- #52 + 010039B2H LINE CODE --- #53 + 010039B2H LINE CODE --- #54 + 010039BAH LINE CODE --- #55 + 010039BAH LINE CODE --- #56 + 010039C0H LINE CODE --- #57 + 010039C2H LINE CODE --- #59 + 010039C2H LINE CODE --- #60 + 010039C7H LINE CODE --- #61 + 010039C7H LINE CODE --- #63 --- BLOCKEND --- --- LVL=0 - 01003DB3H BLOCK CODE --- LVL=0 - 01003DB3H LINE CODE --- #74 - 01003DB3H LINE CODE --- #75 - 01003DB3H LINE CODE --- #76 - 01003DB8H LINE CODE --- #77 + 01003CF9H BLOCK CODE --- LVL=0 + 01003CF9H LINE CODE --- #74 + 01003CF9H LINE CODE --- #75 + 01003CF9H LINE CODE --- #76 + 01003CFEH LINE CODE --- #77 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- U2F - 01002010H PUBLIC CODE --- _u2f_request + 01001E3BH PUBLIC CODE --- _u2f_request 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -4524,9 +4549,12 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F9H SFRSYM DATA WORD PCA0 000000E6H SFRSYM DATA BYTE EIE1 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 71 + + 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -4549,9 +4577,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000CAH SFRSYM DATA BYTE TMR2RLL 000000FCH SFRSYM DATA BYTE PCA0CPH0 00000092H SFRSYM DATA BYTE TMR3RLL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 71 - - 000000EAH SFRSYM DATA BYTE PCA0CPH1 00000098H.3 SFRSYM DATA BIT SCON0_TB8 000000F0H SFRSYM DATA BIT B_B0 @@ -4589,6 +4614,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E2H SFRSYM DATA BYTE XBR1 000000C1H SFRSYM DATA BYTE PFE0CN 000000E7H SFRSYM DATA BYTE EMI0CN +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 72 + + 000000C0H.5 SFRSYM DATA BIT SMB0CN0_STA 000000E3H SFRSYM DATA BYTE XBR2 000000BBH SFRSYM DATA BYTE ADC0MX @@ -4614,9 +4642,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.2 SFRSYM DATA BIT TMR4CN0_TR4 000000D8H.1 SFRSYM DATA BIT PCA0CN0_CCF1 000000E0H.6 SFRSYM DATA BIT ACC_ACC6 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 72 - - 000000CCH SFRSYM DATA WORD TMR2 0000009AH SFRSYM DATA BYTE SPI0FCN0 000000D8H.2 SFRSYM DATA BIT PCA0CN0_CCF2 @@ -4654,6 +4679,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H.2 SFRSYM DATA BIT SCON1_RBX 000000C8H SFRSYM DATA BIT TMR2CN0_T2XCLK0 000000C8H.1 SFRSYM DATA BIT TMR2CN0_T2XCLK1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 73 + + 000000C8H.3 SFRSYM DATA BIT SCON1_TBX 000000E8H.7 SFRSYM DATA BIT ADC0CN0_ADEN 000000BEH SFRSYM DATA BYTE USB0CDCN @@ -4679,9 +4707,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B2H SFRSYM DATA BYTE ADC0CN1 000000D8H.6 SFRSYM DATA BIT PCA0CN0_CR 000000A8H.2 SFRSYM DATA BIT IE_EX1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 73 - - 000000C8H.7 SFRSYM DATA BIT SCON1_OVR 00000098H.7 SFRSYM DATA BIT SCON0_SMODE 000000B5H SFRSYM DATA BYTE DEVICEID @@ -4719,6 +4744,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000008BH SFRSYM DATA BYTE TL1 000000F9H SFRSYM DATA BYTE PCA0L 000000C0H SFRSYM DATA BIT SMB0CN0_SI +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 74 + + 000000D0H.1 SFRSYM DATA BIT PSW_F1 00000080H SFRSYM DATA BIT P0_B0 000000B8H SFRSYM DATA BIT IP_PX0 @@ -4744,9 +4772,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A0H.2 SFRSYM DATA BIT P2_B2 00000090H.3 SFRSYM DATA BIT P1_B3 00000080H.4 SFRSYM DATA BIT P0_B4 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 74 - - 000000A0H.3 SFRSYM DATA BIT P2_B3 00000090H.4 SFRSYM DATA BIT P1_B4 00000080H.5 SFRSYM DATA BIT P0_B5 @@ -4784,6 +4809,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E8H SFRSYM DATA BIT ADC0CN0_ADCM0 00000092H SFRSYM DATA BYTE SBUF1 0000009AH SFRSYM DATA BYTE PCON1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 75 + + 000000C6H SFRSYM DATA BYTE ADC0LTH 00000088H SFRSYM DATA BIT TCON_IT0 000000C8H.1 SFRSYM DATA BIT SCON1_TI @@ -4809,9 +4837,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C5H SFRSYM DATA BYTE ADC0LTL 000000F8H.5 SFRSYM DATA BIT SPI0CN0_MODF 000000B8H.6 SFRSYM DATA BIT IP_PSPI0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 75 - - 0000009CH SFRSYM DATA BYTE PCA0CLR 000000C8H SFRSYM DATA BYTE TMR2CN0 00000091H SFRSYM DATA BYTE TMR3CN0 @@ -4843,12 +4868,15 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 000000A3H SFRSYM DATA BYTE SPI0DAT 000000ADH SFRSYM DATA BYTE I2C0FCN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 76 + + 000000F8H.3 SFRSYM DATA BIT SPI0CN0_NSSMD1 000000BDH SFRSYM DATA WORD ADC0 000000D8H SFRSYM DATA BYTE UART1FCN1 @@ -4858,203 +4886,208 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01001EB2H SYMBOL CODE --- _dump_signature_der - 01002C22H SYMBOL CODE --- _?ix1000 - 01002C24H SYMBOL CODE --- _?ix1001 - 01001153H SYMBOL CODE --- _u2f_register - 0100394EH SYMBOL CODE --- _get_signature_length - 0100162CH SYMBOL CODE --- _u2f_authenticate - 01003A71H SYMBOL CODE --- u2f_version + 01001CDDH SYMBOL CODE --- _dump_signature_der + 01002B60H SYMBOL CODE --- _?ix1000 + 01002B62H SYMBOL CODE --- _?ix1001 + 01001027H SYMBOL CODE --- _u2f_register + 0100382BH SYMBOL CODE --- _get_signature_length + 01001424H SYMBOL CODE --- _u2f_authenticate + 01003968H SYMBOL CODE --- u2f_version 01000003H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 01002010H BLOCK CODE --- LVL=0 - 02000052H SYMBOL XDATA --- req -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 76 - - - 01002016H BLOCK CODE NEAR LAB LVL=1 - 02000055H SYMBOL XDATA --- rcode + 01001E3BH BLOCK CODE --- LVL=0 + 020001A1H SYMBOL XDATA --- req + 01001E41H BLOCK CODE NEAR LAB LVL=1 + 020001A4H SYMBOL XDATA --- rcode --- BLOCKEND --- --- LVL=1 - 01002010H LINE CODE --- #20 - 01002016H LINE CODE --- #21 - 01002016H LINE CODE --- #22 - 0100201CH LINE CODE --- #23 - 0100201FH LINE CODE --- #24 - 0100203EH LINE CODE --- #25 - 0100203EH LINE CODE --- #26 - 0100203EH LINE CODE --- #27 - 01002042H LINE CODE --- #28 - 01002048H LINE CODE --- #29 - 0100204AH LINE CODE --- #30 - 0100204AH LINE CODE --- #31 - 0100204EH LINE CODE --- #32 - 0100206DH LINE CODE --- #33 - 0100206FH LINE CODE --- #34 - 0100206FH LINE CODE --- #35 - 01002078H LINE CODE --- #36 - 01002087H LINE CODE --- #37 - 01002089H LINE CODE --- #38 - 01002089H LINE CODE --- #39 - 0100208FH LINE CODE --- #40 - 01002091H LINE CODE --- #41 - 01002091H LINE CODE --- #42 - 0100209AH LINE CODE --- #43 - 0100209AH LINE CODE --- #44 - 0100209AH LINE CODE --- #45 - 0100209AH LINE CODE --- #46 - 0100209AH LINE CODE --- #47 - 010020A7H LINE CODE --- #48 - 010020AAH LINE CODE --- #49 + 01001E3BH LINE CODE --- #20 + 01001E41H LINE CODE --- #21 + 01001E41H LINE CODE --- #22 + 01001E47H LINE CODE --- #23 + 01001E4AH LINE CODE --- #24 + 01001E69H LINE CODE --- #25 + 01001E69H LINE CODE --- #26 + 01001E69H LINE CODE --- #27 + 01001E6DH LINE CODE --- #28 + 01001E73H LINE CODE --- #29 + 01001E75H LINE CODE --- #30 + 01001E75H LINE CODE --- #31 + 01001E79H LINE CODE --- #32 + 01001E98H LINE CODE --- #33 + 01001E9AH LINE CODE --- #34 + 01001E9AH LINE CODE --- #35 + 01001EA3H LINE CODE --- #36 + 01001EB2H LINE CODE --- #37 + 01001EB4H LINE CODE --- #38 + 01001EB4H LINE CODE --- #39 + 01001EBAH LINE CODE --- #40 + 01001EBCH LINE CODE --- #41 + 01001EBCH LINE CODE --- #42 + 01001EC5H LINE CODE --- #43 + 01001EC5H LINE CODE --- #44 + 01001EC5H LINE CODE --- #45 + 01001EC5H LINE CODE --- #46 + 01001EC5H LINE CODE --- #47 + 01001ED2H LINE CODE --- #48 + 01001ED5H LINE CODE --- #49 --- BLOCKEND --- --- LVL=0 - 0100394EH BLOCK CODE --- LVL=0 + 0100382BH BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- sig - 0100394EH LINE CODE --- #51 - 0100394EH LINE CODE --- #52 - 0100394EH LINE CODE --- #53 - 0100396CH LINE CODE --- #54 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 77 + + + 0100382BH LINE CODE --- #51 + 0100382BH LINE CODE --- #52 + 0100382BH LINE CODE --- #53 + 01003849H LINE CODE --- #54 --- BLOCKEND --- --- LVL=0 - 01001EB2H BLOCK CODE --- LVL=0 - 020000A3H SYMBOL XDATA --- sig - 01001EB8H BLOCK CODE NEAR LAB LVL=1 - 020000A6H SYMBOL XDATA BYTE pad_s - 020000A7H SYMBOL XDATA BYTE pad_r - 020000A8H SYMBOL XDATA --- i + 01001CDDH BLOCK CODE --- LVL=0 + 020001F2H SYMBOL XDATA --- sig + 01001CE3H BLOCK CODE NEAR LAB LVL=1 + 020001F5H SYMBOL XDATA BYTE pad_s + 020001F6H SYMBOL XDATA BYTE pad_r + 020001F7H SYMBOL XDATA --- i --- BLOCKEND --- --- LVL=1 - 01001EB2H LINE CODE --- #56 - 01001EB8H LINE CODE --- #57 - 01001EB8H LINE CODE --- #58 - 01001ECAH LINE CODE --- #59 - 01001EDFH LINE CODE --- #60 - 01001EEAH LINE CODE --- #61 - 01001EFBH LINE CODE --- #67 - 01001F08H LINE CODE --- #68 - 01001F0DH LINE CODE --- #71 - 01001F11H LINE CODE --- #72 - 01001F19H LINE CODE --- #73 - 01001F19H LINE CODE --- #76 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 77 - - - 01001F23H LINE CODE --- #79 - 01001F28H LINE CODE --- #80 - 01001F32H LINE CODE --- #81 - 01001F32H LINE CODE --- #84 - 01001F3DH LINE CODE --- #85 + 01001CDDH LINE CODE --- #56 + 01001CE3H LINE CODE --- #57 + 01001CE3H LINE CODE --- #58 + 01001CF5H LINE CODE --- #59 + 01001D0AH LINE CODE --- #60 + 01001D15H LINE CODE --- #61 + 01001D26H LINE CODE --- #67 + 01001D33H LINE CODE --- #68 + 01001D38H LINE CODE --- #71 + 01001D3CH LINE CODE --- #72 + 01001D44H LINE CODE --- #73 + 01001D44H LINE CODE --- #76 + 01001D4EH LINE CODE --- #79 + 01001D53H LINE CODE --- #80 + 01001D5DH LINE CODE --- #81 + 01001D5DH LINE CODE --- #84 + 01001D68H LINE CODE --- #85 --- BLOCKEND --- --- LVL=0 - 0100162CH BLOCK CODE --- LVL=0 - 02000058H SYMBOL XDATA --- req - 0200005BH SYMBOL XDATA BYTE control - 01001637H BLOCK CODE NEAR LAB LVL=1 - 0200005CH SYMBOL XDATA BYTE up - 0200005DH SYMBOL XDATA DWORD count + 01001424H BLOCK CODE --- LVL=0 + 020001A7H SYMBOL XDATA --- req + 020001AAH SYMBOL XDATA BYTE control + 0100142FH BLOCK CODE NEAR LAB LVL=1 + 020001ABH SYMBOL XDATA BYTE up + 020001ACH SYMBOL XDATA DWORD count --- BLOCKEND --- --- LVL=1 - 0100162CH LINE CODE --- #88 - 01001637H LINE CODE --- #89 - 01001637H LINE CODE --- #91 - 0100163DH LINE CODE --- #93 - 01001660H LINE CODE --- #94 - 01001660H LINE CODE --- #95 - 01001667H LINE CODE --- #96 - 01001669H LINE CODE --- #97 - 01001669H LINE CODE --- #98 - 01001670H LINE CODE --- #99 - 01001670H LINE CODE --- #100 - 01001677H LINE CODE --- #101 - 0100167CH LINE CODE --- #102 - 0100167CH LINE CODE --- #104 - 01001685H LINE CODE --- #106 - 01001688H LINE CODE --- #107 - 01001691H LINE CODE --- #108 - 0100169CH LINE CODE --- #109 - 010016A7H LINE CODE --- #110 - 010016AFH LINE CODE --- #112 - 010016B2H LINE CODE --- #114 - 010016CBH LINE CODE --- #115 - 010016CBH LINE CODE --- #116 - 010016D0H LINE CODE --- #117 - 010016D0H LINE CODE --- #119 - 010016E0H LINE CODE --- #121 - 010016EDH LINE CODE --- #122 - 010016FAH LINE CODE --- #123 - 01001700H LINE CODE --- #125 - 01001704H LINE CODE --- #126 + 01001424H LINE CODE --- #88 + 0100142FH LINE CODE --- #89 + 0100142FH LINE CODE --- #91 + 01001435H LINE CODE --- #93 + 01001458H LINE CODE --- #94 + 01001458H LINE CODE --- #95 + 0100145FH LINE CODE --- #96 + 01001461H LINE CODE --- #97 + 01001461H LINE CODE --- #98 + 01001468H LINE CODE --- #99 + 01001468H LINE CODE --- #100 + 01001468H LINE CODE --- #101 + 0100146AH LINE CODE --- #102 + 0100146AH LINE CODE --- #104 + 01001470H LINE CODE --- #105 + 01001470H LINE CODE --- #106 + 01001477H LINE CODE --- #107 + 0100147CH LINE CODE --- #108 + 0100147CH LINE CODE --- #110 + 01001485H LINE CODE --- #112 + 01001488H LINE CODE --- #113 + 01001491H LINE CODE --- #114 + 0100149CH LINE CODE --- #115 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 78 + + + 010014A7H LINE CODE --- #116 + 010014AFH LINE CODE --- #118 + 010014B2H LINE CODE --- #120 + 010014CBH LINE CODE --- #121 + 010014CBH LINE CODE --- #122 + 010014D0H LINE CODE --- #123 + 010014D0H LINE CODE --- #125 + 010014E0H LINE CODE --- #127 + 010014EDH LINE CODE --- #128 + 010014FAH LINE CODE --- #129 + 01001500H LINE CODE --- #131 + 01001504H LINE CODE --- #132 --- BLOCKEND --- --- LVL=0 - 01001153H BLOCK CODE --- LVL=0 - 02000058H SYMBOL XDATA --- req - 01001159H BLOCK CODE NEAR LAB LVL=1 - 0200005BH SYMBOL XDATA --- i - 0200005DH SYMBOL XDATA --- key_handle - 02000061H SYMBOL XDATA --- pubkey - 020000A1H SYMBOL XDATA WORD attest_size + 01001027H BLOCK CODE --- LVL=0 + 020001A7H SYMBOL XDATA --- req + 0100102DH BLOCK CODE NEAR LAB LVL=1 + 020001AAH SYMBOL XDATA --- i + 020001ACH SYMBOL XDATA --- key_handle + 020001B0H SYMBOL XDATA --- pubkey + 020001F0H SYMBOL XDATA WORD attest_size --- BLOCKEND --- --- LVL=1 - 01001153H LINE CODE --- #128 - 01001159H LINE CODE --- #129 - 01001159H LINE CODE --- #130 - 01001164H LINE CODE --- #136 - 0100116FH LINE CODE --- #138 - 01001175H LINE CODE --- #139 - 01001175H LINE CODE --- #140 - 01001177H LINE CODE --- #141 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 78 - - - 01001177H LINE CODE --- #143 - 0100118AH LINE CODE --- #144 - 0100118AH LINE CODE --- #145 - 0100118FH LINE CODE --- #146 - 0100118FH LINE CODE --- #148 - 01001192H LINE CODE --- #149 - 0100119AH LINE CODE --- #150 - 010011A0H LINE CODE --- #152 - 010011A8H LINE CODE --- #154 - 010011B3H LINE CODE --- #155 - 010011BEH LINE CODE --- #156 - 010011C6H LINE CODE --- #157 - 010011C9H LINE CODE --- #159 - 010011DEH LINE CODE --- #160 - 010011DEH LINE CODE --- #161 - 010011E3H LINE CODE --- #162 - 010011E3H LINE CODE --- #164 - 010011FEH LINE CODE --- #165 - 01001204H LINE CODE --- #166 - 01001209H LINE CODE --- #167 - 01001213H LINE CODE --- #168 - 01001219H LINE CODE --- #169 - 0100121EH LINE CODE --- #170 - 0100122BH LINE CODE --- #172 - 01001244H LINE CODE --- #174 - 0100124AH LINE CODE --- #177 - 0100124EH LINE CODE --- #178 + 01001027H LINE CODE --- #134 + 0100102DH LINE CODE --- #135 + 0100102DH LINE CODE --- #136 + 01001038H LINE CODE --- #142 + 01001043H LINE CODE --- #144 + 01001049H LINE CODE --- #145 + 01001049H LINE CODE --- #146 + 0100104BH LINE CODE --- #147 + 0100104BH LINE CODE --- #149 + 0100105EH LINE CODE --- #150 + 0100105EH LINE CODE --- #151 + 01001063H LINE CODE --- #152 + 01001063H LINE CODE --- #154 + 01001066H LINE CODE --- #155 + 0100106EH LINE CODE --- #156 + 01001074H LINE CODE --- #158 + 0100107CH LINE CODE --- #160 + 01001087H LINE CODE --- #161 + 01001092H LINE CODE --- #162 + 0100109AH LINE CODE --- #163 + 0100109DH LINE CODE --- #165 + 010010B2H LINE CODE --- #166 + 010010B2H LINE CODE --- #167 + 010010B7H LINE CODE --- #168 + 010010B7H LINE CODE --- #170 + 010010D2H LINE CODE --- #171 + 010010D8H LINE CODE --- #172 + 010010DDH LINE CODE --- #173 + 010010E7H LINE CODE --- #174 + 010010EDH LINE CODE --- #175 + 010010F2H LINE CODE --- #176 + 010010FFH LINE CODE --- #178 + 01001118H LINE CODE --- #180 + 0100111EH LINE CODE --- #183 + 01001122H LINE CODE --- #184 --- BLOCKEND --- --- LVL=0 - 01003A71H BLOCK CODE --- LVL=0 - 01003A71H BLOCK CODE NEAR LAB LVL=1 - 01002C26H SYMBOL CODE --- version + 01003968H BLOCK CODE --- LVL=0 + 01003968H BLOCK CODE NEAR LAB LVL=1 + 01002B64H SYMBOL CODE --- version +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 79 + + --- BLOCKEND --- --- LVL=1 - 01003A71H LINE CODE --- #180 - 01003A71H LINE CODE --- #181 - 01003A71H LINE CODE --- #183 - 01003A78H LINE CODE --- #184 - 01003A85H LINE CODE --- #185 - 01003A89H LINE CODE --- #186 + 01003968H LINE CODE --- #186 + 01003968H LINE CODE --- #187 + 01003968H LINE CODE --- #189 + 0100396FH LINE CODE --- #190 + 0100397CH LINE CODE --- #191 + 01003980H LINE CODE --- #192 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- U2F_HID - 02000126H PUBLIC XDATA --- CIDS - 01001265H PUBLIC CODE --- _u2f_hid_request - 010017DDH PUBLIC CODE --- _u2f_hid_writeback - 01003C05H PUBLIC CODE --- u2f_hid_flush - 01003D69H PUBLIC CODE --- _u2f_hid_set_len - 010037AEH PUBLIC CODE --- u2f_hid_init + 02000006H PUBLIC XDATA --- CIDS + 01001139H PUBLIC CODE --- _u2f_hid_request + 010016B9H PUBLIC CODE --- _u2f_hid_writeback + 01003B18H PUBLIC CODE --- u2f_hid_flush + 01003C99H PUBLIC CODE --- _u2f_hid_set_len + 010036CAH PUBLIC CODE --- u2f_hid_init 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -5069,12 +5102,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F9H SFRSYM DATA WORD PCA0 000000E6H SFRSYM DATA BYTE EIE1 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 79 - - 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -5104,6 +5134,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A2H SFRSYM DATA BYTE TMR4RLL 000000ECH SFRSYM DATA BYTE PCA0CPH2 000000F0H.1 SFRSYM DATA BIT B_B1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 80 + + 000000C3H SFRSYM DATA WORD ADC0GT 000000BDH SFRSYM DATA BYTE I2C0SLAD 000000D8H.3 SFRSYM DATA BIT UART1FCN1_RFRQ @@ -5134,9 +5167,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E2H SFRSYM DATA BYTE XBR1 000000C1H SFRSYM DATA BYTE PFE0CN 000000E7H SFRSYM DATA BYTE EMI0CN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 80 - - 000000C0H.5 SFRSYM DATA BIT SMB0CN0_STA 000000E3H SFRSYM DATA BYTE XBR2 000000BBH SFRSYM DATA BYTE ADC0MX @@ -5169,6 +5199,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000094H SFRSYM DATA WORD TMR3 0000009BH SFRSYM DATA BYTE SPI0FCN1 000000A4H SFRSYM DATA WORD TMR4 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 81 + + 00000094H SFRSYM DATA BYTE SBCON1 000000C0H.3 SFRSYM DATA BIT SMB0CN0_ACKRQ 000000FFH SFRSYM DATA BYTE VDM0CN @@ -5199,9 +5232,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H.2 SFRSYM DATA BIT SCON1_RBX 000000C8H SFRSYM DATA BIT TMR2CN0_T2XCLK0 000000C8H.1 SFRSYM DATA BIT TMR2CN0_T2XCLK1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 81 - - 000000C8H.3 SFRSYM DATA BIT SCON1_TBX 000000E8H.7 SFRSYM DATA BIT ADC0CN0_ADEN 000000BEH SFRSYM DATA BYTE USB0CDCN @@ -5234,6 +5264,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F8H SFRSYM DATA BIT SPI0CN0_SPIEN 000000F0H SFRSYM DATA BYTE B 000000BEH SFRSYM DATA BYTE ADC0H +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 82 + + 000000E8H.6 SFRSYM DATA BIT ADC0CN0_ADBMEN 000000CAH SFRSYM DATA WORD TMR2RL 000000BDH SFRSYM DATA BYTE ADC0L @@ -5264,9 +5297,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000008BH SFRSYM DATA BYTE TL1 000000F9H SFRSYM DATA BYTE PCA0L 000000C0H SFRSYM DATA BIT SMB0CN0_SI -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 82 - - 000000D0H.1 SFRSYM DATA BIT PSW_F1 00000080H SFRSYM DATA BIT P0_B0 000000B8H SFRSYM DATA BIT IP_PX0 @@ -5299,6 +5329,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.5 SFRSYM DATA BIT P1_B5 00000080H.6 SFRSYM DATA BIT P0_B6 000000F5H SFRSYM DATA BYTE EIP1H +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 83 + + 000000D8H.2 SFRSYM DATA BIT UART1FCN1_RXTO1 00000090H.6 SFRSYM DATA BIT P1_B6 00000080H.7 SFRSYM DATA BIT P0_B7 @@ -5329,9 +5362,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E8H SFRSYM DATA BIT ADC0CN0_ADCM0 00000092H SFRSYM DATA BYTE SBUF1 0000009AH SFRSYM DATA BYTE PCON1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 83 - - 000000C6H SFRSYM DATA BYTE ADC0LTH 00000088H SFRSYM DATA BIT TCON_IT0 000000C8H.1 SFRSYM DATA BIT SCON1_TI @@ -5364,6 +5394,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H SFRSYM DATA BYTE TMR4CN0 000000FEH SFRSYM DATA BYTE TMR3CN1 000000FFH SFRSYM DATA BYTE TMR4CN1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 84 + + 000000D7H SFRSYM DATA BYTE SMB0ADR 00000088H.4 SFRSYM DATA BIT TCON_TR0 000000C8H.4 SFRSYM DATA BIT TMR2CN0_TF2CEN @@ -5388,15 +5421,12 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 000000A3H SFRSYM DATA BYTE SPI0DAT 000000ADH SFRSYM DATA BYTE I2C0FCN0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 84 - - 000000F8H.3 SFRSYM DATA BIT SPI0CN0_NSSMD1 000000BDH SFRSYM DATA WORD ADC0 000000D8H SFRSYM DATA BYTE UART1FCN1 @@ -5406,425 +5436,433 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01001B0DH SYMBOL CODE --- get_new_cid - 02000124H SYMBOL XDATA BYTE _hid_offset - 01003D72H SYMBOL CODE --- _refresh_cid - 01003ABAH SYMBOL CODE --- u2f_hid_reset_packet - 02000125H SYMBOL XDATA BYTE CID_NUM + 01001AADH SYMBOL CODE --- get_new_cid + 02000004H SYMBOL XDATA BYTE _hid_offset + 01003CA2H SYMBOL CODE --- _refresh_cid + 010039CAH SYMBOL CODE --- u2f_hid_reset_packet + 02000005H SYMBOL XDATA BYTE CID_NUM 01000884H SYMBOL CODE --- _hid_u2f_parse - 010033D3H SYMBOL CODE --- _stamp_error - 0200014EH SYMBOL XDATA --- hid_layer - 020001F4H SYMBOL XDATA BYTE _hid_in_session - 020001F5H SYMBOL XDATA BYTE _hid_seq - 020001F6H SYMBOL XDATA --- _hid_pkt - 01003448H SYMBOL CODE --- _del_cid - 0100396DH SYMBOL CODE --- _start_buffering - 010030DDH SYMBOL CODE --- _get_cid - 01002E10H SYMBOL CODE --- _buffer_request - 01003604H SYMBOL CODE --- _is_cid_free + 0100335BH SYMBOL CODE --- _stamp_error + 0200002EH SYMBOL XDATA --- hid_layer + 02000108H SYMBOL XDATA BYTE _hid_in_session + 02000109H SYMBOL XDATA BYTE _hid_seq + 0200010AH SYMBOL XDATA --- _hid_pkt + 01003396H SYMBOL CODE --- _del_cid + 01003675H SYMBOL CODE --- _start_buffering + 01003068H SYMBOL CODE --- _get_cid + 01002A9CH SYMBOL CODE --- _buffer_request + 0100351DH SYMBOL CODE --- _is_cid_free - 01001C8FH BLOCK CODE --- LVL=0 + 01001925H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 010037AEH BLOCK CODE --- LVL=0 - 010037AEH LINE CODE --- #67 - 010037AEH LINE CODE --- #68 - 010037AEH LINE CODE --- #69 - 010037BDH LINE CODE --- #70 - 010037C4H LINE CODE --- #71 - 010037C9H LINE CODE --- #72 - 010037CDH LINE CODE --- #73 - 010037D1H LINE CODE --- #74 - 010037D5H LINE CODE --- #75 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 85 + + + 010036CAH BLOCK CODE --- LVL=0 + 010036CAH LINE CODE --- #68 + 010036CAH LINE CODE --- #69 + 010036CAH LINE CODE --- #70 + 010036D9H LINE CODE --- #71 + 010036E0H LINE CODE --- #72 + 010036E5H LINE CODE --- #73 + 010036E9H LINE CODE --- #74 + 010036EDH LINE CODE --- #75 + 010036F1H LINE CODE --- #76 --- BLOCKEND --- --- LVL=0 - 01003D69H BLOCK CODE --- LVL=0 + 01003C99H BLOCK CODE --- LVL=0 00000006H SYMBOL DATA WORD len - 01003D69H LINE CODE --- #77 - 01003D69H LINE CODE --- #78 - 01003D69H LINE CODE --- #79 - 01003D71H LINE CODE --- #80 + 01003C99H LINE CODE --- #78 + 01003C99H LINE CODE --- #79 + 01003C99H LINE CODE --- #80 + 01003CA1H LINE CODE --- #81 --- BLOCKEND --- --- LVL=0 - 01003ABAH BLOCK CODE --- LVL=0 - 01003ABAH LINE CODE --- #83 - 01003ABAH LINE CODE --- #84 - 01003ABAH LINE CODE --- #85 - 01003ABFH LINE CODE --- #86 - 01003AC3H LINE CODE --- #87 - 01003AC7H LINE CODE --- #88 - 01003ACCH LINE CODE --- #89 + 010039CAH BLOCK CODE --- LVL=0 + 010039CAH LINE CODE --- #84 + 010039CAH LINE CODE --- #85 + 010039CAH LINE CODE --- #86 + 010039CFH LINE CODE --- #87 + 010039D3H LINE CODE --- #88 + 010039D7H LINE CODE --- #89 + 010039DCH LINE CODE --- #90 --- BLOCKEND --- --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 85 - - - 01003C05H BLOCK CODE --- LVL=0 - 01003C05H LINE CODE --- #93 - 01003C05H LINE CODE --- #94 - 01003C05H LINE CODE --- #95 - 01003C0BH LINE CODE --- #96 - 01003C0BH LINE CODE --- #97 - 01003C13H LINE CODE --- #98 - 01003C13H LINE CODE --- #99 + 01003B18H BLOCK CODE --- LVL=0 + 01003B18H LINE CODE --- #94 + 01003B18H LINE CODE --- #95 + 01003B18H LINE CODE --- #96 + 01003B1EH LINE CODE --- #97 + 01003B1EH LINE CODE --- #98 + 01003B26H LINE CODE --- #99 + 01003B26H LINE CODE --- #100 --- BLOCKEND --- --- LVL=0 - 010017DDH BLOCK CODE --- LVL=0 - 020000AAH SYMBOL XDATA --- payload - 020000ADH SYMBOL XDATA WORD len - 010017EBH BLOCK CODE NEAR LAB LVL=1 + 010016B9H BLOCK CODE --- LVL=0 + 020001F9H SYMBOL XDATA --- payload + 020001FCH SYMBOL XDATA WORD len + 010016C7H BLOCK CODE NEAR LAB LVL=1 00000001H SYMBOL DATA --- r --- BLOCKEND --- --- LVL=1 - 010017DDH LINE CODE --- #103 - 010017EBH LINE CODE --- #104 - 010017EBH LINE CODE --- #105 - 010017EEH LINE CODE --- #106 - 010017F4H LINE CODE --- #107 - 010017FAH LINE CODE --- #108 - 010017FAH LINE CODE --- #109 - 01001803H LINE CODE --- #110 - 0100180AH LINE CODE --- #111 - 0100180AH LINE CODE --- #112 - 01001814H LINE CODE --- #113 - 01001824H LINE CODE --- #114 - 0100182AH LINE CODE --- #115 - 0100182CH LINE CODE --- #117 - 0100182CH LINE CODE --- #118 - 01001835H LINE CODE --- #119 - 0100183BH LINE CODE --- #120 - 01001841H LINE CODE --- #121 - 01001841H LINE CODE --- #122 - 01001846H LINE CODE --- #124 - 01001846H LINE CODE --- #125 - 01001846H LINE CODE --- #126 - 01001846H LINE CODE --- #127 - 01001854H LINE CODE --- #128 - 01001854H LINE CODE --- #129 - 01001875H LINE CODE --- #130 - 0100187FH LINE CODE --- #131 - 01001886H LINE CODE --- #132 - 01001886H LINE CODE --- #133 - 01001888H LINE CODE --- #134 - 0100188EH LINE CODE --- #136 - 01001896H LINE CODE --- #137 - 0100189CH LINE CODE --- #139 - 010018A7H LINE CODE --- #140 - 010018A7H LINE CODE --- #141 - 010018B0H LINE CODE --- #143 - 010018B0H LINE CODE --- #144 - 010018B0H LINE CODE --- #145 - 010018B0H LINE CODE --- #146 - 010018B0H LINE CODE --- #148 + 010016B9H LINE CODE --- #104 + 010016C7H LINE CODE --- #105 + 010016C7H LINE CODE --- #106 + 010016CAH LINE CODE --- #107 + 010016D0H LINE CODE --- #108 + 010016D6H LINE CODE --- #109 + 010016D6H LINE CODE --- #110 + 010016DFH LINE CODE --- #111 + 010016E6H LINE CODE --- #112 + 010016E6H LINE CODE --- #113 + 010016F0H LINE CODE --- #114 + 01001700H LINE CODE --- #115 + 01001706H LINE CODE --- #116 + 01001708H LINE CODE --- #118 + 01001708H LINE CODE --- #119 + 01001711H LINE CODE --- #120 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 86 + + + 01001717H LINE CODE --- #121 + 0100171DH LINE CODE --- #122 + 0100171DH LINE CODE --- #123 + 01001722H LINE CODE --- #125 + 01001722H LINE CODE --- #126 + 01001722H LINE CODE --- #127 + 01001722H LINE CODE --- #128 + 01001730H LINE CODE --- #129 + 01001730H LINE CODE --- #130 + 01001751H LINE CODE --- #131 + 0100175BH LINE CODE --- #132 + 01001762H LINE CODE --- #133 + 01001762H LINE CODE --- #134 + 01001764H LINE CODE --- #135 + 0100176AH LINE CODE --- #137 + 01001772H LINE CODE --- #138 + 01001778H LINE CODE --- #140 + 01001783H LINE CODE --- #141 + 01001783H LINE CODE --- #142 + 0100178CH LINE CODE --- #144 + 0100178CH LINE CODE --- #145 + 0100178CH LINE CODE --- #146 + 0100178CH LINE CODE --- #147 + 0100178CH LINE CODE --- #149 --- BLOCKEND --- --- LVL=0 - 01003604H BLOCK CODE --- LVL=0 - 02000054H SYMBOL XDATA --- c - 01003604H LINE CODE --- #150 - 0100360AH LINE CODE --- #151 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 86 - - - 0100360AH LINE CODE --- #152 - 01003638H LINE CODE --- #153 + 0100351DH BLOCK CODE --- LVL=0 + 020001A3H SYMBOL XDATA --- c + 0100351DH LINE CODE --- #151 + 01003523H LINE CODE --- #152 + 01003523H LINE CODE --- #153 + 01003551H LINE CODE --- #154 --- BLOCKEND --- --- LVL=0 - 01003D72H BLOCK CODE --- LVL=0 + 01003CA2H BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- c - 01003D72H LINE CODE --- #155 - 01003D72H LINE CODE --- #156 - 01003D72H LINE CODE --- #157 + 01003CA2H LINE CODE --- #156 + 01003CA2H LINE CODE --- #157 + 01003CA2H LINE CODE --- #158 --- BLOCKEND --- --- LVL=0 - 01001B0DH BLOCK CODE --- LVL=0 - 01001B0DH BLOCK CODE NEAR LAB LVL=1 - 02000120H SYMBOL XDATA DWORD base - 02000052H SYMBOL XDATA INT i - 01001B51H SYMBOL CODE --- newcid + 01001AADH BLOCK CODE --- LVL=0 + 01001AADH BLOCK CODE NEAR LAB LVL=1 + 02000000H SYMBOL XDATA DWORD base + 020001A1H SYMBOL XDATA INT i + 01001AF1H SYMBOL CODE --- newcid --- BLOCKEND --- --- LVL=1 - 01001B0DH LINE CODE --- #161 - 01001B0DH LINE CODE --- #162 - 01001B0DH LINE CODE --- #165 - 01001B23H LINE CODE --- #166 - 01001B23H LINE CODE --- #167 - 01001B36H LINE CODE --- #168 - 01001B36H LINE CODE --- #169 - 01001B36H LINE CODE --- #170 - 01001B36H LINE CODE --- #171 - 01001B42H LINE CODE --- #172 - 01001B48H LINE CODE --- #173 - 01001B48H LINE CODE --- #176 - 01001B48H LINE CODE --- #177 - 01001B85H LINE CODE --- #178 - 01001BB0H LINE CODE --- #180 - 01001BC0H LINE CODE --- #182 - 01001BCDH LINE CODE --- #183 + 01001AADH LINE CODE --- #162 + 01001AADH LINE CODE --- #163 + 01001AADH LINE CODE --- #166 + 01001AC3H LINE CODE --- #167 + 01001AC3H LINE CODE --- #168 + 01001AD6H LINE CODE --- #169 + 01001AD6H LINE CODE --- #170 + 01001AD6H LINE CODE --- #171 + 01001AD6H LINE CODE --- #172 + 01001AE2H LINE CODE --- #173 + 01001AE8H LINE CODE --- #174 + 01001AE8H LINE CODE --- #177 + 01001AE8H LINE CODE --- #178 + 01001B25H LINE CODE --- #179 + 01001B50H LINE CODE --- #181 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 87 + + + 01001B60H LINE CODE --- #183 + 01001B6DH LINE CODE --- #184 --- BLOCKEND --- --- LVL=0 - 010030DDH BLOCK CODE --- LVL=0 - 0200004AH SYMBOL XDATA DWORD cid - 010030E3H BLOCK CODE NEAR LAB LVL=1 - 0200004EH SYMBOL XDATA BYTE i + 01003068H BLOCK CODE --- LVL=0 + 02000199H SYMBOL XDATA DWORD cid + 0100306EH BLOCK CODE NEAR LAB LVL=1 + 0200019DH SYMBOL XDATA BYTE i --- BLOCKEND --- --- LVL=1 - 010030DDH LINE CODE --- #185 - 010030E3H LINE CODE --- #186 - 010030E3H LINE CODE --- #188 - 010030F2H LINE CODE --- #189 - 010030F2H LINE CODE --- #190 - 01003100H LINE CODE --- #191 - 01003100H LINE CODE --- #192 - 01003113H LINE CODE --- #193 - 01003113H LINE CODE --- #194 - 0100311BH LINE CODE --- #195 - 01003121H LINE CODE --- #196 + 01003068H LINE CODE --- #186 + 0100306EH LINE CODE --- #187 + 0100306EH LINE CODE --- #189 + 0100307DH LINE CODE --- #190 + 0100307DH LINE CODE --- #191 + 0100308BH LINE CODE --- #192 + 0100308BH LINE CODE --- #193 + 0100309EH LINE CODE --- #194 + 0100309EH LINE CODE --- #195 + 010030A6H LINE CODE --- #196 + 010030ACH LINE CODE --- #197 --- BLOCKEND --- --- LVL=0 - 01003448H BLOCK CODE --- LVL=0 - 02000057H SYMBOL XDATA DWORD cid - 0100344EH BLOCK CODE NEAR LAB LVL=1 - 0200005BH SYMBOL XDATA BYTE i + 01003396H BLOCK CODE --- LVL=0 + 020001A9H SYMBOL XDATA DWORD cid + 0100339CH BLOCK CODE NEAR LAB LVL=1 + 020001ADH SYMBOL XDATA BYTE i --- BLOCKEND --- --- LVL=1 - 01003448H LINE CODE --- #197 - 0100344EH LINE CODE --- #198 - 0100344EH LINE CODE --- #200 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 87 - - - 0100345DH LINE CODE --- #201 - 0100345DH LINE CODE --- #202 - 0100346BH LINE CODE --- #203 - 0100346BH LINE CODE --- #204 - 01003479H LINE CODE --- #205 - 01003479H LINE CODE --- #206 - 01003481H LINE CODE --- #207 + 01003396H LINE CODE --- #198 + 0100339CH LINE CODE --- #199 + 0100339CH LINE CODE --- #201 + 010033ABH LINE CODE --- #202 + 010033ABH LINE CODE --- #203 + 010033B9H LINE CODE --- #204 + 010033B9H LINE CODE --- #205 + 010033C7H LINE CODE --- #206 + 010033C7H LINE CODE --- #207 + 010033CFH LINE CODE --- #208 --- BLOCKEND --- --- LVL=0 00000004H SYMBOL DATA DWORD cid - 010033D3H BLOCK CODE --- LVL=0 - 02000052H SYMBOL XDATA DWORD cid - 02000056H SYMBOL XDATA BYTE err - 010033D9H BLOCK CODE NEAR LAB LVL=1 + 0100335BH BLOCK CODE --- LVL=0 + 020001A4H SYMBOL XDATA DWORD cid + 020001A8H SYMBOL XDATA BYTE err + 01003361H BLOCK CODE NEAR LAB LVL=1 00000001H SYMBOL DATA --- res --- BLOCKEND --- --- LVL=1 - 010033D3H LINE CODE --- #214 - 010033D9H LINE CODE --- #215 - 010033D9H LINE CODE --- #216 - 010033DCH LINE CODE --- #217 - 010033E5H LINE CODE --- #218 - 010033EDH LINE CODE --- #219 - 010033F7H LINE CODE --- #220 - 010033F8H LINE CODE --- #221 - 01003400H LINE CODE --- #223 - 01003405H LINE CODE --- #224 + 0100335BH LINE CODE --- #215 + 01003361H LINE CODE --- #216 + 01003361H LINE CODE --- #217 + 01003364H LINE CODE --- #218 + 0100336DH LINE CODE --- #219 + 01003375H LINE CODE --- #220 + 0100337FH LINE CODE --- #221 + 01003380H LINE CODE --- #222 + 01003388H LINE CODE --- #224 + 0100338DH LINE CODE --- #225 --- BLOCKEND --- --- LVL=0 - 0100396DH BLOCK CODE --- LVL=0 + 01003675H BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- req - 0100396DH LINE CODE --- #228 - 0100396DH LINE CODE --- #229 - 0100396DH LINE CODE --- #230 - 01003973H LINE CODE --- #231 - 0100397CH LINE CODE --- #232 + 01003675H LINE CODE --- #229 + 01003675H LINE CODE --- #230 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 88 + + + 01003675H LINE CODE --- #231 + 0100367BH LINE CODE --- #232 + 01003684H LINE CODE --- #233 + 01003691H LINE CODE --- #234 --- BLOCKEND --- --- LVL=0 - 01002E10H BLOCK CODE --- LVL=0 - 02000052H SYMBOL XDATA --- req - 01002E10H LINE CODE --- #235 - 01002E16H LINE CODE --- #236 - 01002E16H LINE CODE --- #237 - 01002E2DH LINE CODE --- #238 - 01002E2DH LINE CODE --- #239 - 01002E36H LINE CODE --- #240 - 01002E3BH LINE CODE --- #241 - 01002E3BH LINE CODE --- #242 - 01002E5EH LINE CODE --- #243 - 01002E68H LINE CODE --- #244 + 01002A9CH BLOCK CODE --- LVL=0 + 020001A1H SYMBOL XDATA --- req + 01002A9CH LINE CODE --- #237 + 01002AA2H LINE CODE --- #238 + 01002AA2H LINE CODE --- #239 + 01002AB9H LINE CODE --- #240 + 01002AB9H LINE CODE --- #241 + 01002AC2H LINE CODE --- #242 + 01002AD1H LINE CODE --- #243 + 01002AD6H LINE CODE --- #244 + 01002AD6H LINE CODE --- #245 + 01002AF9H LINE CODE --- #246 + 01002B03H LINE CODE --- #247 --- BLOCKEND --- --- LVL=0 01000884H BLOCK CODE --- LVL=0 - 0200004AH SYMBOL XDATA --- req + 02000199H SYMBOL XDATA --- req 0100088AH BLOCK CODE NEAR LAB LVL=1 - 0200004DH SYMBOL XDATA WORD len - 0200004FH SYMBOL XDATA --- init_res - 01000A4FH SYMBOL CODE --- fail + 0200019CH SYMBOL XDATA WORD len + 0200019EH SYMBOL XDATA --- init_res + 01000A58H SYMBOL CODE --- fail --- BLOCKEND --- --- LVL=1 - 01000884H LINE CODE --- #246 - 0100088AH LINE CODE --- #247 - 0100088AH LINE CODE --- #249 - 01000891H LINE CODE --- #250 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 88 - - - 0100089AH LINE CODE --- #252 - 010008C0H LINE CODE --- #253 - 010008C0H LINE CODE --- #254 + 01000884H LINE CODE --- #249 + 0100088AH LINE CODE --- #250 + 0100088AH LINE CODE --- #252 + 01000891H LINE CODE --- #253 + 0100089AH LINE CODE --- #255 010008C0H LINE CODE --- #256 - 010008C9H LINE CODE --- #257 - 010008C9H LINE CODE --- #259 - 010008CCH LINE CODE --- #260 - 010008D2H LINE CODE --- #261 - 010008D5H LINE CODE --- #262 - 010008D5H LINE CODE --- #263 - 010008DCH LINE CODE --- #266 - 010008E5H LINE CODE --- #267 - 010008E5H LINE CODE --- #268 - 010008EBH LINE CODE --- #269 - 010008EDH LINE CODE --- #270 - 010008EDH LINE CODE --- #272 - 010008F9H LINE CODE --- #273 - 01000904H LINE CODE --- #274 - 01000906H LINE CODE --- #275 - 0100090DH LINE CODE --- #276 - 01000914H LINE CODE --- #277 - 0100091BH LINE CODE --- #280 - 01000925H LINE CODE --- #281 - 01000932H LINE CODE --- #282 - 01000935H LINE CODE --- #283 - 01000941H LINE CODE --- #285 - 01000941H LINE CODE --- #286 + 010008C0H LINE CODE --- #257 + 010008C0H LINE CODE --- #259 + 010008C9H LINE CODE --- #260 + 010008C9H LINE CODE --- #262 + 010008CCH LINE CODE --- #263 + 010008D2H LINE CODE --- #264 + 010008D5H LINE CODE --- #265 + 010008D5H LINE CODE --- #266 + 010008DCH LINE CODE --- #269 + 010008E5H LINE CODE --- #270 + 010008E5H LINE CODE --- #271 + 010008EBH LINE CODE --- #272 + 010008EDH LINE CODE --- #273 + 010008EDH LINE CODE --- #275 + 010008F9H LINE CODE --- #276 + 01000904H LINE CODE --- #277 + 01000906H LINE CODE --- #278 + 0100090DH LINE CODE --- #279 + 01000914H LINE CODE --- #280 + 0100091BH LINE CODE --- #283 + 01000925H LINE CODE --- #284 + 01000932H LINE CODE --- #285 + 01000935H LINE CODE --- #286 01000941H LINE CODE --- #288 - 0100094DH LINE CODE --- #289 - 0100094DH LINE CODE --- #291 - 01000950H LINE CODE --- #292 - 01000959H LINE CODE --- #293 - 0100095CH LINE CODE --- #294 - 0100095CH LINE CODE --- #301 - 01000966H LINE CODE --- #302 - 01000966H LINE CODE --- #303 - 0100096FH LINE CODE --- #304 - 01000984H LINE CODE --- #305 - 01000984H LINE CODE --- #306 - 01000984H LINE CODE --- #307 - 01000984H LINE CODE --- #308 - 01000986H LINE CODE --- #310 - 01000986H LINE CODE --- #311 - 0100098FH LINE CODE --- #312 - 01000998H LINE CODE --- #313 + 01000941H LINE CODE --- #289 + 01000941H LINE CODE --- #291 + 0100094DH LINE CODE --- #292 + 0100094DH LINE CODE --- #294 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 89 + + + 01000950H LINE CODE --- #295 + 01000959H LINE CODE --- #296 + 0100095CH LINE CODE --- #297 + 0100095CH LINE CODE --- #304 + 01000966H LINE CODE --- #305 + 01000966H LINE CODE --- #306 + 0100096FH LINE CODE --- #307 + 0100097EH LINE CODE --- #308 + 0100097EH LINE CODE --- #309 + 0100097EH LINE CODE --- #310 + 0100097EH LINE CODE --- #311 + 01000980H LINE CODE --- #313 + 01000980H LINE CODE --- #314 + 01000989H LINE CODE --- #315 01000998H LINE CODE --- #316 01000998H LINE CODE --- #317 - 01000998H LINE CODE --- #321 - 0100099EH LINE CODE --- #322 - 0100099EH LINE CODE --- #323 - 010009A7H LINE CODE --- #324 - 010009C1H LINE CODE --- #325 - 010009C3H LINE CODE --- #327 - 010009C3H LINE CODE --- #328 - 010009F1H LINE CODE --- #329 - 010009F1H LINE CODE --- #331 - 01000A06H LINE CODE --- #332 - 01000A06H LINE CODE --- #334 - 01000A06H LINE CODE --- #336 - 01000A0DH LINE CODE --- #337 - 01000A0DH LINE CODE --- #339 - 01000A16H LINE CODE --- #340 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 89 - - - 01000A1FH LINE CODE --- #341 - 01000A1FH LINE CODE --- #342 - 01000A25H LINE CODE --- #343 - 01000A31H LINE CODE --- #344 - 01000A34H LINE CODE --- #345 - 01000A37H LINE CODE --- #346 - 01000A38H LINE CODE --- #347 - 01000A38H LINE CODE --- #350 - 01000A38H LINE CODE --- #351 - 01000A38H LINE CODE --- #352 - 01000A46H LINE CODE --- #353 - 01000A4FH LINE CODE --- #354 - 01000A4FH LINE CODE --- #355 + 010009A1H LINE CODE --- #318 + 010009A1H LINE CODE --- #319 + 010009A1H LINE CODE --- #322 + 010009A1H LINE CODE --- #323 + 010009A1H LINE CODE --- #327 + 010009A7H LINE CODE --- #328 + 010009A7H LINE CODE --- #329 + 010009B0H LINE CODE --- #330 + 010009CAH LINE CODE --- #331 + 010009CCH LINE CODE --- #333 + 010009CCH LINE CODE --- #334 + 010009FAH LINE CODE --- #335 + 010009FAH LINE CODE --- #337 + 01000A0FH LINE CODE --- #338 + 01000A0FH LINE CODE --- #340 + 01000A0FH LINE CODE --- #342 + 01000A16H LINE CODE --- #343 + 01000A16H LINE CODE --- #345 + 01000A1FH LINE CODE --- #346 + 01000A28H LINE CODE --- #347 + 01000A28H LINE CODE --- #348 + 01000A2EH LINE CODE --- #349 + 01000A3AH LINE CODE --- #350 + 01000A3DH LINE CODE --- #351 + 01000A40H LINE CODE --- #352 + 01000A41H LINE CODE --- #353 + 01000A41H LINE CODE --- #356 + 01000A41H LINE CODE --- #357 + 01000A41H LINE CODE --- #358 01000A4FH LINE CODE --- #359 - 01000A4FH LINE CODE --- #360 - 01000A58H LINE CODE --- #362 + 01000A58H LINE CODE --- #360 + 01000A58H LINE CODE --- #361 + 01000A58H LINE CODE --- #365 + 01000A58H LINE CODE --- #366 + 01000A61H LINE CODE --- #368 --- BLOCKEND --- --- LVL=0 - 01001265H BLOCK CODE --- LVL=0 - 02000041H SYMBOL XDATA --- req - 0100126BH BLOCK CODE NEAR LAB LVL=1 - 02000044H SYMBOL XDATA --- payload - 02000047H SYMBOL XDATA --- cid + 01001139H BLOCK CODE --- LVL=0 + 02000190H SYMBOL XDATA --- req + 0100113FH BLOCK CODE NEAR LAB LVL=1 + 02000193H SYMBOL XDATA --- payload + 02000196H SYMBOL XDATA --- cid --- BLOCKEND --- --- LVL=1 - 01001265H LINE CODE --- #365 - 0100126BH LINE CODE --- #366 - 0100126BH LINE CODE --- #367 - 01001274H LINE CODE --- #368 - 01001280H LINE CODE --- #371 - 0100128BH LINE CODE --- #372 - 0100128BH LINE CODE --- #373 - 01001294H LINE CODE --- #374 - 01001296H LINE CODE --- #375 - 010012A5H LINE CODE --- #376 - 010012A5H LINE CODE --- #378 - 010012A5H LINE CODE --- #384 - 010012A5H LINE CODE --- #386 - 010012B4H LINE CODE --- #388 - 010012BCH LINE CODE --- #389 - 010012BCH LINE CODE --- #390 - 010012BCH LINE CODE --- #391 - 010012C8H LINE CODE --- #392 - 010012C8H LINE CODE --- #393 - 010012D4H LINE CODE --- #394 - 010012D4H LINE CODE --- #396 - 010012DEH LINE CODE --- #398 - 010012DEH LINE CODE --- #399 - 010012E1H LINE CODE --- #400 - 010012EAH LINE CODE --- #401 - 010012F4H LINE CODE --- #402 - 010012F8H LINE CODE --- #405 - 010012FAH LINE CODE --- #407 - 010012FAH LINE CODE --- #408 - 01001306H LINE CODE --- #409 - 0100130FH LINE CODE --- #411 - 0100130FH LINE CODE --- #413 - 0100130FH LINE CODE --- #414 - 0100130FH LINE CODE --- #416 - 01001317H LINE CODE --- #417 - 01001317H LINE CODE --- #418 - 01001317H LINE CODE --- #419 - 01001317H LINE CODE --- #422 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 90 + 01001139H LINE CODE --- #371 + 0100113FH LINE CODE --- #372 + 0100113FH LINE CODE --- #373 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 90 - 01001317H LINE CODE --- #423 - 01001320H LINE CODE --- #426 - 01001322H LINE CODE --- #427 - 01001339H LINE CODE --- #428 - 01001339H LINE CODE --- #431 - 0100133FH LINE CODE --- #432 - 01001342H LINE CODE --- #433 - 0100134BH LINE CODE --- #434 - 01001354H LINE CODE --- #436 - 01001354H LINE CODE --- #438 - 01001354H LINE CODE --- #441 - 01001360H LINE CODE --- #444 - 01001360H LINE CODE --- #445 - 01001360H LINE CODE --- #447 - 01001360H LINE CODE --- #449 - 01001369H LINE CODE --- #453 + 01001148H LINE CODE --- #374 + 01001154H LINE CODE --- #377 + 0100115FH LINE CODE --- #378 + 0100115FH LINE CODE --- #379 + 01001168H LINE CODE --- #380 + 0100116AH LINE CODE --- #381 + 01001179H LINE CODE --- #382 + 01001179H LINE CODE --- #384 + 01001179H LINE CODE --- #390 + 01001179H LINE CODE --- #392 + 01001188H LINE CODE --- #394 + 01001190H LINE CODE --- #395 + 01001190H LINE CODE --- #396 + 01001190H LINE CODE --- #397 + 0100119CH LINE CODE --- #398 + 0100119CH LINE CODE --- #399 + 010011A8H LINE CODE --- #400 + 010011A8H LINE CODE --- #402 + 010011B2H LINE CODE --- #404 + 010011B2H LINE CODE --- #405 + 010011B5H LINE CODE --- #406 + 010011BEH LINE CODE --- #407 + 010011C8H LINE CODE --- #408 + 010011CCH LINE CODE --- #411 + 010011CEH LINE CODE --- #413 + 010011CEH LINE CODE --- #414 + 010011DAH LINE CODE --- #415 + 010011E3H LINE CODE --- #417 + 010011E3H LINE CODE --- #419 + 010011E3H LINE CODE --- #420 + 010011E3H LINE CODE --- #422 + 010011EBH LINE CODE --- #423 + 010011EBH LINE CODE --- #424 + 010011EBH LINE CODE --- #425 + 010011EBH LINE CODE --- #428 + 010011EBH LINE CODE --- #429 + 010011F4H LINE CODE --- #432 + 010011F6H LINE CODE --- #433 + 0100120DH LINE CODE --- #434 + 0100120DH LINE CODE --- #437 + 01001213H LINE CODE --- #438 + 01001216H LINE CODE --- #439 + 0100121FH LINE CODE --- #440 + 01001228H LINE CODE --- #442 + 01001228H LINE CODE --- #444 + 01001228H LINE CODE --- #447 + 01001234H LINE CODE --- #450 + 01001234H LINE CODE --- #451 + 01001234H LINE CODE --- #453 + 01001234H LINE CODE --- #455 + 0100123DH LINE CODE --- #459 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- USB_0 - 01003D9FH PUBLIC CODE --- USB_GetIntsEnabled + 01003CE5H PUBLIC CODE --- USB_GetIntsEnabled 00000020H.4 PUBLIC BIT BIT ?_USB_ActivateEp?BIT - 01002625H PUBLIC CODE --- _USB_ActivateEp - 0100366DH PUBLIC CODE --- _USB_AbortOutEp - 01003DB9H PUBLIC CODE --- USB_EpOutGetCount - 01003CB9H PUBLIC CODE --- USB_EpnGetOutPacketReady - 01003C88H PUBLIC CODE --- USB_EpnOutGetSentStall - 01003639H PUBLIC CODE --- _USB_AbortInEp - 01003C7BH PUBLIC CODE --- USB_EpnInGetSentStall - 01003CFCH PUBLIC CODE --- USB_Ep0GetCount - 01003C6EH PUBLIC CODE --- USB_Ep0InPacketReady - 01003CADH PUBLIC CODE --- USB_Ep0OutPacketReady - 01003C61H PUBLIC CODE --- USB_Ep0SentStall - 01003C54H PUBLIC CODE --- USB_GetSetupEnd - 01003CF1H PUBLIC CODE --- USB_GetIndex - 01003CE6H PUBLIC CODE --- USB_GetOutInts - 01003CDBH PUBLIC CODE --- USB_GetInInts - 01003CD0H PUBLIC CODE --- USB_GetCommonInts - 01003CC5H PUBLIC CODE --- _USB_SetIndex + 010024FBH PUBLIC CODE --- _USB_ActivateEp + 01003586H PUBLIC CODE --- _USB_AbortOutEp + 01003CFFH PUBLIC CODE --- USB_EpOutGetCount + 01003BDDH PUBLIC CODE --- USB_EpnGetOutPacketReady + 01003BACH PUBLIC CODE --- USB_EpnOutGetSentStall + 01003552H PUBLIC CODE --- _USB_AbortInEp +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 91 + + + 01003B9FH PUBLIC CODE --- USB_EpnInGetSentStall + 01003C2BH PUBLIC CODE --- USB_Ep0GetCount + 01003B92H PUBLIC CODE --- USB_Ep0InPacketReady + 01003BD1H PUBLIC CODE --- USB_Ep0OutPacketReady + 01003B85H PUBLIC CODE --- USB_Ep0SentStall + 01003B78H PUBLIC CODE --- USB_GetSetupEnd + 01003C20H PUBLIC CODE --- USB_GetIndex + 01003C15H PUBLIC CODE --- USB_GetOutInts + 01003C0AH PUBLIC CODE --- USB_GetInInts + 01003BFFH PUBLIC CODE --- USB_GetCommonInts + 01003BF4H PUBLIC CODE --- _USB_SetIndex 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -5849,9 +5887,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A4H SFRSYM DATA BYTE P0MDOUT 000000BFH SFRSYM DATA BYTE USB0CDSTA 000000A5H SFRSYM DATA BYTE P1MDOUT -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 91 - - 000000E8H.5 SFRSYM DATA BIT ADC0CN0_ADINT 000000CBH SFRSYM DATA BYTE TMR2RLH 000000A6H SFRSYM DATA BYTE P2MDOUT @@ -5879,6 +5914,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000CFH SFRSYM DATA BYTE SFRPGCN 000000FBH SFRSYM DATA BYTE PCA0CPL0 000000F0H.3 SFRSYM DATA BIT B_B3 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 92 + + 000000D9H SFRSYM DATA BYTE PCA0MD 000000DAH SFRSYM DATA BYTE PCA0CPM0 000000E9H SFRSYM DATA BYTE PCA0CPL1 @@ -5914,9 +5952,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A6H SFRSYM DATA BYTE CKCON1 000000C8H.2 SFRSYM DATA BIT TMR2CN0_TR2 000000E0H.2 SFRSYM DATA BIT ACC_ACC2 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 92 - - 000000C6H SFRSYM DATA BYTE REG1CN 000000E0H.3 SFRSYM DATA BIT ACC_ACC3 00000081H SFRSYM DATA BYTE SP @@ -5944,6 +5979,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.4 SFRSYM DATA BIT SCON0_REN 000000ACH SFRSYM DATA BYTE SMB0TC 000000F2H SFRSYM DATA BYTE P1MDIN +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 93 + + 000000C8H.4 SFRSYM DATA BIT SCON1_REN 000000F3H SFRSYM DATA BYTE P2MDIN 000000C0H.4 SFRSYM DATA BIT SMB0CN0_STO @@ -5979,9 +6017,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H SFRSYM DATA BIT TMR4CN0_T4XCLK0 000000A8H.1 SFRSYM DATA BIT IE_ET0 000000AAH SFRSYM DATA BYTE CMP1MX -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 93 - - 00000098H.1 SFRSYM DATA BIT TMR4CN0_T4XCLK1 000000A8H.3 SFRSYM DATA BIT IE_ET1 000000D4H SFRSYM DATA BYTE P0SKIP @@ -6009,6 +6044,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A2H SFRSYM DATA WORD TMR4RL 000000D8H SFRSYM DATA BYTE PCA0CN0 000000E0H SFRSYM DATA BYTE ACC +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 94 + + 000000FBH SFRSYM DATA WORD PCA0CP0 000000E9H SFRSYM DATA WORD PCA0CP1 000000EBH SFRSYM DATA WORD PCA0CP2 @@ -6044,9 +6082,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.1 SFRSYM DATA BIT P1_B1 00000080H.2 SFRSYM DATA BIT P0_B2 000000BFH SFRSYM DATA BYTE CMP1CN0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 94 - - 00000099H SFRSYM DATA BYTE CMP0CN1 00000088H.3 SFRSYM DATA BIT TCON_IE1 000000B0H SFRSYM DATA BIT P3_B0 @@ -6074,6 +6109,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.7 SFRSYM DATA BIT P1_B7 00000083H SFRSYM DATA BYTE DPH 000000C4H SFRSYM DATA BYTE ADC0GTH +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 95 + + 000000C8H.7 SFRSYM DATA BIT TMR2CN0_TF2H 000000C8H.3 SFRSYM DATA BIT TMR2CN0_T2SPLIT 000000D0H.6 SFRSYM DATA BIT PSW_AC @@ -6109,9 +6147,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H SFRSYM DATA BYTE SCON0 000000F6H SFRSYM DATA BYTE PRTDRV 000000EDH SFRSYM DATA BYTE P1MAT -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 95 - - 000000E8H.3 SFRSYM DATA BIT ADC0CN0_ADWINT 00000095H SFRSYM DATA WORD SBRL1 000000B2H SFRSYM DATA BYTE USB0AEC @@ -6139,6 +6174,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000CDH SFRSYM DATA BYTE TMR2H 000000A1H SFRSYM DATA BYTE SPI0CFG 00000095H SFRSYM DATA BYTE TMR3H +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 96 + + 000000EFH SFRSYM DATA BYTE HFOCN 000000D3H SFRSYM DATA BYTE CRC0CNT 000000A5H SFRSYM DATA BYTE TMR4H @@ -6171,234 +6209,234 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B6H SFRSYM DATA BYTE REVID 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01003824H SYMBOL CODE --- _USB_GetShortRegister - - 01003824H BLOCK CODE --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 96 - + 01003740H SYMBOL CODE --- _USB_GetShortRegister + 01003740H BLOCK CODE --- LVL=0 00000005H SYMBOL DATA BYTE regAddr - 01003826H BLOCK CODE NEAR LAB LVL=1 + 01003742H BLOCK CODE NEAR LAB LVL=1 00000006H SYMBOL DATA WORD retVal --- BLOCKEND --- --- LVL=1 - 01003824H LINE CODE --- #25 - 01003826H LINE CODE --- #26 - 01003826H LINE CODE --- #29 - 01003830H LINE CODE --- #30 - 01003836H LINE CODE --- #31 - 01003841H LINE CODE --- #32 - 01003846H LINE CODE --- #34 - 01003846H LINE CODE --- #35 + 01003740H LINE CODE --- #25 + 01003742H LINE CODE --- #26 + 01003742H LINE CODE --- #29 + 0100374CH LINE CODE --- #30 + 01003752H LINE CODE --- #31 + 0100375DH LINE CODE --- #32 + 01003762H LINE CODE --- #34 + 01003762H LINE CODE --- #35 --- BLOCKEND --- --- LVL=0 - 01003CC5H BLOCK CODE --- LVL=0 + 01003BF4H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE epsel - 01003CC5H LINE CODE --- #40 - 01003CC5H LINE CODE --- #41 - 01003CC5H LINE CODE --- #42 - 01003CCFH LINE CODE --- #43 + 01003BF4H LINE CODE --- #40 + 01003BF4H LINE CODE --- #41 + 01003BF4H LINE CODE --- #42 + 01003BFEH LINE CODE --- #43 --- BLOCKEND --- --- LVL=0 - 01003CD0H BLOCK CODE --- LVL=0 - 01003CD0H LINE CODE --- #45 - 01003CD0H LINE CODE --- #46 - 01003CD0H LINE CODE --- #47 - 01003CD8H LINE CODE --- #48 - 01003CDAH LINE CODE --- #49 + 01003BFFH BLOCK CODE --- LVL=0 + 01003BFFH LINE CODE --- #45 + 01003BFFH LINE CODE --- #46 + 01003BFFH LINE CODE --- #47 + 01003C07H LINE CODE --- #48 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 97 + + + 01003C09H LINE CODE --- #49 --- BLOCKEND --- --- LVL=0 - 01003CDBH BLOCK CODE --- LVL=0 - 01003CDBH LINE CODE --- #51 - 01003CDBH LINE CODE --- #52 - 01003CDBH LINE CODE --- #53 - 01003CE3H LINE CODE --- #54 - 01003CE5H LINE CODE --- #55 + 01003C0AH BLOCK CODE --- LVL=0 + 01003C0AH LINE CODE --- #51 + 01003C0AH LINE CODE --- #52 + 01003C0AH LINE CODE --- #53 + 01003C12H LINE CODE --- #54 + 01003C14H LINE CODE --- #55 --- BLOCKEND --- --- LVL=0 - 01003CE6H BLOCK CODE --- LVL=0 - 01003CE6H LINE CODE --- #57 - 01003CE6H LINE CODE --- #58 - 01003CE6H LINE CODE --- #59 - 01003CEEH LINE CODE --- #60 - 01003CF0H LINE CODE --- #61 + 01003C15H BLOCK CODE --- LVL=0 + 01003C15H LINE CODE --- #57 + 01003C15H LINE CODE --- #58 + 01003C15H LINE CODE --- #59 + 01003C1DH LINE CODE --- #60 + 01003C1FH LINE CODE --- #61 --- BLOCKEND --- --- LVL=0 - 01003CF1H BLOCK CODE --- LVL=0 - 01003CF1H LINE CODE --- #63 - 01003CF1H LINE CODE --- #64 - 01003CF1H LINE CODE --- #65 - 01003CF9H LINE CODE --- #66 - 01003CFBH LINE CODE --- #67 + 01003C20H BLOCK CODE --- LVL=0 + 01003C20H LINE CODE --- #63 + 01003C20H LINE CODE --- #64 + 01003C20H LINE CODE --- #65 + 01003C28H LINE CODE --- #66 + 01003C2AH LINE CODE --- #67 --- BLOCKEND --- --- LVL=0 - 01003C54H BLOCK CODE --- LVL=0 - 01003C54H LINE CODE --- #75 - 01003C54H LINE CODE --- #76 - 01003C54H LINE CODE --- #77 - 01003C5CH LINE CODE --- #78 - 01003C60H LINE CODE --- #79 + 01003B78H BLOCK CODE --- LVL=0 + 01003B78H LINE CODE --- #75 + 01003B78H LINE CODE --- #76 + 01003B78H LINE CODE --- #77 + 01003B80H LINE CODE --- #78 + 01003B84H LINE CODE --- #79 --- BLOCKEND --- --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 97 - - - 01003C61H BLOCK CODE --- LVL=0 - 01003C61H LINE CODE --- #81 - 01003C61H LINE CODE --- #82 - 01003C61H LINE CODE --- #83 - 01003C69H LINE CODE --- #84 - 01003C6DH LINE CODE --- #85 + 01003B85H BLOCK CODE --- LVL=0 + 01003B85H LINE CODE --- #81 + 01003B85H LINE CODE --- #82 + 01003B85H LINE CODE --- #83 + 01003B8DH LINE CODE --- #84 + 01003B91H LINE CODE --- #85 --- BLOCKEND --- --- LVL=0 - 01003CADH BLOCK CODE --- LVL=0 - 01003CADH LINE CODE --- #87 - 01003CADH LINE CODE --- #88 - 01003CADH LINE CODE --- #89 - 01003CB5H LINE CODE --- #90 - 01003CB8H LINE CODE --- #91 + 01003BD1H BLOCK CODE --- LVL=0 + 01003BD1H LINE CODE --- #87 + 01003BD1H LINE CODE --- #88 + 01003BD1H LINE CODE --- #89 + 01003BD9H LINE CODE --- #90 + 01003BDCH LINE CODE --- #91 --- BLOCKEND --- --- LVL=0 - 01003C6EH BLOCK CODE --- LVL=0 - 01003C6EH LINE CODE --- #93 - 01003C6EH LINE CODE --- #94 - 01003C6EH LINE CODE --- #95 - 01003C76H LINE CODE --- #96 - 01003C7AH LINE CODE --- #97 + 01003B92H BLOCK CODE --- LVL=0 + 01003B92H LINE CODE --- #93 + 01003B92H LINE CODE --- #94 + 01003B92H LINE CODE --- #95 + 01003B9AH LINE CODE --- #96 + 01003B9EH LINE CODE --- #97 --- BLOCKEND --- --- LVL=0 - 01003CFCH BLOCK CODE --- LVL=0 - 01003CFCH LINE CODE --- #99 - 01003CFCH LINE CODE --- #100 - 01003CFCH LINE CODE --- #101 - 01003D04H LINE CODE --- #102 - 01003D06H LINE CODE --- #103 + 01003C2BH BLOCK CODE --- LVL=0 + 01003C2BH LINE CODE --- #99 + 01003C2BH LINE CODE --- #100 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 98 + + + 01003C2BH LINE CODE --- #101 + 01003C33H LINE CODE --- #102 + 01003C35H LINE CODE --- #103 --- BLOCKEND --- --- LVL=0 - 01003C7BH BLOCK CODE --- LVL=0 - 01003C7BH LINE CODE --- #105 - 01003C7BH LINE CODE --- #106 - 01003C7BH LINE CODE --- #107 - 01003C83H LINE CODE --- #108 - 01003C87H LINE CODE --- #109 + 01003B9FH BLOCK CODE --- LVL=0 + 01003B9FH LINE CODE --- #105 + 01003B9FH LINE CODE --- #106 + 01003B9FH LINE CODE --- #107 + 01003BA7H LINE CODE --- #108 + 01003BABH LINE CODE --- #109 --- BLOCKEND --- --- LVL=0 - 01003639H BLOCK CODE --- LVL=0 + 01003552H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE fifoNum - 01003639H LINE CODE --- #111 - 01003639H LINE CODE --- #112 - 01003639H LINE CODE --- #113 - 0100363CH LINE CODE --- #114 - 01003654H LINE CODE --- #115 - 0100366CH LINE CODE --- #116 + 01003552H LINE CODE --- #111 + 01003552H LINE CODE --- #112 + 01003552H LINE CODE --- #113 + 01003555H LINE CODE --- #114 + 0100356DH LINE CODE --- #115 + 01003585H LINE CODE --- #116 --- BLOCKEND --- --- LVL=0 - 01003C88H BLOCK CODE --- LVL=0 - 01003C88H LINE CODE --- #118 - 01003C88H LINE CODE --- #119 - 01003C88H LINE CODE --- #120 - 01003C90H LINE CODE --- #121 - 01003C94H LINE CODE --- #122 + 01003BACH BLOCK CODE --- LVL=0 + 01003BACH LINE CODE --- #118 + 01003BACH LINE CODE --- #119 + 01003BACH LINE CODE --- #120 + 01003BB4H LINE CODE --- #121 + 01003BB8H LINE CODE --- #122 --- BLOCKEND --- --- LVL=0 - 01003CB9H BLOCK CODE --- LVL=0 - 01003CB9H LINE CODE --- #124 - 01003CB9H LINE CODE --- #125 - 01003CB9H LINE CODE --- #126 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 98 - - - 01003CC1H LINE CODE --- #127 - 01003CC4H LINE CODE --- #128 + 01003BDDH BLOCK CODE --- LVL=0 + 01003BDDH LINE CODE --- #124 + 01003BDDH LINE CODE --- #125 + 01003BDDH LINE CODE --- #126 + 01003BE5H LINE CODE --- #127 + 01003BE8H LINE CODE --- #128 --- BLOCKEND --- --- LVL=0 - 01003DB9H BLOCK CODE --- LVL=0 - 01003DB9H LINE CODE --- #130 - 01003DB9H LINE CODE --- #131 - 01003DB9H LINE CODE --- #132 - 01003DBEH LINE CODE --- #133 + 01003CFFH BLOCK CODE --- LVL=0 + 01003CFFH LINE CODE --- #130 + 01003CFFH LINE CODE --- #131 + 01003CFFH LINE CODE --- #132 + 01003D04H LINE CODE --- #133 --- BLOCKEND --- --- LVL=0 - 0100366DH BLOCK CODE --- LVL=0 + 01003586H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE fifoNum - 0100366DH LINE CODE --- #135 - 0100366DH LINE CODE --- #136 - 0100366DH LINE CODE --- #137 - 01003670H LINE CODE --- #138 - 01003688H LINE CODE --- #139 - 010036A0H LINE CODE --- #140 + 01003586H LINE CODE --- #135 + 01003586H LINE CODE --- #136 + 01003586H LINE CODE --- #137 + 01003589H LINE CODE --- #138 + 010035A1H LINE CODE --- #139 + 010035B9H LINE CODE --- #140 --- BLOCKEND --- --- LVL=0 - 01002625H BLOCK CODE --- LVL=0 + 010024FBH BLOCK CODE --- LVL=0 00000006H SYMBOL DATA BYTE ep 00000004H SYMBOL DATA WORD packetSize 00000020H.4 SYMBOL BIT BIT inDir 00000020H.5 SYMBOL BIT BIT splitMode 00000020H.6 SYMBOL BIT BIT isoMode - 01002627H BLOCK CODE NEAR LAB LVL=1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 99 + + + 010024FDH BLOCK CODE NEAR LAB LVL=1 00000003H SYMBOL DATA BYTE CSRH_mask 00000006H SYMBOL DATA WORD fifoSize --- BLOCKEND --- --- LVL=1 - 01002625H LINE CODE --- #142 - 01002627H LINE CODE --- #147 - 01002627H LINE CODE --- #148 - 01002629H LINE CODE --- #151 - 0100262CH LINE CODE --- #155 - 01002655H LINE CODE --- #157 - 0100265CH LINE CODE --- #158 - 0100265CH LINE CODE --- #159 - 01002660H LINE CODE --- #160 - 01002660H LINE CODE --- #162 - 01002663H LINE CODE --- #163 - 01002663H LINE CODE --- #164 - 01002667H LINE CODE --- #165 - 01002667H LINE CODE --- #167 - 0100266AH LINE CODE --- #168 - 0100266AH LINE CODE --- #169 - 0100266EH LINE CODE --- #171 - 01002671H LINE CODE --- #172 - 01002671H LINE CODE --- #173 - 01002674H LINE CODE --- #174 - 01002674H LINE CODE --- #175 - 0100267FH LINE CODE --- #176 - 0100268BH LINE CODE --- #179 - 0100268BH LINE CODE --- #180 - 01002696H LINE CODE --- #181 - 010026A2H LINE CODE --- #183 - 010026A5H LINE CODE --- #184 - 010026A5H LINE CODE --- #185 - 010026B0H LINE CODE --- #186 - 010026B0H LINE CODE --- #187 - 010026B0H LINE CODE --- #188 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 99 - - + 010024FBH LINE CODE --- #142 + 010024FDH LINE CODE --- #147 + 010024FDH LINE CODE --- #148 + 010024FFH LINE CODE --- #151 + 01002502H LINE CODE --- #155 + 0100252BH LINE CODE --- #157 + 01002532H LINE CODE --- #158 + 01002532H LINE CODE --- #159 + 01002536H LINE CODE --- #160 + 01002536H LINE CODE --- #162 + 01002539H LINE CODE --- #163 + 01002539H LINE CODE --- #164 + 0100253DH LINE CODE --- #165 + 0100253DH LINE CODE --- #167 + 01002540H LINE CODE --- #168 + 01002540H LINE CODE --- #169 + 01002544H LINE CODE --- #171 + 01002547H LINE CODE --- #172 + 01002547H LINE CODE --- #173 + 0100254AH LINE CODE --- #174 + 0100254AH LINE CODE --- #175 + 01002555H LINE CODE --- #176 + 01002561H LINE CODE --- #179 + 01002561H LINE CODE --- #180 + 0100256CH LINE CODE --- #181 + 01002578H LINE CODE --- #183 + 0100257BH LINE CODE --- #184 + 0100257BH LINE CODE --- #185 + 01002586H LINE CODE --- #186 + 01002586H LINE CODE --- #187 + 01002586H LINE CODE --- #188 --- BLOCKEND --- --- LVL=0 - 01003D9FH BLOCK CODE --- LVL=0 - 01003D9FH LINE CODE --- #195 - 01003D9FH LINE CODE --- #196 - 01003D9FH LINE CODE --- #197 - 01003DA2H LINE CODE --- #198 - 01003DA5H LINE CODE --- #199 + 01003CE5H BLOCK CODE --- LVL=0 + 01003CE5H LINE CODE --- #195 + 01003CE5H LINE CODE --- #196 + 01003CE5H LINE CODE --- #197 + 01003CE8H LINE CODE --- #198 + 01003CEBH LINE CODE --- #199 --- BLOCKEND --- --- LVL=0 00000007H SYMBOL DATA BYTE clkSelSave --- MODULE --- --- EFM8_USBD - 0200030AH PUBLIC XDATA --- myUsbDevice - 01003227H PUBLIC CODE --- _USBD_SetUsbState + 02000343H PUBLIC XDATA --- myUsbDevice + 01003171H PUBLIC CODE --- _USBD_SetUsbState 00000020H.3 PUBLIC BIT BIT ?_USBD_Write?BIT - 02000107H PUBLIC XDATA BYTE ?_USBD_Write?BYTE - 010018B1H PUBLIC CODE --- _USBD_Write + 02000256H PUBLIC XDATA BYTE ?_USBD_Write?BYTE + 0100178DH PUBLIC CODE --- _USBD_Write 00000020H.0 PUBLIC BIT BIT ?_USBD_Read?BIT - 02000041H PUBLIC XDATA BYTE ?_USBD_Read?BYTE - 01001F61H PUBLIC CODE --- _USBD_Read - 010022B9H PUBLIC CODE --- _USBD_Init - 0100375CH PUBLIC CODE --- _USBD_EpIsBusy - 01003AD2H PUBLIC CODE --- USBD_Connect - 01002734H PUBLIC CODE --- _USBD_AbortTransfer - 01003564H PUBLIC CODE --- USBD_AbortAllTransfers + 02000190H PUBLIC XDATA BYTE ?_USBD_Read?BYTE + 01001D8CH PUBLIC CODE --- _USBD_Read + 0100218FH PUBLIC CODE --- _USBD_Init + 010036A1H PUBLIC CODE --- _USBD_EpIsBusy + 010039E2H PUBLIC CODE --- USBD_Connect + 0100260AH PUBLIC CODE --- _USBD_AbortTransfer + 010034B2H PUBLIC CODE --- USBD_AbortAllTransfers 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 100 + + 000000C8H.6 SFRSYM DATA BIT SCON1_PERR 000000D0H.2 SFRSYM DATA BIT PSW_OV 00000090H SFRSYM DATA BYTE P1 @@ -6434,9 +6472,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000CAH SFRSYM DATA BYTE TMR2RLL 000000FCH SFRSYM DATA BYTE PCA0CPH0 00000092H SFRSYM DATA BYTE TMR3RLL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 100 - - 000000EAH SFRSYM DATA BYTE PCA0CPH1 00000098H.3 SFRSYM DATA BIT SCON0_TB8 000000F0H SFRSYM DATA BIT B_B0 @@ -6464,6 +6499,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B9H SFRSYM DATA BYTE ADC0TK 000000F0H.6 SFRSYM DATA BIT B_B6 000000C5H SFRSYM DATA WORD ADC0LT +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 101 + + 000000D8H.6 SFRSYM DATA BIT UART1FCN1_TXNF 00000098H.5 SFRSYM DATA BIT SCON0_MCE 000000F0H.7 SFRSYM DATA BIT B_B7 @@ -6499,9 +6537,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.2 SFRSYM DATA BIT TMR4CN0_TR4 000000D8H.1 SFRSYM DATA BIT PCA0CN0_CCF1 000000E0H.6 SFRSYM DATA BIT ACC_ACC6 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 101 - - 000000CCH SFRSYM DATA WORD TMR2 0000009AH SFRSYM DATA BYTE SPI0FCN0 000000D8H.2 SFRSYM DATA BIT PCA0CN0_CCF2 @@ -6529,6 +6564,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000EEH SFRSYM DATA BYTE P1MASK 000000FCH SFRSYM DATA BYTE P2MASK 000000D0H.3 SFRSYM DATA BIT PSW_RS0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 102 + + 000000D8H.7 SFRSYM DATA BIT PCA0CN0_CF 0000009EH SFRSYM DATA BYTE PCA0CENT 000000BAH SFRSYM DATA BYTE I2C0CN0 @@ -6564,9 +6602,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B2H SFRSYM DATA BYTE ADC0CN1 000000D8H.6 SFRSYM DATA BIT PCA0CN0_CR 000000A8H.2 SFRSYM DATA BIT IE_EX1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 102 - - 000000C8H.7 SFRSYM DATA BIT SCON1_OVR 00000098H.7 SFRSYM DATA BIT SCON0_SMODE 000000B5H SFRSYM DATA BYTE DEVICEID @@ -6594,6 +6629,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000FAH SFRSYM DATA BYTE PCA0H 000000F5H SFRSYM DATA BYTE I2C0FCT 000000B8H.1 SFRSYM DATA BIT IP_PT0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 103 + + 000000B8H.3 SFRSYM DATA BIT IP_PT1 000000C0H.2 SFRSYM DATA BIT SMB0CN0_ARBLOST 000000B8H.5 SFRSYM DATA BIT IP_PT2 @@ -6629,9 +6667,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.3 SFRSYM DATA BIT P1_B3 00000080H.4 SFRSYM DATA BIT P0_B4 000000A0H.3 SFRSYM DATA BIT P2_B3 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 103 - - 00000090H.4 SFRSYM DATA BIT P1_B4 00000080H.5 SFRSYM DATA BIT P0_B5 000000D8H.1 SFRSYM DATA BIT UART1FCN1_RXTO0 @@ -6659,6 +6694,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H SFRSYM DATA BIT SCON1_RI 00000099H SFRSYM DATA BYTE SBUF0 00000087H SFRSYM DATA BYTE PCON0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 104 + + 000000F2H SFRSYM DATA BYTE IPH 000000C3H SFRSYM DATA BYTE ADC0GTL 00000098H.7 SFRSYM DATA BIT TMR4CN0_TF4H @@ -6694,9 +6732,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F8H.5 SFRSYM DATA BIT SPI0CN0_MODF 000000B8H.6 SFRSYM DATA BIT IP_PSPI0 0000009CH SFRSYM DATA BYTE PCA0CLR -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 104 - - 000000C8H SFRSYM DATA BYTE TMR2CN0 00000091H SFRSYM DATA BYTE TMR3CN0 000000FDH SFRSYM DATA BYTE TMR2CN1 @@ -6724,6 +6759,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000DFH SFRSYM DATA BYTE ADC0PWR 000000A8H.7 SFRSYM DATA BIT IE_EA 000000A4H SFRSYM DATA BYTE TMR4L +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 105 + + 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL @@ -6744,289 +6782,286 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01002AF1H BLOCK CODE --- LVL=0 + 010029C7H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 01003564H BLOCK CODE --- LVL=0 - 01003564H BLOCK CODE NEAR LAB LVL=1 - 02000108H SYMBOL XDATA BYTE i + 010034B2H BLOCK CODE --- LVL=0 + 010034B2H BLOCK CODE NEAR LAB LVL=1 + 02000257H SYMBOL XDATA BYTE i 00000020H.3 SYMBOL BIT BIT usbIntsEnabled - 02000109H SYMBOL XDATA BYTE SfrPageSave + 02000258H SYMBOL XDATA BYTE SfrPageSave --- BLOCKEND --- --- LVL=1 - 01003564H LINE CODE --- #48 - 01003564H LINE CODE --- #49 - 01003564H LINE CODE --- #53 - 0100356AH LINE CODE --- #54 - 01003572H LINE CODE --- #57 - 01003582H LINE CODE --- #58 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 105 - - - 01003582H LINE CODE --- #59 - 01003585H LINE CODE --- #60 - 0100358DH LINE CODE --- #62 - 01003593H LINE CODE --- #63 - 01003599H LINE CODE --- #64 + 010034B2H LINE CODE --- #48 + 010034B2H LINE CODE --- #49 + 010034B2H LINE CODE --- #53 + 010034B8H LINE CODE --- #54 + 010034C0H LINE CODE --- #57 + 010034D0H LINE CODE --- #58 + 010034D0H LINE CODE --- #59 + 010034D3H LINE CODE --- #60 + 010034DBH LINE CODE --- #62 + 010034E1H LINE CODE --- #63 + 010034E7H LINE CODE --- #64 --- BLOCKEND --- --- LVL=0 - 01002734H BLOCK CODE --- LVL=0 - 0200010AH SYMBOL XDATA BYTE epAddr - 01002739H BLOCK CODE NEAR LAB LVL=1 - 0200010BH SYMBOL XDATA --- ep - 0200010DH SYMBOL XDATA BYTE retVal + 0100260AH BLOCK CODE --- LVL=0 + 02000259H SYMBOL XDATA BYTE epAddr + 0100260FH BLOCK CODE NEAR LAB LVL=1 + 0200025AH SYMBOL XDATA --- ep + 0200025CH SYMBOL XDATA BYTE retVal 00000020H.4 SYMBOL BIT BIT usbIntsEnabled - 0200010EH SYMBOL XDATA BYTE SfrPageSave + 0200025DH SYMBOL XDATA BYTE SfrPageSave --- BLOCKEND --- --- LVL=1 - 01002734H LINE CODE --- #66 - 01002739H LINE CODE --- #67 - 01002739H LINE CODE --- #69 - 0100273EH LINE CODE --- #72 - 01002742H LINE CODE --- #75 - 0100274EH LINE CODE --- #76 - 0100274EH LINE CODE --- #77 - 01002758H LINE CODE --- #78 - 0100275EH LINE CODE --- #79 - 01002760H LINE CODE --- #81 - 01002760H LINE CODE --- #82 - 01002768H LINE CODE --- #83 - 01002772H LINE CODE --- #87 - 01002779H LINE CODE --- #88 - 01002779H LINE CODE --- #89 - 01002784H LINE CODE --- #90 - 01002784H LINE CODE --- #92 - 01002784H LINE CODE --- #93 - 01002789H LINE CODE --- #94 - 0100278BH LINE CODE --- #107 - 0100278BH LINE CODE --- #108 - 01002790H LINE CODE --- #109 - 01002790H LINE CODE --- #121 - 01002790H LINE CODE --- #124 - 01002799H LINE CODE --- #125 - 010027A1H LINE CODE --- #126 - 010027A1H LINE CODE --- #127 - 010027A1H LINE CODE --- #129 - 010027A7H LINE CODE --- #130 - 010027ADH LINE CODE --- #132 - 010027B2H LINE CODE --- #133 + 0100260AH LINE CODE --- #66 + 0100260FH LINE CODE --- #67 + 0100260FH LINE CODE --- #69 + 01002614H LINE CODE --- #72 + 01002618H LINE CODE --- #75 + 01002624H LINE CODE --- #76 + 01002624H LINE CODE --- #77 + 0100262EH LINE CODE --- #78 + 01002634H LINE CODE --- #79 + 01002636H LINE CODE --- #81 + 01002636H LINE CODE --- #82 + 0100263EH LINE CODE --- #83 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 106 + + + 01002648H LINE CODE --- #87 + 0100264FH LINE CODE --- #88 + 0100264FH LINE CODE --- #89 + 0100265AH LINE CODE --- #90 + 0100265AH LINE CODE --- #92 + 0100265AH LINE CODE --- #93 + 0100265FH LINE CODE --- #94 + 01002661H LINE CODE --- #107 + 01002661H LINE CODE --- #108 + 01002666H LINE CODE --- #109 + 01002666H LINE CODE --- #121 + 01002666H LINE CODE --- #124 + 0100266FH LINE CODE --- #125 + 01002677H LINE CODE --- #126 + 01002677H LINE CODE --- #127 + 01002677H LINE CODE --- #129 + 0100267DH LINE CODE --- #130 + 01002683H LINE CODE --- #132 + 01002688H LINE CODE --- #133 --- BLOCKEND --- --- LVL=0 - 01003AD2H BLOCK CODE --- LVL=0 - 01003AD2H BLOCK CODE NEAR LAB LVL=1 + 010039E2H BLOCK CODE --- LVL=0 + 010039E2H BLOCK CODE NEAR LAB LVL=1 00000007H SYMBOL DATA BYTE SfrPageSave --- BLOCKEND --- --- LVL=1 - 01003AD2H LINE CODE --- #135 - 01003AD2H LINE CODE --- #136 - 01003AD2H LINE CODE --- #137 - 01003AD4H LINE CODE --- #138 - 01003ADAH LINE CODE --- #139 - 01003AE0H LINE CODE --- #140 - 01003AE6H LINE CODE --- #141 - 01003AE8H LINE CODE --- #142 + 010039E2H LINE CODE --- #135 + 010039E2H LINE CODE --- #136 + 010039E2H LINE CODE --- #137 + 010039E4H LINE CODE --- #138 + 010039EAH LINE CODE --- #139 + 010039F0H LINE CODE --- #140 + 010039F6H LINE CODE --- #141 + 010039F8H LINE CODE --- #142 --- BLOCKEND --- --- LVL=0 00000007H SYMBOL DATA BYTE SfrPageSave -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 106 - - - 0100375CH BLOCK CODE --- LVL=0 - 02000041H SYMBOL XDATA BYTE epAddr - 01003761H BLOCK CODE NEAR LAB LVL=1 + 010036A1H BLOCK CODE --- LVL=0 + 02000190H SYMBOL XDATA BYTE epAddr + 010036A6H BLOCK CODE NEAR LAB LVL=1 00000082H SYMBOL DATA --- ep --- BLOCKEND --- --- LVL=1 - 0100375CH LINE CODE --- #151 - 01003761H LINE CODE --- #152 - 01003761H LINE CODE --- #156 - 01003766H LINE CODE --- #157 - 01003766H LINE CODE --- #158 - 01003770H LINE CODE --- #159 - 01003772H LINE CODE --- #160 - 01003772H LINE CODE --- #162 - 0100377AH LINE CODE --- #164 - 01003781H LINE CODE --- #165 - 01003781H LINE CODE --- #166 - 01003783H LINE CODE --- #167 - 01003783H LINE CODE --- #169 - 01003784H LINE CODE --- #170 + 010036A1H LINE CODE --- #151 + 010036A6H LINE CODE --- #152 + 010036A6H LINE CODE --- #156 + 010036ABH LINE CODE --- #157 + 010036ABH LINE CODE --- #158 + 010036B5H LINE CODE --- #159 + 010036B7H LINE CODE --- #160 + 010036B7H LINE CODE --- #162 + 010036BFH LINE CODE --- #164 + 010036C6H LINE CODE --- #165 + 010036C6H LINE CODE --- #166 + 010036C8H LINE CODE --- #167 + 010036C8H LINE CODE --- #169 + 010036C9H LINE CODE --- #170 --- BLOCKEND --- --- LVL=0 - 010022B9H BLOCK CODE --- LVL=0 - 02000042H SYMBOL XDATA --- p - 010022BFH BLOCK CODE NEAR LAB LVL=1 + 0100218FH BLOCK CODE --- LVL=0 + 02000191H SYMBOL XDATA --- p + 01002195H BLOCK CODE NEAR LAB LVL=1 00000007H SYMBOL DATA BYTE i - 02000045H SYMBOL XDATA BYTE SfrPageSave + 02000194H SYMBOL XDATA BYTE SfrPageSave +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 107 + + --- BLOCKEND --- --- LVL=1 - 010022B9H LINE CODE --- #177 - 010022BFH LINE CODE --- #178 - 010022BFH LINE CODE --- #181 - 010022C5H LINE CODE --- #182 - 010022C8H LINE CODE --- #187 - 010022CBH LINE CODE --- #191 - 010022CDH LINE CODE --- #192 - 010022CDH LINE CODE --- #193 - 010022D9H LINE CODE --- #194 - 010022DEH LINE CODE --- #197 - 010022E7H LINE CODE --- #198 - 010022F3H LINE CODE --- #199 - 010022FFH LINE CODE --- #200 - 0100230CH LINE CODE --- #204 - 0100230FH LINE CODE --- #205 - 01002315H LINE CODE --- #213 - 0100231BH LINE CODE --- #218 - 01002326H LINE CODE --- #219 - 01002331H LINE CODE --- #220 - 01002334H LINE CODE --- #225 - 0100233AH LINE CODE --- #239 - 0100233DH LINE CODE --- #242 - 01002343H LINE CODE --- #243 - 0100234EH LINE CODE --- #245 - 01002350H LINE CODE --- #246 + 0100218FH LINE CODE --- #177 + 01002195H LINE CODE --- #178 + 01002195H LINE CODE --- #181 + 0100219BH LINE CODE --- #182 + 0100219EH LINE CODE --- #187 + 010021A1H LINE CODE --- #191 + 010021A3H LINE CODE --- #192 + 010021A3H LINE CODE --- #193 + 010021AFH LINE CODE --- #194 + 010021B4H LINE CODE --- #197 + 010021BDH LINE CODE --- #198 + 010021C9H LINE CODE --- #199 + 010021D5H LINE CODE --- #200 + 010021E2H LINE CODE --- #204 + 010021E5H LINE CODE --- #205 + 010021EBH LINE CODE --- #213 + 010021F1H LINE CODE --- #218 + 010021FCH LINE CODE --- #219 + 01002207H LINE CODE --- #220 + 0100220AH LINE CODE --- #225 + 01002210H LINE CODE --- #239 + 01002213H LINE CODE --- #242 + 01002219H LINE CODE --- #243 + 01002224H LINE CODE --- #245 + 01002226H LINE CODE --- #246 --- BLOCKEND --- --- LVL=0 - 01001F61H BLOCK CODE --- LVL=0 - 02000041H SYMBOL XDATA BYTE epAddr - 02000042H SYMBOL XDATA --- dat - 02000045H SYMBOL XDATA WORD byteCount + 01001D8CH BLOCK CODE --- LVL=0 + 02000190H SYMBOL XDATA BYTE epAddr + 02000191H SYMBOL XDATA --- dat + 02000194H SYMBOL XDATA WORD byteCount 00000020H.0 SYMBOL BIT BIT callback - 01001F6AH BLOCK CODE NEAR LAB LVL=1 + 01001D95H BLOCK CODE NEAR LAB LVL=1 00000020H.1 SYMBOL BIT BIT usbIntsEnabled -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 107 - - - 02000047H SYMBOL XDATA --- ep - 02000049H SYMBOL XDATA BYTE SfrPageSave + 02000196H SYMBOL XDATA --- ep + 02000198H SYMBOL XDATA BYTE SfrPageSave --- BLOCKEND --- --- LVL=1 - 01001F61H LINE CODE --- #248 - 01001F6AH LINE CODE --- #252 - 01001F6AH LINE CODE --- #256 - 01001F70H LINE CODE --- #259 - 01001F7CH LINE CODE --- #260 - 01001F7CH LINE CODE --- #261 - 01001F7CH LINE CODE --- #263 - 01001F7CH LINE CODE --- #271 - 01001F7CH LINE CODE --- #273 - 01001F7CH LINE CODE --- #281 - 01001F7CH LINE CODE --- #282 - 01001F86H LINE CODE --- #283 - 01001F89H LINE CODE --- #284 - 01001F89H LINE CODE --- #287 - 01001F98H LINE CODE --- #288 - 01001F98H LINE CODE --- #289 - 01001F9BH LINE CODE --- #290 - 01001F9BH LINE CODE --- #292 - 01001F9EH LINE CODE --- #296 - 01001FA6H LINE CODE --- #297 - 01001FA6H LINE CODE --- #298 - 01001FACH LINE CODE --- #299 - 01001FACH LINE CODE --- #300 - 01001FAEH LINE CODE --- #301 - 01001FAEH LINE CODE --- #303 - 01001FAEH LINE CODE --- #304 - 01001FAFH LINE CODE --- #305 - 01001FAFH LINE CODE --- #306 - 01001FAFH LINE CODE --- #308 - 01001FB7H LINE CODE --- #310 - 01001FC3H LINE CODE --- #311 - 01001FD6H LINE CODE --- #312 - 01001FDFH LINE CODE --- #313 - 01001FF1H LINE CODE --- #314 - 01002001H LINE CODE --- #324 - 01002007H LINE CODE --- #325 - 0100200DH LINE CODE --- #327 - 0100200FH LINE CODE --- #328 + 01001D8CH LINE CODE --- #248 + 01001D95H LINE CODE --- #252 + 01001D95H LINE CODE --- #256 + 01001D9BH LINE CODE --- #259 + 01001DA7H LINE CODE --- #260 + 01001DA7H LINE CODE --- #261 + 01001DA7H LINE CODE --- #263 + 01001DA7H LINE CODE --- #271 + 01001DA7H LINE CODE --- #273 + 01001DA7H LINE CODE --- #281 + 01001DA7H LINE CODE --- #282 + 01001DB1H LINE CODE --- #283 + 01001DB4H LINE CODE --- #284 + 01001DB4H LINE CODE --- #287 + 01001DC3H LINE CODE --- #288 + 01001DC3H LINE CODE --- #289 + 01001DC6H LINE CODE --- #290 + 01001DC6H LINE CODE --- #292 + 01001DC9H LINE CODE --- #296 + 01001DD1H LINE CODE --- #297 + 01001DD1H LINE CODE --- #298 + 01001DD7H LINE CODE --- #299 + 01001DD7H LINE CODE --- #300 + 01001DD9H LINE CODE --- #301 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 108 + + + 01001DD9H LINE CODE --- #303 + 01001DD9H LINE CODE --- #304 + 01001DDAH LINE CODE --- #305 + 01001DDAH LINE CODE --- #306 + 01001DDAH LINE CODE --- #308 + 01001DE2H LINE CODE --- #310 + 01001DEEH LINE CODE --- #311 + 01001E01H LINE CODE --- #312 + 01001E0AH LINE CODE --- #313 + 01001E1CH LINE CODE --- #314 + 01001E2CH LINE CODE --- #324 + 01001E32H LINE CODE --- #325 + 01001E38H LINE CODE --- #327 + 01001E3AH LINE CODE --- #328 --- BLOCKEND --- --- LVL=0 00000007H SYMBOL DATA BYTE i - 010018B1H BLOCK CODE --- LVL=0 - 02000107H SYMBOL XDATA BYTE epAddr - 02000108H SYMBOL XDATA --- dat - 0200010BH SYMBOL XDATA WORD byteCount + 0100178DH BLOCK CODE --- LVL=0 + 02000256H SYMBOL XDATA BYTE epAddr + 02000257H SYMBOL XDATA --- dat + 0200025AH SYMBOL XDATA WORD byteCount 00000020H.3 SYMBOL BIT BIT callback - 010018BAH BLOCK CODE NEAR LAB LVL=1 + 01001796H BLOCK CODE NEAR LAB LVL=1 00000020H.4 SYMBOL BIT BIT usbIntsEnabled - 0200010DH SYMBOL XDATA --- ep - 0200010FH SYMBOL XDATA BYTE SfrPageSave + 0200025CH SYMBOL XDATA --- ep + 0200025EH SYMBOL XDATA BYTE SfrPageSave --- BLOCKEND --- --- LVL=1 - 010018B1H LINE CODE --- #601 - 010018BAH LINE CODE --- #605 - 010018BAH LINE CODE --- #609 - 010018C0H LINE CODE --- #612 - 010018CBH LINE CODE --- #613 - 010018CBH LINE CODE --- #614 - 010018CBH LINE CODE --- #616 - 010018CBH LINE CODE --- #624 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 108 + 0100178DH LINE CODE --- #601 + 01001796H LINE CODE --- #605 + 01001796H LINE CODE --- #609 + 0100179CH LINE CODE --- #612 + 010017A7H LINE CODE --- #613 + 010017A7H LINE CODE --- #614 + 010017A7H LINE CODE --- #616 + 010017A7H LINE CODE --- #624 + 010017A7H LINE CODE --- #626 + 010017A7H LINE CODE --- #634 + 010017A7H LINE CODE --- #635 + 010017B1H LINE CODE --- #636 + 010017B4H LINE CODE --- #637 + 010017B4H LINE CODE --- #641 + 010017C3H LINE CODE --- #642 + 010017C3H LINE CODE --- #643 + 010017C6H LINE CODE --- #644 + 010017C6H LINE CODE --- #646 + 010017C9H LINE CODE --- #650 + 010017D1H LINE CODE --- #651 + 010017D1H LINE CODE --- #652 + 010017D7H LINE CODE --- #653 + 010017D7H LINE CODE --- #654 + 010017D9H LINE CODE --- #655 + 010017D9H LINE CODE --- #657 + 010017D9H LINE CODE --- #658 + 010017DAH LINE CODE --- #659 + 010017DAH LINE CODE --- #660 + 010017DAH LINE CODE --- #662 + 010017E2H LINE CODE --- #664 + 010017EEH LINE CODE --- #665 + 01001802H LINE CODE --- #666 + 0100180BH LINE CODE --- #667 + 0100181DH LINE CODE --- #669 + 01001827H LINE CODE --- #670 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 109 - 010018CBH LINE CODE --- #626 - 010018CBH LINE CODE --- #634 - 010018CBH LINE CODE --- #635 - 010018D5H LINE CODE --- #636 - 010018D8H LINE CODE --- #637 - 010018D8H LINE CODE --- #641 - 010018E7H LINE CODE --- #642 - 010018E7H LINE CODE --- #643 - 010018EAH LINE CODE --- #644 - 010018EAH LINE CODE --- #646 - 010018EDH LINE CODE --- #650 - 010018F5H LINE CODE --- #651 - 010018F5H LINE CODE --- #652 - 010018FBH LINE CODE --- #653 - 010018FBH LINE CODE --- #654 - 010018FDH LINE CODE --- #655 - 010018FDH LINE CODE --- #657 - 010018FDH LINE CODE --- #658 - 010018FEH LINE CODE --- #659 - 010018FEH LINE CODE --- #660 - 010018FEH LINE CODE --- #662 - 01001906H LINE CODE --- #664 - 01001912H LINE CODE --- #665 - 01001926H LINE CODE --- #666 - 0100192FH LINE CODE --- #667 - 01001941H LINE CODE --- #669 - 0100194BH LINE CODE --- #670 - 0100194BH LINE CODE --- #673 - 0100194BH LINE CODE --- #674 - 01001952H LINE CODE --- #675 - 01001954H LINE CODE --- #680 - 01001954H LINE CODE --- #681 - 01001974H LINE CODE --- #685 - 01001974H LINE CODE --- #708 - 01001974H LINE CODE --- #710 - 0100197AH LINE CODE --- #711 - 01001980H LINE CODE --- #713 - 01001982H LINE CODE --- #714 + 01001827H LINE CODE --- #673 + 01001827H LINE CODE --- #674 + 0100182EH LINE CODE --- #675 + 01001830H LINE CODE --- #680 + 01001830H LINE CODE --- #681 + 01001850H LINE CODE --- #685 + 01001850H LINE CODE --- #708 + 01001850H LINE CODE --- #710 + 01001856H LINE CODE --- #711 + 0100185CH LINE CODE --- #713 + 0100185EH LINE CODE --- #714 --- BLOCKEND --- --- LVL=0 - 01003227H BLOCK CODE --- LVL=0 - 02000106H SYMBOL XDATA BYTE newState - 0100322CH BLOCK CODE NEAR LAB LVL=1 - 02000107H SYMBOL XDATA BYTE currentState + 01003171H BLOCK CODE --- LVL=0 + 02000255H SYMBOL XDATA BYTE newState + 01003176H BLOCK CODE NEAR LAB LVL=1 + 02000256H SYMBOL XDATA BYTE currentState --- BLOCKEND --- --- LVL=1 - 01003227H LINE CODE --- #719 - 0100322CH LINE CODE --- #720 - 0100322CH LINE CODE --- #726 - 01003234H LINE CODE --- #730 - 01003241H LINE CODE --- #732 - 01003241H LINE CODE --- #733 - 01003244H LINE CODE --- #741 - 01003244H LINE CODE --- #742 - 0100324CH LINE CODE --- #743 - 0100324CH LINE CODE --- #744 - 01003252H LINE CODE --- #745 - 01003252H LINE CODE --- #747 - 0100325BH LINE CODE --- #750 - 01003263H LINE CODE --- #751 - 01003263H LINE CODE --- #752 - 01003266H LINE CODE --- #753 - 01003266H LINE CODE --- #755 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 109 - - + 01003171H LINE CODE --- #719 + 01003176H LINE CODE --- #720 + 01003176H LINE CODE --- #726 + 0100317EH LINE CODE --- #730 + 0100318BH LINE CODE --- #732 + 0100318BH LINE CODE --- #733 + 0100318EH LINE CODE --- #741 + 0100318EH LINE CODE --- #742 + 01003196H LINE CODE --- #743 + 01003196H LINE CODE --- #744 + 0100319CH LINE CODE --- #745 + 0100319CH LINE CODE --- #747 + 010031A5H LINE CODE --- #750 + 010031ADH LINE CODE --- #751 + 010031ADH LINE CODE --- #752 + 010031B0H LINE CODE --- #753 + 010031B0H LINE CODE --- #755 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- EFM8_USBDCH9 - 01003E97H PUBLIC CONST --- txZero - 010028A9H PUBLIC CODE --- USBDCH9_SetupCmd + 01003F36H PUBLIC CONST --- txZero + 0100277FH PUBLIC CODE --- USBDCH9_SetupCmd 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -7049,6 +7084,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000ADH SFRSYM DATA BYTE DERIVID 000000A7H SFRSYM DATA BYTE SFRPAGE 000000A4H SFRSYM DATA BYTE P0MDOUT +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 110 + + 000000BFH SFRSYM DATA BYTE USB0CDSTA 000000A5H SFRSYM DATA BYTE P1MDOUT 000000E8H.5 SFRSYM DATA BIT ADC0CN0_ADINT @@ -7084,9 +7122,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D8H.7 SFRSYM DATA BIT UART1FCN1_TFRQ 000000F0H.4 SFRSYM DATA BIT B_B4 000000DBH SFRSYM DATA BYTE PCA0CPM1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 110 - - 000000EBH SFRSYM DATA BYTE PCA0CPL2 000000F0H.5 SFRSYM DATA BIT B_B5 000000DCH SFRSYM DATA BYTE PCA0CPM2 @@ -7114,6 +7149,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C9H SFRSYM DATA BYTE REG0CN 000000DDH SFRSYM DATA BYTE CRC0IN 000000A6H SFRSYM DATA BYTE CKCON1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 111 + + 000000C8H.2 SFRSYM DATA BIT TMR2CN0_TR2 000000E0H.2 SFRSYM DATA BIT ACC_ACC2 000000C6H SFRSYM DATA BYTE REG1CN @@ -7149,9 +7187,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B6H SFRSYM DATA BYTE USB0CDCF 000000F4H SFRSYM DATA BYTE P3MDIN 000000B9H SFRSYM DATA BYTE I2C0STAT -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 111 - - 000000BBH SFRSYM DATA BYTE I2C0DOUT 00000096H SFRSYM DATA BYTE SBRLH1 000000FEH SFRSYM DATA BYTE P0MASK @@ -7179,6 +7214,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A8H.4 SFRSYM DATA BIT IE_ES0 0000009FH SFRSYM DATA BYTE CMP0MX 00000098H SFRSYM DATA BIT TMR4CN0_T4XCLK0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 112 + + 000000A8H.1 SFRSYM DATA BIT IE_ET0 000000AAH SFRSYM DATA BYTE CMP1MX 00000098H.1 SFRSYM DATA BIT TMR4CN0_T4XCLK1 @@ -7214,9 +7252,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000BCH SFRSYM DATA BYTE I2C0DIN 000000CEH SFRSYM DATA BYTE CRC0CN0 0000008CH SFRSYM DATA BYTE TH0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 112 - - 00000086H SFRSYM DATA BYTE CRC0CN1 000000B8H.4 SFRSYM DATA BIT IP_PS0 000000FAH SFRSYM DATA BYTE UART1FCT @@ -7244,6 +7279,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000088H.1 SFRSYM DATA BIT TCON_IE0 000000A0H SFRSYM DATA BIT P2_B0 00000090H.1 SFRSYM DATA BIT P1_B1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 113 + + 00000080H.2 SFRSYM DATA BIT P0_B2 000000BFH SFRSYM DATA BYTE CMP1CN0 00000099H SFRSYM DATA BYTE CMP0CN1 @@ -7279,9 +7317,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F8H SFRSYM DATA BYTE SPI0CN0 000000C7H SFRSYM DATA BYTE HFO0CAL 00000088H.5 SFRSYM DATA BIT TCON_TF0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 113 - - 00000098H SFRSYM DATA BIT SCON0_RI 000000D6H SFRSYM DATA BYTE HFO1CAL 00000082H SFRSYM DATA BYTE DPL @@ -7309,6 +7344,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E8H.2 SFRSYM DATA BIT ADC0CN0_ADCM2 000000D7H SFRSYM DATA BYTE SFRSTACK 00000098H SFRSYM DATA BYTE SCON0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 114 + + 000000F6H SFRSYM DATA BYTE PRTDRV 000000EDH SFRSYM DATA BYTE P1MAT 000000E8H.3 SFRSYM DATA BIT ADC0CN0_ADWINT @@ -7344,9 +7382,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.4 SFRSYM DATA BIT TMR4CN0_TF4CEN 000000EFH SFRSYM DATA BYTE SMB0FCT 00000096H SFRSYM DATA BYTE PCA0POL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 114 - - 000000CCH SFRSYM DATA BYTE TMR2L 000000F8H.7 SFRSYM DATA BIT SPI0CN0_SPIF 000000AEH SFRSYM DATA BYTE USB0ADR @@ -7373,500 +7408,500 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B6H SFRSYM DATA BYTE REVID 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01002476H SYMBOL CODE --- SetFeature - 01002EC0H SYMBOL CODE --- GetConfiguration - 010039E7H SYMBOL CODE --- USBD_ActivateAllEps - 01001E00H SYMBOL CODE --- SetConfiguration - 01001983H SYMBOL CODE --- GetStatus - 0100398CH SYMBOL CODE --- _EP0_Write - 01003122H SYMBOL CODE --- GetInterface - 0100216AH SYMBOL CODE --- ClearFeature - 0100352DH SYMBOL CODE --- SetInterface - 0100103CH SYMBOL CODE --- GetDescriptor - 0200035BH SYMBOL XDATA WORD pStatus - 01002921H SYMBOL CODE --- SetAddress + 0100234CH SYMBOL CODE --- SetFeature +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 115 - 01002C2DH BLOCK CODE --- LVL=0 + + 01002E06H SYMBOL CODE --- GetConfiguration + 010038A7H SYMBOL CODE --- USBD_ActivateAllEps + 01001C2BH SYMBOL CODE --- SetConfiguration + 0100185FH SYMBOL CODE --- GetStatus + 0100384AH SYMBOL CODE --- _EP0_Write + 010030ADH SYMBOL CODE --- GetInterface + 01002040H SYMBOL CODE --- ClearFeature + 0100347BH SYMBOL CODE --- SetInterface + 01000F10H SYMBOL CODE --- GetDescriptor + 02000392H SYMBOL XDATA WORD pStatus + 010027F7H SYMBOL CODE --- SetAddress + + 01002B6BH BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 010028A9H BLOCK CODE --- LVL=0 - 010028A9H BLOCK CODE NEAR LAB LVL=1 - 02000104H SYMBOL XDATA CHAR status + 0100277FH BLOCK CODE --- LVL=0 + 0100277FH BLOCK CODE NEAR LAB LVL=1 + 02000253H SYMBOL XDATA CHAR status --- BLOCKEND --- --- LVL=1 - 010028A9H LINE CODE --- #48 - 010028A9H LINE CODE --- #49 - 010028A9H LINE CODE --- #50 - 010028AEH LINE CODE --- #52 - 010028D4H LINE CODE --- #53 - 010028D4H LINE CODE --- #54 - 010028D4H LINE CODE --- #55 - 010028D7H LINE CODE --- #56 - 010028D9H LINE CODE --- #58 - 010028D9H LINE CODE --- #59 - 010028DCH LINE CODE --- #60 - 010028DEH LINE CODE --- #62 - 010028DEH LINE CODE --- #63 - 010028E1H LINE CODE --- #64 - 010028E3H LINE CODE --- #66 - 010028E3H LINE CODE --- #67 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 115 + 0100277FH LINE CODE --- #48 + 0100277FH LINE CODE --- #49 + 0100277FH LINE CODE --- #50 + 01002784H LINE CODE --- #52 + 010027AAH LINE CODE --- #53 + 010027AAH LINE CODE --- #54 + 010027AAH LINE CODE --- #55 + 010027ADH LINE CODE --- #56 + 010027AFH LINE CODE --- #58 + 010027AFH LINE CODE --- #59 + 010027B2H LINE CODE --- #60 + 010027B4H LINE CODE --- #62 + 010027B4H LINE CODE --- #63 + 010027B7H LINE CODE --- #64 + 010027B9H LINE CODE --- #66 + 010027B9H LINE CODE --- #67 + 010027BCH LINE CODE --- #68 + 010027BEH LINE CODE --- #70 + 010027BEH LINE CODE --- #71 + 010027C1H LINE CODE --- #72 + 010027C3H LINE CODE --- #74 + 010027C3H LINE CODE --- #75 + 010027C6H LINE CODE --- #76 + 010027C8H LINE CODE --- #78 + 010027C8H LINE CODE --- #79 + 010027CBH LINE CODE --- #80 + 010027CDH LINE CODE --- #82 + 010027CDH LINE CODE --- #83 + 010027D0H LINE CODE --- #84 + 010027D2H LINE CODE --- #86 + 010027D2H LINE CODE --- #87 + 010027DAH LINE CODE --- #88 + 010027DCH LINE CODE --- #90 + 010027DCH LINE CODE --- #91 + 010027E2H LINE CODE --- #92 + 010027E2H LINE CODE --- #93 + 010027E2H LINE CODE --- #96 + 010027E7H LINE CODE --- #99 + 010027EEH LINE CODE --- #100 + 010027EEH LINE CODE --- #101 + 010027F1H LINE CODE --- #102 + 010027F1H LINE CODE --- #104 + 010027F6H LINE CODE --- #105 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 116 - 010028E6H LINE CODE --- #68 - 010028E8H LINE CODE --- #70 - 010028E8H LINE CODE --- #71 - 010028EBH LINE CODE --- #72 - 010028EDH LINE CODE --- #74 - 010028EDH LINE CODE --- #75 - 010028F0H LINE CODE --- #76 - 010028F2H LINE CODE --- #78 - 010028F2H LINE CODE --- #79 - 010028F5H LINE CODE --- #80 - 010028F7H LINE CODE --- #82 - 010028F7H LINE CODE --- #83 - 010028FAH LINE CODE --- #84 - 010028FCH LINE CODE --- #86 - 010028FCH LINE CODE --- #87 - 01002904H LINE CODE --- #88 - 01002906H LINE CODE --- #90 - 01002906H LINE CODE --- #91 - 0100290CH LINE CODE --- #92 - 0100290CH LINE CODE --- #93 - 0100290CH LINE CODE --- #96 - 01002911H LINE CODE --- #99 - 01002918H LINE CODE --- #100 - 01002918H LINE CODE --- #101 - 0100291BH LINE CODE --- #102 - 0100291BH LINE CODE --- #104 - 01002920H LINE CODE --- #105 --- BLOCKEND --- --- LVL=0 - 0100216AH BLOCK CODE --- LVL=0 - 0100216AH BLOCK CODE NEAR LAB LVL=1 - 02000105H SYMBOL XDATA CHAR retVal + 01002040H BLOCK CODE --- LVL=0 + 01002040H BLOCK CODE NEAR LAB LVL=1 + 02000254H SYMBOL XDATA CHAR retVal --- BLOCKEND --- --- LVL=1 - 0100216AH LINE CODE --- #114 - 0100216AH LINE CODE --- #115 - 0100216AH LINE CODE --- #116 - 0100216DH LINE CODE --- #118 - 01002179H LINE CODE --- #119 - 01002179H LINE CODE --- #120 - 01002183H LINE CODE --- #121 - 01002183H LINE CODE --- #134 - 01002183H LINE CODE --- #135 - 01002190H LINE CODE --- #136 - 01002190H LINE CODE --- #139 - 0100219EH LINE CODE --- #141 - 0100219EH LINE CODE --- #142 - 010021A3H LINE CODE --- #143 - 010021A5H LINE CODE --- #144 - 010021B3H LINE CODE --- #146 - 010021B3H LINE CODE --- #147 - 010021B6H LINE CODE --- #148 - 010021BCH LINE CODE --- #151 - 010021C3H LINE CODE --- #152 - 010021C3H LINE CODE --- #153 - 010021CEH LINE CODE --- #154 - 010021CEH LINE CODE --- #157 - 010021D5H LINE CODE --- #158 - 010021D5H LINE CODE --- #159 - 010021EDH LINE CODE --- #160 - 010021EDH LINE CODE --- #163 - 010021F9H LINE CODE --- #164 - 010021F9H LINE CODE --- #166 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 116 - - - 010021F9H LINE CODE --- #167 - 01002201H LINE CODE --- #168 - 01002201H LINE CODE --- #169 - 01002201H LINE CODE --- #170 - 01002201H LINE CODE --- #171 - 01002203H LINE CODE --- #190 - 01002203H LINE CODE --- #191 - 0100220BH LINE CODE --- #192 - 0100220BH LINE CODE --- #193 - 0100220EH LINE CODE --- #194 - 0100220EH LINE CODE --- #195 - 0100220EH LINE CODE --- #213 - 0100220EH LINE CODE --- #214 - 0100220EH LINE CODE --- #215 - 0100220EH LINE CODE --- #216 - 0100220EH LINE CODE --- #217 - 0100220EH LINE CODE --- #218 - 01002213H LINE CODE --- #219 + 01002040H LINE CODE --- #114 + 01002040H LINE CODE --- #115 + 01002040H LINE CODE --- #116 + 01002043H LINE CODE --- #118 + 0100204FH LINE CODE --- #119 + 0100204FH LINE CODE --- #120 + 01002059H LINE CODE --- #121 + 01002059H LINE CODE --- #134 + 01002059H LINE CODE --- #135 + 01002066H LINE CODE --- #136 + 01002066H LINE CODE --- #139 + 01002074H LINE CODE --- #141 + 01002074H LINE CODE --- #142 + 01002079H LINE CODE --- #143 + 0100207BH LINE CODE --- #144 + 01002089H LINE CODE --- #146 + 01002089H LINE CODE --- #147 + 0100208CH LINE CODE --- #148 + 01002092H LINE CODE --- #151 + 01002099H LINE CODE --- #152 + 01002099H LINE CODE --- #153 + 010020A4H LINE CODE --- #154 + 010020A4H LINE CODE --- #157 + 010020ABH LINE CODE --- #158 + 010020ABH LINE CODE --- #159 + 010020C3H LINE CODE --- #160 + 010020C3H LINE CODE --- #163 + 010020CFH LINE CODE --- #164 + 010020CFH LINE CODE --- #166 + 010020CFH LINE CODE --- #167 + 010020D7H LINE CODE --- #168 + 010020D7H LINE CODE --- #169 + 010020D7H LINE CODE --- #170 + 010020D7H LINE CODE --- #171 + 010020D9H LINE CODE --- #190 + 010020D9H LINE CODE --- #191 + 010020E1H LINE CODE --- #192 + 010020E1H LINE CODE --- #193 + 010020E4H LINE CODE --- #194 + 010020E4H LINE CODE --- #195 + 010020E4H LINE CODE --- #213 + 010020E4H LINE CODE --- #214 + 010020E4H LINE CODE --- #215 + 010020E4H LINE CODE --- #216 + 010020E4H LINE CODE --- #217 + 010020E4H LINE CODE --- #218 + 010020E9H LINE CODE --- #219 --- BLOCKEND --- --- LVL=0 - 01002EC0H BLOCK CODE --- LVL=0 - 01002EC0H BLOCK CODE NEAR LAB LVL=1 + 01002E06H BLOCK CODE --- LVL=0 + 01002E06H BLOCK CODE NEAR LAB LVL=1 00000007H SYMBOL DATA CHAR retVal --- BLOCKEND --- --- LVL=1 - 01002EC0H LINE CODE --- #229 - 01002EC0H LINE CODE --- #230 - 01002EC0H LINE CODE --- #231 - 01002EC2H LINE CODE --- #233 - 01002EEEH LINE CODE --- #238 - 01002EEEH LINE CODE --- #239 - 01002EF5H LINE CODE --- #240 - 01002EF5H LINE CODE --- #241 - 01002EFBH LINE CODE --- #242 - 01002EFBH LINE CODE --- #243 - 01002EFDH LINE CODE --- #244 - 01002F04H LINE CODE --- #245 - 01002F04H LINE CODE --- #246 - 01002F11H LINE CODE --- #247 - 01002F13H LINE CODE --- #248 - 01002F13H LINE CODE --- #249 - 01002F13H LINE CODE --- #250 - 01002F13H LINE CODE --- #251 + 01002E06H LINE CODE --- #229 + 01002E06H LINE CODE --- #230 + 01002E06H LINE CODE --- #231 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 117 + + + 01002E08H LINE CODE --- #233 + 01002E34H LINE CODE --- #238 + 01002E34H LINE CODE --- #239 + 01002E3BH LINE CODE --- #240 + 01002E3BH LINE CODE --- #241 + 01002E41H LINE CODE --- #242 + 01002E41H LINE CODE --- #243 + 01002E43H LINE CODE --- #244 + 01002E4AH LINE CODE --- #245 + 01002E4AH LINE CODE --- #246 + 01002E57H LINE CODE --- #247 + 01002E59H LINE CODE --- #248 + 01002E59H LINE CODE --- #249 + 01002E59H LINE CODE --- #250 + 01002E59H LINE CODE --- #251 --- BLOCKEND --- --- LVL=0 - 0100103CH BLOCK CODE --- LVL=0 - 0100103CH BLOCK CODE NEAR LAB LVL=1 - 02000105H SYMBOL XDATA BYTE index + 01000F10H BLOCK CODE --- LVL=0 + 01000F10H BLOCK CODE NEAR LAB LVL=1 + 02000254H SYMBOL XDATA BYTE index 00000004H SYMBOL DATA WORD length - 02000106H SYMBOL XDATA --- dat - 02000109H SYMBOL XDATA CHAR retVal + 02000255H SYMBOL XDATA --- dat + 02000258H SYMBOL XDATA CHAR retVal --- BLOCKEND --- --- LVL=1 - 0100103CH LINE CODE --- #261 - 0100103CH LINE CODE --- #262 - 0100103CH LINE CODE --- #269 - 0100103FH LINE CODE --- #271 - 01001045H LINE CODE --- #273 - 01001050H LINE CODE --- #275 - 01001050H LINE CODE --- #276 - 0100105BH LINE CODE --- #278 - 01001072H LINE CODE --- #279 - 01001072H LINE CODE --- #280 - 01001072H LINE CODE --- #281 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 117 + 01000F10H LINE CODE --- #261 + 01000F10H LINE CODE --- #262 + 01000F10H LINE CODE --- #269 + 01000F13H LINE CODE --- #271 + 01000F19H LINE CODE --- #273 + 01000F24H LINE CODE --- #275 + 01000F24H LINE CODE --- #276 + 01000F2FH LINE CODE --- #278 + 01000F46H LINE CODE --- #279 + 01000F46H LINE CODE --- #280 + 01000F46H LINE CODE --- #281 + 01000F4FH LINE CODE --- #282 + 01000F4FH LINE CODE --- #283 + 01000F4FH LINE CODE --- #284 + 01000F4FH LINE CODE --- #285 + 01000F55H LINE CODE --- #286 + 01000F61H LINE CODE --- #287 + 01000F64H LINE CODE --- #289 + 01000F64H LINE CODE --- #290 + 01000F6DH LINE CODE --- #291 + 01000F6DH LINE CODE --- #292 + 01000F6DH LINE CODE --- #293 + 01000F6DH LINE CODE --- #294 + 01000F73H LINE CODE --- #295 + 01000F87H LINE CODE --- #296 + 01000F89H LINE CODE --- #298 + 01000F89H LINE CODE --- #301 + 01000FA3H LINE CODE --- #305 + 01000FA6H LINE CODE --- #306 + 01000FA6H LINE CODE --- #307 + 01000FA9H LINE CODE --- #308 + 01000FB0H LINE CODE --- #309 + 01000FB2H LINE CODE --- #312 + 01000FC3H LINE CODE --- #313 + 01000FC3H LINE CODE --- #315 + 01000FD0H LINE CODE --- #316 + 01000FD0H LINE CODE --- #317 + 01000FDDH LINE CODE --- #318 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 118 - 0100107BH LINE CODE --- #282 - 0100107BH LINE CODE --- #283 - 0100107BH LINE CODE --- #284 - 0100107BH LINE CODE --- #285 - 01001081H LINE CODE --- #286 - 0100108DH LINE CODE --- #287 - 01001090H LINE CODE --- #289 - 01001090H LINE CODE --- #290 - 01001099H LINE CODE --- #291 - 01001099H LINE CODE --- #292 - 01001099H LINE CODE --- #293 - 01001099H LINE CODE --- #294 - 0100109FH LINE CODE --- #295 - 010010B3H LINE CODE --- #296 - 010010B5H LINE CODE --- #298 - 010010B5H LINE CODE --- #301 - 010010CFH LINE CODE --- #305 - 010010D2H LINE CODE --- #306 - 010010D2H LINE CODE --- #307 - 010010D5H LINE CODE --- #308 - 010010DCH LINE CODE --- #309 - 010010DEH LINE CODE --- #312 - 010010EFH LINE CODE --- #313 - 010010EFH LINE CODE --- #315 - 010010FCH LINE CODE --- #316 - 010010FCH LINE CODE --- #317 - 01001109H LINE CODE --- #318 - 01001118H LINE CODE --- #319 - 01001122H LINE CODE --- #320 - 01001129H LINE CODE --- #321 - 01001129H LINE CODE --- #322 - 01001129H LINE CODE --- #364 - 01001129H LINE CODE --- #368 - 0100112DH LINE CODE --- #369 - 0100112DH LINE CODE --- #370 - 0100113BH LINE CODE --- #371 - 0100113BH LINE CODE --- #372 - 0100113FH LINE CODE --- #373 - 0100113FH LINE CODE --- #375 - 01001148H LINE CODE --- #377 - 0100114DH LINE CODE --- #378 - 0100114DH LINE CODE --- #379 - 0100114DH LINE CODE --- #381 - 01001152H LINE CODE --- #382 + 01000FECH LINE CODE --- #319 + 01000FF6H LINE CODE --- #320 + 01000FFDH LINE CODE --- #321 + 01000FFDH LINE CODE --- #322 + 01000FFDH LINE CODE --- #364 + 01000FFDH LINE CODE --- #368 + 01001001H LINE CODE --- #369 + 01001001H LINE CODE --- #370 + 0100100FH LINE CODE --- #371 + 0100100FH LINE CODE --- #372 + 01001013H LINE CODE --- #373 + 01001013H LINE CODE --- #375 + 0100101CH LINE CODE --- #377 + 01001021H LINE CODE --- #378 + 01001021H LINE CODE --- #379 + 01001021H LINE CODE --- #381 + 01001026H LINE CODE --- #382 --- BLOCKEND --- --- LVL=0 - 01003122H BLOCK CODE --- LVL=0 - 01003122H BLOCK CODE NEAR LAB LVL=1 + 010030ADH BLOCK CODE --- LVL=0 + 010030ADH BLOCK CODE NEAR LAB LVL=1 00000006H SYMBOL DATA WORD interface 00000005H SYMBOL DATA CHAR retVal --- BLOCKEND --- --- LVL=1 - 01003122H LINE CODE --- #391 - 01003122H LINE CODE --- #392 - 01003122H LINE CODE --- #393 - 01003126H LINE CODE --- #394 - 01003128H LINE CODE --- #399 - 0100314BH LINE CODE --- #401 - 0100314BH LINE CODE --- #402 - 01003152H LINE CODE --- #403 - 01003152H LINE CODE --- #409 - 0100315FH LINE CODE --- #411 - 01003161H LINE CODE --- #412 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 118 - - - 01003161H LINE CODE --- #413 - 01003161H LINE CODE --- #414 - 01003163H LINE CODE --- #415 + 010030ADH LINE CODE --- #391 + 010030ADH LINE CODE --- #392 + 010030ADH LINE CODE --- #393 + 010030B1H LINE CODE --- #394 + 010030B3H LINE CODE --- #399 + 010030D6H LINE CODE --- #401 + 010030D6H LINE CODE --- #402 + 010030DDH LINE CODE --- #403 + 010030DDH LINE CODE --- #409 + 010030EAH LINE CODE --- #411 + 010030ECH LINE CODE --- #412 + 010030ECH LINE CODE --- #413 + 010030ECH LINE CODE --- #414 + 010030EEH LINE CODE --- #415 --- BLOCKEND --- --- LVL=0 - 01001983H BLOCK CODE --- LVL=0 - 01001983H BLOCK CODE NEAR LAB LVL=1 - 02000105H SYMBOL XDATA CHAR retVal + 0100185FH BLOCK CODE --- LVL=0 + 0100185FH BLOCK CODE NEAR LAB LVL=1 + 02000254H SYMBOL XDATA CHAR retVal --- BLOCKEND --- --- LVL=1 - 01001983H LINE CODE --- #424 - 01001983H LINE CODE --- #425 - 01001983H LINE CODE --- #426 - 01001986H LINE CODE --- #428 - 010019B4H LINE CODE --- #432 - 010019B4H LINE CODE --- #433 - 010019BBH LINE CODE --- #435 - 010019C8H LINE CODE --- #436 - 010019C8H LINE CODE --- #437 - 010019C8H LINE CODE --- #438 - 010019D2H LINE CODE --- #439 - 010019D2H LINE CODE --- #450 - 010019D7H LINE CODE --- #451 - 010019D7H LINE CODE --- #452 - 010019E1H LINE CODE --- #453 - 010019E1H LINE CODE --- #458 - 010019E1H LINE CODE --- #459 - 010019E1H LINE CODE --- #460 - 010019E3H LINE CODE --- #462 - 010019E3H LINE CODE --- #463 - 010019F2H LINE CODE --- #464 - 010019F2H LINE CODE --- #465 - 010019F2H LINE CODE --- #466 - 010019F2H LINE CODE --- #467 - 010019F4H LINE CODE --- #470 - 010019F4H LINE CODE --- #473 - 01001A04H LINE CODE --- #475 - 01001A04H LINE CODE --- #476 - 01001A04H LINE CODE --- #477 - 01001A06H LINE CODE --- #478 - 01001A0DH LINE CODE --- #479 - 01001A0DH LINE CODE --- #480 - 01001A16H LINE CODE --- #481 - 01001A16H LINE CODE --- #483 - 01001A16H LINE CODE --- #484 - 01001A1DH LINE CODE --- #485 - 01001A1DH LINE CODE --- #486 - 01001A20H LINE CODE --- #487 - 01001A20H LINE CODE --- #488 - 01001A20H LINE CODE --- #489 - 01001A22H LINE CODE --- #510 - 01001A22H LINE CODE --- #511 - 01001A29H LINE CODE --- #512 - 01001A29H LINE CODE --- #513 - 01001A2CH LINE CODE --- #514 - 01001A2CH LINE CODE --- #515 - 01001A31H LINE CODE --- #516 - 01001A31H LINE CODE --- #536 - 01001A31H LINE CODE --- #537 - 01001A31H LINE CODE --- #538 - 01001A31H LINE CODE --- #539 - 01001A31H LINE CODE --- #542 - 01001A37H LINE CODE --- #543 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 119 + 0100185FH LINE CODE --- #424 + 0100185FH LINE CODE --- #425 + 0100185FH LINE CODE --- #426 + 01001862H LINE CODE --- #428 + 01001890H LINE CODE --- #432 + 01001890H LINE CODE --- #433 + 01001897H LINE CODE --- #435 + 010018A4H LINE CODE --- #436 + 010018A4H LINE CODE --- #437 + 010018A4H LINE CODE --- #438 + 010018AEH LINE CODE --- #439 + 010018AEH LINE CODE --- #450 + 010018B3H LINE CODE --- #451 + 010018B3H LINE CODE --- #452 + 010018BDH LINE CODE --- #453 + 010018BDH LINE CODE --- #458 + 010018BDH LINE CODE --- #459 + 010018BDH LINE CODE --- #460 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 119 - 01001A37H LINE CODE --- #544 - 01001A43H LINE CODE --- #545 - 01001A43H LINE CODE --- #546 - 01001A43H LINE CODE --- #548 - 01001A48H LINE CODE --- #549 + 010018BFH LINE CODE --- #462 + 010018BFH LINE CODE --- #463 + 010018CEH LINE CODE --- #464 + 010018CEH LINE CODE --- #465 + 010018CEH LINE CODE --- #466 + 010018CEH LINE CODE --- #467 + 010018D0H LINE CODE --- #470 + 010018D0H LINE CODE --- #473 + 010018E0H LINE CODE --- #475 + 010018E0H LINE CODE --- #476 + 010018E0H LINE CODE --- #477 + 010018E2H LINE CODE --- #478 + 010018E9H LINE CODE --- #479 + 010018E9H LINE CODE --- #480 + 010018F2H LINE CODE --- #481 + 010018F2H LINE CODE --- #483 + 010018F2H LINE CODE --- #484 + 010018F9H LINE CODE --- #485 + 010018F9H LINE CODE --- #486 + 010018FCH LINE CODE --- #487 + 010018FCH LINE CODE --- #488 + 010018FCH LINE CODE --- #489 + 010018FEH LINE CODE --- #510 + 010018FEH LINE CODE --- #511 + 01001905H LINE CODE --- #512 + 01001905H LINE CODE --- #513 + 01001908H LINE CODE --- #514 + 01001908H LINE CODE --- #515 + 0100190DH LINE CODE --- #516 + 0100190DH LINE CODE --- #536 + 0100190DH LINE CODE --- #537 + 0100190DH LINE CODE --- #538 + 0100190DH LINE CODE --- #539 + 0100190DH LINE CODE --- #542 + 01001913H LINE CODE --- #543 + 01001913H LINE CODE --- #544 + 0100191FH LINE CODE --- #545 + 0100191FH LINE CODE --- #546 + 0100191FH LINE CODE --- #548 + 01001924H LINE CODE --- #549 --- BLOCKEND --- --- LVL=0 - 01002921H BLOCK CODE --- LVL=0 - 01002921H BLOCK CODE NEAR LAB LVL=1 - 02000105H SYMBOL XDATA CHAR retVal + 010027F7H BLOCK CODE --- LVL=0 + 010027F7H BLOCK CODE NEAR LAB LVL=1 + 02000254H SYMBOL XDATA CHAR retVal --- BLOCKEND --- --- LVL=1 - 01002921H LINE CODE --- #557 - 01002921H LINE CODE --- #558 - 01002921H LINE CODE --- #559 - 01002927H LINE CODE --- #561 - 01002950H LINE CODE --- #565 - 01002950H LINE CODE --- #568 - 01002957H LINE CODE --- #569 - 01002957H LINE CODE --- #570 - 0100295BH LINE CODE --- #571 - 0100295BH LINE CODE --- #572 - 01002960H LINE CODE --- #573 - 01002960H LINE CODE --- #574 - 01002960H LINE CODE --- #575 - 01002962H LINE CODE --- #578 - 01002969H LINE CODE --- #579 - 01002969H LINE CODE --- #580 - 01002973H LINE CODE --- #581 - 01002973H LINE CODE --- #582 - 01002978H LINE CODE --- #583 - 01002978H LINE CODE --- #584 - 0100297DH LINE CODE --- #585 - 0100297DH LINE CODE --- #588 - 01002983H LINE CODE --- #589 - 01002983H LINE CODE --- #590 - 01002993H LINE CODE --- #591 - 01002993H LINE CODE --- #592 - 01002993H LINE CODE --- #594 - 01002998H LINE CODE --- #595 + 010027F7H LINE CODE --- #557 + 010027F7H LINE CODE --- #558 + 010027F7H LINE CODE --- #559 + 010027FDH LINE CODE --- #561 + 01002826H LINE CODE --- #565 + 01002826H LINE CODE --- #568 + 0100282DH LINE CODE --- #569 + 0100282DH LINE CODE --- #570 + 01002831H LINE CODE --- #571 + 01002831H LINE CODE --- #572 + 01002836H LINE CODE --- #573 + 01002836H LINE CODE --- #574 + 01002836H LINE CODE --- #575 + 01002838H LINE CODE --- #578 + 0100283FH LINE CODE --- #579 + 0100283FH LINE CODE --- #580 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 120 + + + 01002849H LINE CODE --- #581 + 01002849H LINE CODE --- #582 + 0100284EH LINE CODE --- #583 + 0100284EH LINE CODE --- #584 + 01002853H LINE CODE --- #585 + 01002853H LINE CODE --- #588 + 01002859H LINE CODE --- #589 + 01002859H LINE CODE --- #590 + 01002869H LINE CODE --- #591 + 01002869H LINE CODE --- #592 + 01002869H LINE CODE --- #594 + 0100286EH LINE CODE --- #595 --- BLOCKEND --- --- LVL=0 - 01001E00H BLOCK CODE --- LVL=0 - 01001E00H BLOCK CODE NEAR LAB LVL=1 - 02000105H SYMBOL XDATA CHAR retVal + 01001C2BH BLOCK CODE --- LVL=0 + 01001C2BH BLOCK CODE NEAR LAB LVL=1 + 02000254H SYMBOL XDATA CHAR retVal --- BLOCKEND --- --- LVL=1 - 01001E00H LINE CODE --- #603 - 01001E00H LINE CODE --- #604 - 01001E00H LINE CODE --- #605 - 01001E06H LINE CODE --- #607 - 01001E33H LINE CODE --- #611 - 01001E33H LINE CODE --- #614 - 01001E3BH LINE CODE --- #615 - 01001E3BH LINE CODE --- #616 - 01001E4EH LINE CODE --- #618 - 01001E4EH LINE CODE --- #619 - 01001E51H LINE CODE --- #620 - 01001E61H LINE CODE --- #621 - 01001E61H LINE CODE --- #622 - 01001E66H LINE CODE --- #623 - 01001E6BH LINE CODE --- #624 - 01001E6BH LINE CODE --- #625 - 01001E6BH LINE CODE --- #626 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 120 - - - 01001E6BH LINE CODE --- #627 - 01001E6DH LINE CODE --- #630 - 01001E72H LINE CODE --- #631 - 01001E72H LINE CODE --- #632 - 01001E8BH LINE CODE --- #634 - 01001E8BH LINE CODE --- #635 - 01001E8EH LINE CODE --- #636 - 01001E98H LINE CODE --- #637 - 01001E98H LINE CODE --- #638 - 01001E9DH LINE CODE --- #639 - 01001EA0H LINE CODE --- #640 - 01001EA2H LINE CODE --- #642 - 01001EA2H LINE CODE --- #644 - 01001EA7H LINE CODE --- #645 - 01001EA7H LINE CODE --- #646 - 01001EACH LINE CODE --- #647 - 01001EACH LINE CODE --- #648 - 01001EACH LINE CODE --- #649 - 01001EACH LINE CODE --- #651 - 01001EB1H LINE CODE --- #652 + 01001C2BH LINE CODE --- #603 + 01001C2BH LINE CODE --- #604 + 01001C2BH LINE CODE --- #605 + 01001C31H LINE CODE --- #607 + 01001C5EH LINE CODE --- #611 + 01001C5EH LINE CODE --- #614 + 01001C66H LINE CODE --- #615 + 01001C66H LINE CODE --- #616 + 01001C79H LINE CODE --- #618 + 01001C79H LINE CODE --- #619 + 01001C7CH LINE CODE --- #620 + 01001C8CH LINE CODE --- #621 + 01001C8CH LINE CODE --- #622 + 01001C91H LINE CODE --- #623 + 01001C96H LINE CODE --- #624 + 01001C96H LINE CODE --- #625 + 01001C96H LINE CODE --- #626 + 01001C96H LINE CODE --- #627 + 01001C98H LINE CODE --- #630 + 01001C9DH LINE CODE --- #631 + 01001C9DH LINE CODE --- #632 + 01001CB6H LINE CODE --- #634 + 01001CB6H LINE CODE --- #635 + 01001CB9H LINE CODE --- #636 + 01001CC3H LINE CODE --- #637 + 01001CC3H LINE CODE --- #638 + 01001CC8H LINE CODE --- #639 + 01001CCBH LINE CODE --- #640 + 01001CCDH LINE CODE --- #642 + 01001CCDH LINE CODE --- #644 + 01001CD2H LINE CODE --- #645 + 01001CD2H LINE CODE --- #646 + 01001CD7H LINE CODE --- #647 + 01001CD7H LINE CODE --- #648 + 01001CD7H LINE CODE --- #649 + 01001CD7H LINE CODE --- #651 + 01001CDCH LINE CODE --- #652 --- BLOCKEND --- --- LVL=0 - 01002476H BLOCK CODE --- LVL=0 - 01002476H BLOCK CODE NEAR LAB LVL=1 - 02000105H SYMBOL XDATA CHAR retVal + 0100234CH BLOCK CODE --- LVL=0 + 0100234CH BLOCK CODE NEAR LAB LVL=1 + 02000254H SYMBOL XDATA CHAR retVal --- BLOCKEND --- --- LVL=1 - 01002476H LINE CODE --- #660 - 01002476H LINE CODE --- #661 - 01002476H LINE CODE --- #662 - 01002479H LINE CODE --- #664 - 01002485H LINE CODE --- #665 - 01002485H LINE CODE --- #666 - 0100248CH LINE CODE --- #667 - 0100248CH LINE CODE --- #679 - 0100248CH LINE CODE --- #682 - 0100249AH LINE CODE --- #684 - 0100249AH LINE CODE --- #685 - 0100249FH LINE CODE --- #686 - 010024A1H LINE CODE --- #687 - 010024B9H LINE CODE --- #690 - 010024B9H LINE CODE --- #691 - 010024BCH LINE CODE --- #692 - 010024C2H LINE CODE --- #696 - 010024C9H LINE CODE --- #697 - 010024C9H LINE CODE --- #698 - 010024D4H LINE CODE --- #699 - 010024D4H LINE CODE --- #702 - 010024DBH LINE CODE --- #703 - 010024DBH LINE CODE --- #704 - 010024EBH LINE CODE --- #705 - 010024EBH LINE CODE --- #709 - 010024F7H LINE CODE --- #710 - 010024F7H LINE CODE --- #712 - 010024F7H LINE CODE --- #713 - 010024FAH LINE CODE --- #714 - 010024FCH LINE CODE --- #727 - 010024FCH LINE CODE --- #728 - 01002502H LINE CODE --- #729 - 01002502H LINE CODE --- #741 - 01002502H LINE CODE --- #742 - 01002502H LINE CODE --- #743 - 01002502H LINE CODE --- #744 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 121 + 0100234CH LINE CODE --- #660 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 121 - 01002502H LINE CODE --- #746 - 01002507H LINE CODE --- #747 + 0100234CH LINE CODE --- #661 + 0100234CH LINE CODE --- #662 + 0100234FH LINE CODE --- #664 + 0100235BH LINE CODE --- #665 + 0100235BH LINE CODE --- #666 + 01002362H LINE CODE --- #667 + 01002362H LINE CODE --- #679 + 01002362H LINE CODE --- #682 + 01002370H LINE CODE --- #684 + 01002370H LINE CODE --- #685 + 01002375H LINE CODE --- #686 + 01002377H LINE CODE --- #687 + 0100238FH LINE CODE --- #690 + 0100238FH LINE CODE --- #691 + 01002392H LINE CODE --- #692 + 01002398H LINE CODE --- #696 + 0100239FH LINE CODE --- #697 + 0100239FH LINE CODE --- #698 + 010023AAH LINE CODE --- #699 + 010023AAH LINE CODE --- #702 + 010023B1H LINE CODE --- #703 + 010023B1H LINE CODE --- #704 + 010023C1H LINE CODE --- #705 + 010023C1H LINE CODE --- #709 + 010023CDH LINE CODE --- #710 + 010023CDH LINE CODE --- #712 + 010023CDH LINE CODE --- #713 + 010023D0H LINE CODE --- #714 + 010023D2H LINE CODE --- #727 + 010023D2H LINE CODE --- #728 + 010023D8H LINE CODE --- #729 + 010023D8H LINE CODE --- #741 + 010023D8H LINE CODE --- #742 + 010023D8H LINE CODE --- #743 + 010023D8H LINE CODE --- #744 + 010023D8H LINE CODE --- #746 + 010023DDH LINE CODE --- #747 --- BLOCKEND --- --- LVL=0 - 0100352DH BLOCK CODE --- LVL=0 - 0100352DH BLOCK CODE NEAR LAB LVL=1 + 0100347BH BLOCK CODE --- LVL=0 + 0100347BH BLOCK CODE NEAR LAB LVL=1 00000007H SYMBOL DATA CHAR retVal 00000006H SYMBOL DATA BYTE interface 00000005H SYMBOL DATA BYTE altSetting --- BLOCKEND --- --- LVL=1 - 0100352DH LINE CODE --- #755 - 0100352DH LINE CODE --- #756 - 0100352DH LINE CODE --- #757 - 0100352FH LINE CODE --- #758 - 01003535H LINE CODE --- #759 - 0100353BH LINE CODE --- #761 - 0100355CH LINE CODE --- #768 - 0100355CH LINE CODE --- #778 - 01003561H LINE CODE --- #780 - 01003563H LINE CODE --- #782 - 01003563H LINE CODE --- #784 - 01003563H LINE CODE --- #785 + 0100347BH LINE CODE --- #755 + 0100347BH LINE CODE --- #756 + 0100347BH LINE CODE --- #757 + 0100347DH LINE CODE --- #758 + 01003483H LINE CODE --- #759 + 01003489H LINE CODE --- #761 + 010034AAH LINE CODE --- #768 + 010034AAH LINE CODE --- #778 + 010034AFH LINE CODE --- #780 + 010034B1H LINE CODE --- #782 + 010034B1H LINE CODE --- #784 + 010034B1H LINE CODE --- #785 --- BLOCKEND --- --- LVL=0 - 010039E7H BLOCK CODE --- LVL=0 + 010038A7H BLOCK CODE --- LVL=0 00000020H.3 SYMBOL BIT BIT forceIdle - 010039E7H LINE CODE --- #796 - 010039E7H LINE CODE --- #797 - 010039E7H LINE CODE --- #798 - 010039EAH LINE CODE --- #799 - 010039EAH LINE CODE --- #801 - 010039F0H LINE CODE --- #810 - 010039F4H LINE CODE --- #818 - 010039F4H LINE CODE --- #821 - 010039FCH LINE CODE --- #842 + 010038A7H LINE CODE --- #796 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 122 + + + 010038A7H LINE CODE --- #797 + 010038A7H LINE CODE --- #798 + 010038AAH LINE CODE --- #799 + 010038AAH LINE CODE --- #801 + 010038B0H LINE CODE --- #810 + 010038B4H LINE CODE --- #818 + 010038B4H LINE CODE --- #821 + 010038BCH LINE CODE --- #842 --- BLOCKEND --- --- LVL=0 - 0100398CH BLOCK CODE --- LVL=0 + 0100384AH BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- dat 00000004H SYMBOL DATA WORD numBytes - 0100398CH LINE CODE --- #871 - 0100398CH LINE CODE --- #872 - 0100398CH LINE CODE --- #873 - 01003993H LINE CODE --- #874 - 01003993H LINE CODE --- #875 - 01003999H LINE CODE --- #876 - 010039A3H LINE CODE --- #877 - 010039A7H LINE CODE --- #878 - 010039AAH LINE CODE --- #879 - 010039AAH LINE CODE --- #880 + 0100384AH LINE CODE --- #871 + 0100384AH LINE CODE --- #872 + 0100384AH LINE CODE --- #873 + 01003851H LINE CODE --- #874 + 01003851H LINE CODE --- #875 + 01003857H LINE CODE --- #876 + 01003861H LINE CODE --- #877 + 01003865H LINE CODE --- #878 + 01003868H LINE CODE --- #879 + 01003868H LINE CODE --- #880 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- EFM8_USBDEP 00000020H.5 PUBLIC BIT BIT ?_USB_WriteFIFO?BIT - 01002A0FH PUBLIC CODE --- _USB_WriteFIFO - 01002CF4H PUBLIC CODE --- _USB_ReadFIFO - 01001464H PUBLIC CODE --- handleUsbOut1Int - 01002214H PUBLIC CODE --- handleUsbIn1Int + 010028E5H PUBLIC CODE --- _USB_WriteFIFO + 01002C32H PUBLIC CODE --- _USB_ReadFIFO + 01001338H PUBLIC CODE --- handleUsbOut1Int + 010020EAH PUBLIC CODE --- handleUsbIn1Int 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR 000000D0H.2 SFRSYM DATA BIT PSW_OV -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 122 - - 00000090H SFRSYM DATA BYTE P1 000000F8H.1 SFRSYM DATA BIT SPI0CN0_TXNF 00000097H SFRSYM DATA BYTE WDTCN @@ -7894,6 +7929,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000093H SFRSYM DATA BYTE TMR3RLH 0000009CH SFRSYM DATA BYTE P3MDOUT 000000A3H SFRSYM DATA BYTE TMR4RLH +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 123 + + 000000F3H SFRSYM DATA BYTE EIP1 000000F4H SFRSYM DATA BYTE EIP2 00000098H.2 SFRSYM DATA BIT SCON0_RB8 @@ -7929,9 +7967,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C5H SFRSYM DATA WORD ADC0LT 000000D8H.6 SFRSYM DATA BIT UART1FCN1_TXNF 00000098H.5 SFRSYM DATA BIT SCON0_MCE -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 123 - - 000000F0H.7 SFRSYM DATA BIT B_B7 000000C3H SFRSYM DATA BYTE SMB0FCN0 000000E1H SFRSYM DATA BYTE XBR0 @@ -7959,6 +7994,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E0H.4 SFRSYM DATA BIT ACC_ACC4 000000B1H SFRSYM DATA BYTE LFO0CN 000000ABH SFRSYM DATA BYTE CMP1MD +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 124 + + 000000D8H SFRSYM DATA BIT PCA0CN0_CCF0 000000E0H.5 SFRSYM DATA BIT ACC_ACC5 000000B5H SFRSYM DATA BYTE USB0CF @@ -7994,9 +8032,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D0H.3 SFRSYM DATA BIT PSW_RS0 000000D8H.7 SFRSYM DATA BIT PCA0CN0_CF 0000009EH SFRSYM DATA BYTE PCA0CENT -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 124 - - 000000BAH SFRSYM DATA BYTE I2C0CN0 000000D2H SFRSYM DATA BYTE CRC0ST 000000F8H.4 SFRSYM DATA BIT SPI0CN0_RXOVRN @@ -8024,6 +8059,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A8H.5 SFRSYM DATA BIT IE_ET2 000000D5H SFRSYM DATA BYTE P1SKIP 000000CCH SFRSYM DATA BYTE P2SKIP +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 125 + + 000000E8H SFRSYM DATA BYTE ADC0CN0 000000D8H.4 SFRSYM DATA BIT UART1FCN1_TIE 000000A8H SFRSYM DATA BIT IE_EX0 @@ -8059,9 +8097,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B8H.1 SFRSYM DATA BIT IP_PT0 000000B8H.3 SFRSYM DATA BIT IP_PT1 000000C0H.2 SFRSYM DATA BIT SMB0CN0_ARBLOST -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 125 - - 000000B8H.5 SFRSYM DATA BIT IP_PT2 0000008AH SFRSYM DATA BYTE TL0 000000D0H.5 SFRSYM DATA BIT PSW_F0 @@ -8089,6 +8124,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.2 SFRSYM DATA BIT P1_B2 00000080H.3 SFRSYM DATA BIT P0_B3 000000C0H SFRSYM DATA BYTE SMB0CN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 126 + + 000000ACH SFRSYM DATA BYTE CMP1CN1 000000B0H.1 SFRSYM DATA BIT P3_B1 000000A0H.2 SFRSYM DATA BIT P2_B2 @@ -8124,9 +8162,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000087H SFRSYM DATA BYTE PCON0 000000F2H SFRSYM DATA BYTE IPH 000000C3H SFRSYM DATA BYTE ADC0GTL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 126 - - 00000098H.7 SFRSYM DATA BIT TMR4CN0_TF4H 00000098H.3 SFRSYM DATA BIT TMR4CN0_T4SPLIT 000000C8H.6 SFRSYM DATA BIT TMR2CN0_TF2L @@ -8154,6 +8189,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H SFRSYM DATA BYTE SCON1 000000FBH SFRSYM DATA BYTE P2MAT 00000098H.6 SFRSYM DATA BIT TMR4CN0_TF4L +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 127 + + 000000E8H.4 SFRSYM DATA BIT ADC0CN0_ADBUSY 000000D6H SFRSYM DATA BYTE SMB0ADM 000000C5H SFRSYM DATA BYTE ADC0LTL @@ -8189,9 +8227,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A4H SFRSYM DATA BYTE TMR4L 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 127 - - 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY @@ -8209,276 +8244,279 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B6H SFRSYM DATA BYTE REVID 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01003A04H SYMBOL CODE --- _USB_ReadFIFO_Idata - 010039ABH SYMBOL CODE --- _USB_ReadFIFO_Pdata - 010038ADH SYMBOL CODE --- _USB_ReadFIFO_Xdata - 01003B6BH SYMBOL CODE --- _USB_WriteFIFO_Idata - 01003B7FH SYMBOL CODE --- _USB_WriteFIFO_Pdata - 01003B17H SYMBOL CODE --- _USB_WriteFIFO_Xdata - 01003AE9H SYMBOL CODE --- _USB_WriteFIFO_Code + 010038C4H SYMBOL CODE --- _USB_ReadFIFO_Idata + 01003869H SYMBOL CODE --- _USB_ReadFIFO_Pdata + 010037C9H SYMBOL CODE --- _USB_ReadFIFO_Xdata + 01003A7EH SYMBOL CODE --- _USB_WriteFIFO_Idata + 01003A92H SYMBOL CODE --- _USB_WriteFIFO_Pdata + 01003A3EH SYMBOL CODE --- _USB_WriteFIFO_Xdata + 010039F9H SYMBOL CODE --- _USB_WriteFIFO_Code - 01003847H BLOCK CODE --- LVL=0 + 01003763H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 128 - 01002214H BLOCK CODE --- LVL=0 - 01002214H BLOCK CODE NEAR LAB LVL=1 - 02000104H SYMBOL XDATA BYTE xferred + + + 010020EAH BLOCK CODE --- LVL=0 + 010020EAH BLOCK CODE NEAR LAB LVL=1 + 02000253H SYMBOL XDATA BYTE xferred 00000020H.3 SYMBOL BIT BIT callback --- BLOCKEND --- --- LVL=1 - 01002214H LINE CODE --- #121 - 01002214H LINE CODE --- #122 - 01002214H LINE CODE --- #126 - 01002219H LINE CODE --- #128 - 0100221EH LINE CODE --- #129 - 0100221EH LINE CODE --- #130 - 0100222EH LINE CODE --- #132 - 01002239H LINE CODE --- #133 - 01002239H LINE CODE --- #134 - 0100224CH LINE CODE --- #136 - 0100225BH LINE CODE --- #137 - 01002264H LINE CODE --- #139 - 0100226BH LINE CODE --- #142 - 01002275H LINE CODE --- #143 - 01002275H LINE CODE --- #144 - 01002295H LINE CODE --- #150 - 01002297H LINE CODE --- #152 - 01002297H LINE CODE --- #153 - 0100229EH LINE CODE --- #154 - 010022A4H LINE CODE --- #155 - 010022A4H LINE CODE --- #157 - 010022A7H LINE CODE --- #158 - 010022A7H LINE CODE --- #159 - 010022B8H LINE CODE --- #160 - 010022B8H LINE CODE --- #162 - 010022B8H LINE CODE --- #163 + 010020EAH LINE CODE --- #121 + 010020EAH LINE CODE --- #122 + 010020EAH LINE CODE --- #126 + 010020EFH LINE CODE --- #128 + 010020F4H LINE CODE --- #129 + 010020F4H LINE CODE --- #130 + 01002104H LINE CODE --- #132 + 0100210FH LINE CODE --- #133 + 0100210FH LINE CODE --- #134 + 01002122H LINE CODE --- #136 + 01002131H LINE CODE --- #137 + 0100213AH LINE CODE --- #139 + 01002141H LINE CODE --- #142 + 0100214BH LINE CODE --- #143 + 0100214BH LINE CODE --- #144 + 0100216BH LINE CODE --- #150 + 0100216DH LINE CODE --- #152 + 0100216DH LINE CODE --- #153 + 01002174H LINE CODE --- #154 + 0100217AH LINE CODE --- #155 + 0100217AH LINE CODE --- #157 + 0100217DH LINE CODE --- #158 + 0100217DH LINE CODE --- #159 + 0100218EH LINE CODE --- #160 + 0100218EH LINE CODE --- #162 + 0100218EH LINE CODE --- #163 --- BLOCKEND --- --- LVL=0 - 01001464H BLOCK CODE --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 128 - - - 01001464H BLOCK CODE NEAR LAB LVL=1 - 02000104H SYMBOL XDATA BYTE count - 02000105H SYMBOL XDATA CHAR status + 01001338H BLOCK CODE --- LVL=0 + 01001338H BLOCK CODE NEAR LAB LVL=1 + 02000253H SYMBOL XDATA BYTE count + 02000254H SYMBOL XDATA CHAR status 00000020H.3 SYMBOL BIT BIT xferComplete --- BLOCKEND --- --- LVL=1 - 01001464H LINE CODE --- #317 - 01001464H LINE CODE --- #318 - 01001464H LINE CODE --- #322 - 01001466H LINE CODE --- #324 - 0100146BH LINE CODE --- #326 - 01001470H LINE CODE --- #327 - 01001470H LINE CODE --- #328 - 01001485H LINE CODE --- #330 - 0100148DH LINE CODE --- #331 - 0100148DH LINE CODE --- #332 - 01001495H LINE CODE --- #335 - 0100149DH LINE CODE --- #336 - 0100149DH LINE CODE --- #337 - 010014A2H LINE CODE --- #338 - 010014A8H LINE CODE --- #339 - 010014ABH LINE CODE --- #341 - 010014BFH LINE CODE --- #342 - 010014BFH LINE CODE --- #343 - 010014C5H LINE CODE --- #344 - 010014CAH LINE CODE --- #345 - 010014D0H LINE CODE --- #346 - 010014D2H LINE CODE --- #348 - 010014D2H LINE CODE --- #349 - 010014DDH LINE CODE --- #351 - 010014E4H LINE CODE --- #352 - 010014F9H LINE CODE --- #353 - 01001502H LINE CODE --- #355 - 01001511H LINE CODE --- #356 - 01001511H LINE CODE --- #357 - 01001517H LINE CODE --- #358 - 01001519H LINE CODE --- #359 - 01001519H LINE CODE --- #360 - 0100151EH LINE CODE --- #361 - 0100152EH LINE CODE --- #362 - 0100152EH LINE CODE --- #363 - 01001535H LINE CODE --- #364 - 01001535H LINE CODE --- #365 - 01001538H LINE CODE --- #366 - 01001538H LINE CODE --- #367 - 0100153BH LINE CODE --- #368 - 0100153BH LINE CODE --- #369 - 0100154FH LINE CODE --- #370 - 0100154FH LINE CODE --- #371 - 0100154FH LINE CODE --- #372 + 01001338H LINE CODE --- #317 + 01001338H LINE CODE --- #318 + 01001338H LINE CODE --- #322 + 0100133AH LINE CODE --- #324 + 0100133FH LINE CODE --- #326 + 01001344H LINE CODE --- #327 + 01001344H LINE CODE --- #328 + 01001359H LINE CODE --- #330 + 01001361H LINE CODE --- #331 + 01001361H LINE CODE --- #332 + 01001369H LINE CODE --- #335 + 01001371H LINE CODE --- #336 + 01001371H LINE CODE --- #337 + 01001376H LINE CODE --- #338 + 0100137CH LINE CODE --- #339 + 0100137FH LINE CODE --- #341 + 01001393H LINE CODE --- #342 + 01001393H LINE CODE --- #343 + 01001399H LINE CODE --- #344 + 0100139EH LINE CODE --- #345 + 010013A4H LINE CODE --- #346 + 010013A6H LINE CODE --- #348 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 129 + + + 010013A6H LINE CODE --- #349 + 010013B1H LINE CODE --- #351 + 010013B8H LINE CODE --- #352 + 010013CDH LINE CODE --- #353 + 010013D6H LINE CODE --- #355 + 010013E5H LINE CODE --- #356 + 010013E5H LINE CODE --- #357 + 010013EBH LINE CODE --- #358 + 010013EDH LINE CODE --- #359 + 010013EDH LINE CODE --- #360 + 010013F2H LINE CODE --- #361 + 01001402H LINE CODE --- #362 + 01001402H LINE CODE --- #363 + 01001409H LINE CODE --- #364 + 01001409H LINE CODE --- #365 + 0100140CH LINE CODE --- #366 + 0100140CH LINE CODE --- #367 + 0100140FH LINE CODE --- #368 + 0100140FH LINE CODE --- #369 + 01001423H LINE CODE --- #370 + 01001423H LINE CODE --- #371 + 01001423H LINE CODE --- #372 --- BLOCKEND --- --- LVL=0 - 01002CF4H BLOCK CODE --- LVL=0 - 02000106H SYMBOL XDATA BYTE fifoNum - 02000107H SYMBOL XDATA BYTE numBytes - 02000108H SYMBOL XDATA --- dat - 01002CF4H LINE CODE --- #556 - 01002D04H LINE CODE --- #557 - 01002D04H LINE CODE --- #558 - 01002D09H LINE CODE --- #559 - 01002D09H LINE CODE --- #560 - 01002D17H LINE CODE --- #567 - 01002D26H LINE CODE --- #568 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 129 - - - 01002D26H LINE CODE --- #569 - 01002D26H LINE CODE --- #570 - 01002D33H LINE CODE --- #571 - 01002D33H LINE CODE --- #582 - 01002D33H LINE CODE --- #583 - 01002D45H LINE CODE --- #584 - 01002D45H LINE CODE --- #590 - 01002D45H LINE CODE --- #591 - 01002D55H LINE CODE --- #592 - 01002D55H LINE CODE --- #595 - 01002D55H LINE CODE --- #596 - 01002D55H LINE CODE --- #597 - 01002D55H LINE CODE --- #604 - 01002D55H LINE CODE --- #605 + 01002C32H BLOCK CODE --- LVL=0 + 02000255H SYMBOL XDATA BYTE fifoNum + 02000256H SYMBOL XDATA BYTE numBytes + 02000257H SYMBOL XDATA --- dat + 01002C32H LINE CODE --- #556 + 01002C42H LINE CODE --- #557 + 01002C42H LINE CODE --- #558 + 01002C47H LINE CODE --- #559 + 01002C47H LINE CODE --- #560 + 01002C55H LINE CODE --- #567 + 01002C64H LINE CODE --- #568 + 01002C64H LINE CODE --- #569 + 01002C64H LINE CODE --- #570 + 01002C71H LINE CODE --- #571 + 01002C71H LINE CODE --- #582 + 01002C71H LINE CODE --- #583 + 01002C83H LINE CODE --- #584 + 01002C83H LINE CODE --- #590 + 01002C83H LINE CODE --- #591 + 01002C93H LINE CODE --- #592 + 01002C93H LINE CODE --- #595 + 01002C93H LINE CODE --- #596 + 01002C93H LINE CODE --- #597 + 01002C93H LINE CODE --- #604 + 01002C93H LINE CODE --- #605 --- BLOCKEND --- --- LVL=0 - 01002A0FH BLOCK CODE --- LVL=0 - 02000110H SYMBOL XDATA BYTE fifoNum - 02000111H SYMBOL XDATA BYTE numBytes - 02000112H SYMBOL XDATA --- dat + 010028E5H BLOCK CODE --- LVL=0 + 0200025FH SYMBOL XDATA BYTE fifoNum + 02000260H SYMBOL XDATA BYTE numBytes + 02000261H SYMBOL XDATA --- dat 00000020H.5 SYMBOL BIT BIT txPacket - 01002A0FH LINE CODE --- #621 - 01002A1BH LINE CODE --- #622 - 01002A1BH LINE CODE --- #623 - 01002A28H LINE CODE --- #630 - 01002A39H LINE CODE --- #631 - 01002A39H LINE CODE --- #632 - 01002A39H LINE CODE --- #633 - 01002A41H LINE CODE --- #634 - 01002A43H LINE CODE --- #645 - 01002A43H LINE CODE --- #646 - 01002A4DH LINE CODE --- #647 - 01002A4FH LINE CODE --- #653 - 01002A4FH LINE CODE --- #654 - 01002A57H LINE CODE --- #655 - 01002A59H LINE CODE --- #658 - 01002A59H LINE CODE --- #659 - 01002A63H LINE CODE --- #660 - 01002A63H LINE CODE --- #662 - 01002A63H LINE CODE --- #663 - 01002A63H LINE CODE --- #664 - 01002A63H LINE CODE --- #672 - 01002A70H LINE CODE --- #673 - 01002A70H LINE CODE --- #674 - 01002A73H LINE CODE --- #675 - 01002A83H LINE CODE --- #676 - 01002A83H LINE CODE --- #677 + 010028E5H LINE CODE --- #621 + 010028F1H LINE CODE --- #622 + 010028F1H LINE CODE --- #623 + 010028FEH LINE CODE --- #630 + 0100290FH LINE CODE --- #631 + 0100290FH LINE CODE --- #632 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 130 + + + 0100290FH LINE CODE --- #633 + 01002917H LINE CODE --- #634 + 01002919H LINE CODE --- #645 + 01002919H LINE CODE --- #646 + 01002923H LINE CODE --- #647 + 01002925H LINE CODE --- #653 + 01002925H LINE CODE --- #654 + 0100292DH LINE CODE --- #655 + 0100292FH LINE CODE --- #658 + 0100292FH LINE CODE --- #659 + 01002939H LINE CODE --- #660 + 01002939H LINE CODE --- #662 + 01002939H LINE CODE --- #663 + 01002939H LINE CODE --- #664 + 01002939H LINE CODE --- #672 + 01002946H LINE CODE --- #673 + 01002946H LINE CODE --- #674 + 01002949H LINE CODE --- #675 + 01002959H LINE CODE --- #676 + 01002959H LINE CODE --- #677 --- BLOCKEND --- --- LVL=0 - 01003A04H BLOCK CODE --- LVL=0 + 010038C4H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE numBytes 00000000H SYMBOL DATA --- dat 00000003H SYMBOL DATA BYTE fifoNum - 01003A04H LINE CODE --- #696 - 01003A06H LINE CODE --- #697 - 01003A06H LINE CODE --- #698 - 01003A0AH LINE CODE --- #699 - 01003A0AH LINE CODE --- #700 - 01003A11H LINE CODE --- #701 - 01003A12H LINE CODE --- #702 - 01003A14H LINE CODE --- #703 - 01003A20H LINE CODE --- #704 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 130 - - + 010038C4H LINE CODE --- #696 + 010038C6H LINE CODE --- #697 + 010038C6H LINE CODE --- #698 + 010038CAH LINE CODE --- #699 + 010038CAH LINE CODE --- #700 + 010038D1H LINE CODE --- #701 + 010038D2H LINE CODE --- #702 + 010038D4H LINE CODE --- #703 + 010038E0H LINE CODE --- #704 --- BLOCKEND --- --- LVL=0 - 01003B6BH BLOCK CODE --- LVL=0 + 01003A7EH BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE numBytes 00000000H SYMBOL DATA --- dat - 01003B6BH LINE CODE --- #715 - 01003B6DH LINE CODE --- #716 - 01003B6DH LINE CODE --- #717 - 01003B73H LINE CODE --- #718 - 01003B73H LINE CODE --- #719 - 01003B7BH LINE CODE --- #720 - 01003B7CH LINE CODE --- #721 - 01003B7EH LINE CODE --- #722 + 01003A7EH LINE CODE --- #715 + 01003A80H LINE CODE --- #716 + 01003A80H LINE CODE --- #717 + 01003A86H LINE CODE --- #718 + 01003A86H LINE CODE --- #719 + 01003A8EH LINE CODE --- #720 + 01003A8FH LINE CODE --- #721 + 01003A91H LINE CODE --- #722 --- BLOCKEND --- --- LVL=0 - 010038ADH BLOCK CODE --- LVL=0 + 010037C9H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE numBytes 00000082H SYMBOL DATA --- dat 00000003H SYMBOL DATA BYTE fifoNum - 010038ADH LINE CODE --- #733 - 010038B1H LINE CODE --- #734 - 010038B1H LINE CODE --- #735 - 010038B5H LINE CODE --- #736 - 010038B5H LINE CODE --- #737 - 010038BDH LINE CODE --- #738 - 010038BEH LINE CODE --- #739 - 010038C0H LINE CODE --- #740 - 010038CDH LINE CODE --- #741 + 010037C9H LINE CODE --- #733 + 010037CDH LINE CODE --- #734 + 010037CDH LINE CODE --- #735 + 010037D1H LINE CODE --- #736 + 010037D1H LINE CODE --- #737 + 010037D9H LINE CODE --- #738 + 010037DAH LINE CODE --- #739 + 010037DCH LINE CODE --- #740 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 131 + + + 010037E9H LINE CODE --- #741 --- BLOCKEND --- --- LVL=0 - 01003B17H BLOCK CODE --- LVL=0 + 01003A3EH BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE numBytes 00000082H SYMBOL DATA --- dat - 01003B17H LINE CODE --- #752 - 01003B1BH LINE CODE --- #753 - 01003B1BH LINE CODE --- #754 - 01003B21H LINE CODE --- #755 - 01003B21H LINE CODE --- #756 - 01003B29H LINE CODE --- #757 - 01003B2AH LINE CODE --- #758 - 01003B2CH LINE CODE --- #759 + 01003A3EH LINE CODE --- #752 + 01003A42H LINE CODE --- #753 + 01003A42H LINE CODE --- #754 + 01003A48H LINE CODE --- #755 + 01003A48H LINE CODE --- #756 + 01003A50H LINE CODE --- #757 + 01003A51H LINE CODE --- #758 + 01003A53H LINE CODE --- #759 --- BLOCKEND --- --- LVL=0 - 010039ABH BLOCK CODE --- LVL=0 + 01003869H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE numBytes 00000000H SYMBOL DATA --- dat 00000003H SYMBOL DATA BYTE fifoNum - 010039ABH LINE CODE --- #771 - 010039ADH LINE CODE --- #772 - 010039ADH LINE CODE --- #773 - 010039B1H LINE CODE --- #774 - 010039B1H LINE CODE --- #775 - 010039B9H LINE CODE --- #776 - 010039BAH LINE CODE --- #777 - 010039BCH LINE CODE --- #778 - 010039C9H LINE CODE --- #779 + 01003869H LINE CODE --- #771 + 0100386BH LINE CODE --- #772 + 0100386BH LINE CODE --- #773 + 0100386FH LINE CODE --- #774 + 0100386FH LINE CODE --- #775 + 01003877H LINE CODE --- #776 + 01003878H LINE CODE --- #777 + 0100387AH LINE CODE --- #778 + 01003887H LINE CODE --- #779 --- BLOCKEND --- --- LVL=0 - 01003B7FH BLOCK CODE --- LVL=0 + 01003A92H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE numBytes 00000000H SYMBOL DATA --- dat - 01003B7FH LINE CODE --- #790 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 131 - - - 01003B81H LINE CODE --- #791 - 01003B81H LINE CODE --- #792 - 01003B87H LINE CODE --- #793 - 01003B87H LINE CODE --- #794 - 01003B8FH LINE CODE --- #795 - 01003B90H LINE CODE --- #796 - 01003B92H LINE CODE --- #797 + 01003A92H LINE CODE --- #790 + 01003A94H LINE CODE --- #791 + 01003A94H LINE CODE --- #792 + 01003A9AH LINE CODE --- #793 + 01003A9AH LINE CODE --- #794 + 01003AA2H LINE CODE --- #795 + 01003AA3H LINE CODE --- #796 + 01003AA5H LINE CODE --- #797 --- BLOCKEND --- --- LVL=0 - 01003AE9H BLOCK CODE --- LVL=0 + 010039F9H BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE numBytes 00000082H SYMBOL DATA --- dat - 01003AE9H LINE CODE --- #849 - 01003AEDH LINE CODE --- #850 - 01003AEDH LINE CODE --- #851 - 01003AF3H LINE CODE --- #852 - 01003AF3H LINE CODE --- #853 - 01003AFCH LINE CODE --- #854 - 01003AFDH LINE CODE --- #855 - 01003AFFH LINE CODE --- #856 + 010039F9H LINE CODE --- #849 + 010039FDH LINE CODE --- #850 + 010039FDH LINE CODE --- #851 + 01003A03H LINE CODE --- #852 + 01003A03H LINE CODE --- #853 + 01003A0CH LINE CODE --- #854 + 01003A0DH LINE CODE --- #855 + 01003A0FH LINE CODE --- #856 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- EFM8_USBDINT - 01003DDBH PUBLIC CODE --- forceModuleLoad_usbint - 01003B00H PUBLIC CODE --- SendEp0Stall - 01002351H PUBLIC CODE --- handleUsbEp0Rx - 01001705H PUBLIC CODE --- usbIrqHandler + 01003D1BH PUBLIC CODE --- forceModuleLoad_usbint + 01003A10H PUBLIC CODE --- SendEp0Stall + 01002227H PUBLIC CODE --- handleUsbEp0Rx + 010015E1H PUBLIC CODE --- usbIrqHandler +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 132 + + 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -8514,9 +8552,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F4H SFRSYM DATA BYTE EIP2 00000098H.2 SFRSYM DATA BIT SCON0_RB8 000000CAH SFRSYM DATA BYTE TMR2RLL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 132 - - 000000FCH SFRSYM DATA BYTE PCA0CPH0 00000092H SFRSYM DATA BYTE TMR3RLL 000000EAH SFRSYM DATA BYTE PCA0CPH1 @@ -8544,6 +8579,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000DCH SFRSYM DATA BYTE PCA0CPM2 000000B8H SFRSYM DATA BYTE IP 000000B9H SFRSYM DATA BYTE ADC0TK +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 133 + + 000000F0H.6 SFRSYM DATA BIT B_B6 000000C5H SFRSYM DATA WORD ADC0LT 000000D8H.6 SFRSYM DATA BIT UART1FCN1_TXNF @@ -8579,9 +8617,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E0H.5 SFRSYM DATA BIT ACC_ACC5 000000B5H SFRSYM DATA BYTE USB0CF 00000098H.2 SFRSYM DATA BIT TMR4CN0_TR4 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 133 - - 000000D8H.1 SFRSYM DATA BIT PCA0CN0_CCF1 000000E0H.6 SFRSYM DATA BIT ACC_ACC6 000000CCH SFRSYM DATA WORD TMR2 @@ -8609,6 +8644,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000FEH SFRSYM DATA BYTE P0MASK 000000D8H.5 SFRSYM DATA BIT UART1FCN1_TXHOLD 000000EEH SFRSYM DATA BYTE P1MASK +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 134 + + 000000FCH SFRSYM DATA BYTE P2MASK 000000D0H.3 SFRSYM DATA BIT PSW_RS0 000000D8H.7 SFRSYM DATA BIT PCA0CN0_CF @@ -8644,9 +8682,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D8H.4 SFRSYM DATA BIT UART1FCN1_TIE 000000A8H SFRSYM DATA BIT IE_EX0 000000B2H SFRSYM DATA BYTE ADC0CN1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 134 - - 000000D8H.6 SFRSYM DATA BIT PCA0CN0_CR 000000A8H.2 SFRSYM DATA BIT IE_EX1 000000C8H.7 SFRSYM DATA BIT SCON1_OVR @@ -8674,6 +8709,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000FAH SFRSYM DATA BYTE UART1FCT 0000008DH SFRSYM DATA BYTE TH1 000000FAH SFRSYM DATA BYTE PCA0H +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 135 + + 000000F5H SFRSYM DATA BYTE I2C0FCT 000000B8H.1 SFRSYM DATA BIT IP_PT0 000000B8H.3 SFRSYM DATA BIT IP_PT1 @@ -8709,9 +8747,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B0H.1 SFRSYM DATA BIT P3_B1 000000A0H.2 SFRSYM DATA BIT P2_B2 00000090H.3 SFRSYM DATA BIT P1_B3 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 135 - - 00000080H.4 SFRSYM DATA BIT P0_B4 000000A0H.3 SFRSYM DATA BIT P2_B3 00000090H.4 SFRSYM DATA BIT P1_B4 @@ -8739,6 +8774,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000082H SFRSYM DATA BYTE DPL 00000088H.7 SFRSYM DATA BIT TCON_TF1 000000C8H SFRSYM DATA BIT SCON1_RI +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 136 + + 00000099H SFRSYM DATA BYTE SBUF0 00000087H SFRSYM DATA BYTE PCON0 000000F2H SFRSYM DATA BYTE IPH @@ -8774,9 +8812,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D6H SFRSYM DATA BYTE SMB0ADM 000000C5H SFRSYM DATA BYTE ADC0LTL 000000F8H.5 SFRSYM DATA BIT SPI0CN0_MODF -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 136 - - 000000B8H.6 SFRSYM DATA BIT IP_PSPI0 0000009CH SFRSYM DATA BYTE PCA0CLR 000000C8H SFRSYM DATA BYTE TMR2CN0 @@ -8804,6 +8839,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AEH SFRSYM DATA BYTE USB0ADR 00000094H SFRSYM DATA BYTE TMR3L 000000DFH SFRSYM DATA BYTE ADC0PWR +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 137 + + 000000A8H.7 SFRSYM DATA BIT IE_EA 000000A4H SFRSYM DATA BYTE TMR4L 000000AFH SFRSYM DATA BYTE USB0DAT @@ -8825,299 +8863,296 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B6H SFRSYM DATA BYTE REVID 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01002E69H SYMBOL CODE --- USB_ReadFIFOSetup - 010020BDH SYMBOL CODE --- handleUsbEp0Int - 01003C37H SYMBOL CODE --- handleUsbSuspendInt - 01003D7BH SYMBOL CODE --- handleUsbResumeInt - 01002351H SYMBOL CODE --- handleUsbEp0Rx - 0100136AH SYMBOL CODE --- handleUsbEp0Tx - 01003320H SYMBOL CODE --- handleUsbResetInt + 01002DAFH SYMBOL CODE --- USB_ReadFIFOSetup + 01001EE8H SYMBOL CODE --- handleUsbEp0Int + 01003B5BH SYMBOL CODE --- handleUsbSuspendInt + 01003CB3H SYMBOL CODE --- handleUsbResumeInt + 01002227H SYMBOL CODE --- handleUsbEp0Rx + 0100123EH SYMBOL CODE --- handleUsbEp0Tx + 010032A8H SYMBOL CODE --- handleUsbResetInt - 01002DB6H BLOCK CODE --- LVL=0 + 01002D55H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 01001705H BLOCK CODE --- LVL=0 - 01001722H BLOCK CODE NEAR LAB LVL=1 - 02000100H SYMBOL XDATA BYTE statusCommon -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 137 - - - 02000101H SYMBOL XDATA BYTE statusIn - 02000102H SYMBOL XDATA BYTE statusOut - 02000103H SYMBOL XDATA BYTE indexSave + 010015E1H BLOCK CODE --- LVL=0 + 010015FEH BLOCK CODE NEAR LAB LVL=1 + 0200024FH SYMBOL XDATA BYTE statusCommon + 02000250H SYMBOL XDATA BYTE statusIn + 02000251H SYMBOL XDATA BYTE statusOut + 02000252H SYMBOL XDATA BYTE indexSave --- BLOCKEND --- --- LVL=1 - 01001705H LINE CODE --- #61 - 01001722H LINE CODE --- #74 - 0100172AH LINE CODE --- #75 - 01001732H LINE CODE --- #76 - 0100173AH LINE CODE --- #86 - 01001742H LINE CODE --- #89 - 0100174AH LINE CODE --- #90 - 0100174AH LINE CODE --- #97 - 01001765H LINE CODE --- #99 - 01001765H LINE CODE --- #100 - 0100176CH LINE CODE --- #101 - 0100176CH LINE CODE --- #105 - 0100177AH LINE CODE --- #106 - 0100177AH LINE CODE --- #107 - 01001781H LINE CODE --- #108 - 01001781H LINE CODE --- #128 - 01001781H LINE CODE --- #130 - 01001785H LINE CODE --- #131 - 01001785H LINE CODE --- #132 - 01001788H LINE CODE --- #141 - 01001788H LINE CODE --- #143 - 0100178FH LINE CODE --- #144 - 0100178FH LINE CODE --- #145 - 01001792H LINE CODE --- #146 - 01001792H LINE CODE --- #148 - 01001799H LINE CODE --- #149 - 01001799H LINE CODE --- #150 - 0100179CH LINE CODE --- #151 - 0100179CH LINE CODE --- #175 - 010017A3H LINE CODE --- #176 - 010017A3H LINE CODE --- #177 - 010017A6H LINE CODE --- #178 - 010017A6H LINE CODE --- #189 - 010017ADH LINE CODE --- #190 - 010017ADH LINE CODE --- #191 - 010017B0H LINE CODE --- #192 - 010017B0H LINE CODE --- #196 - 010017B7H LINE CODE --- #197 - 010017B7H LINE CODE --- #198 - 010017BAH LINE CODE --- #199 - 010017BAH LINE CODE --- #202 - 010017C2H LINE CODE --- #208 + 010015E1H LINE CODE --- #61 + 010015FEH LINE CODE --- #74 + 01001606H LINE CODE --- #75 + 0100160EH LINE CODE --- #76 + 01001616H LINE CODE --- #86 + 0100161EH LINE CODE --- #89 + 01001626H LINE CODE --- #90 + 01001626H LINE CODE --- #97 + 01001641H LINE CODE --- #99 + 01001641H LINE CODE --- #100 + 01001648H LINE CODE --- #101 + 01001648H LINE CODE --- #105 + 01001656H LINE CODE --- #106 + 01001656H LINE CODE --- #107 + 0100165DH LINE CODE --- #108 + 0100165DH LINE CODE --- #128 + 0100165DH LINE CODE --- #130 + 01001661H LINE CODE --- #131 + 01001661H LINE CODE --- #132 + 01001664H LINE CODE --- #141 + 01001664H LINE CODE --- #143 + 0100166BH LINE CODE --- #144 + 0100166BH LINE CODE --- #145 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 138 + + + 0100166EH LINE CODE --- #146 + 0100166EH LINE CODE --- #148 + 01001675H LINE CODE --- #149 + 01001675H LINE CODE --- #150 + 01001678H LINE CODE --- #151 + 01001678H LINE CODE --- #175 + 0100167FH LINE CODE --- #176 + 0100167FH LINE CODE --- #177 + 01001682H LINE CODE --- #178 + 01001682H LINE CODE --- #189 + 01001689H LINE CODE --- #190 + 01001689H LINE CODE --- #191 + 0100168CH LINE CODE --- #192 + 0100168CH LINE CODE --- #196 + 01001693H LINE CODE --- #197 + 01001693H LINE CODE --- #198 + 01001696H LINE CODE --- #199 + 01001696H LINE CODE --- #202 + 0100169EH LINE CODE --- #208 --- BLOCKEND --- --- LVL=0 - 010020BDH BLOCK CODE --- LVL=0 - 010020BDH LINE CODE --- #213 - 010020BDH LINE CODE --- #214 - 010020BDH LINE CODE --- #215 - 010020C2H LINE CODE --- #217 - 010020CCH LINE CODE --- #218 - 010020CCH LINE CODE --- #219 - 010020D7H LINE CODE --- #220 - 010020E2H LINE CODE --- #221 - 010020E5H LINE CODE --- #222 - 010020E8H LINE CODE --- #223 - 010020E8H LINE CODE --- #224 - 010020EDH LINE CODE --- #225 - 010020EDH LINE CODE --- #226 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 138 + 01001EE8H BLOCK CODE --- LVL=0 + 01001EE8H LINE CODE --- #213 + 01001EE8H LINE CODE --- #214 + 01001EE8H LINE CODE --- #215 + 01001EEDH LINE CODE --- #217 + 01001EF7H LINE CODE --- #218 + 01001EF7H LINE CODE --- #219 + 01001F02H LINE CODE --- #220 + 01001F0DH LINE CODE --- #221 + 01001F10H LINE CODE --- #222 + 01001F13H LINE CODE --- #223 + 01001F13H LINE CODE --- #224 + 01001F18H LINE CODE --- #225 + 01001F18H LINE CODE --- #226 + 01001F20H LINE CODE --- #227 + 01001F20H LINE CODE --- #228 + 01001F20H LINE CODE --- #229 + 01001F22H LINE CODE --- #230 + 01001F2AH LINE CODE --- #231 + 01001F2AH LINE CODE --- #232 + 01001F2EH LINE CODE --- #233 + 01001F31H LINE CODE --- #237 + 01001F3BH LINE CODE --- #238 + 01001F3BH LINE CODE --- #240 + 01001F46H LINE CODE --- #241 + 01001F46H LINE CODE --- #242 + 01001F49H LINE CODE --- #243 + 01001F4BH LINE CODE --- #245 + 01001F4BH LINE CODE --- #246 + 01001F4EH LINE CODE --- #247 + 01001F4EH LINE CODE --- #249 + 01001F50H LINE CODE --- #251 + 01001F50H LINE CODE --- #254 + 01001F69H LINE CODE --- #258 + 01001F69H LINE CODE --- #259 + 01001F70H LINE CODE --- #260 + 01001F70H LINE CODE --- #261 + 01001F70H LINE CODE --- #263 + 01001F72H LINE CODE --- #264 + 01001F79H LINE CODE --- #265 + 01001F79H LINE CODE --- #266 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 139 - 010020F5H LINE CODE --- #227 - 010020F5H LINE CODE --- #228 - 010020F5H LINE CODE --- #229 - 010020F7H LINE CODE --- #230 - 010020FFH LINE CODE --- #231 - 010020FFH LINE CODE --- #232 - 01002103H LINE CODE --- #233 - 01002106H LINE CODE --- #237 - 01002110H LINE CODE --- #238 - 01002110H LINE CODE --- #240 - 0100211BH LINE CODE --- #241 - 0100211BH LINE CODE --- #242 - 0100211EH LINE CODE --- #243 - 01002120H LINE CODE --- #245 - 01002120H LINE CODE --- #246 - 01002123H LINE CODE --- #247 - 01002123H LINE CODE --- #249 - 01002125H LINE CODE --- #251 - 01002125H LINE CODE --- #254 - 0100213EH LINE CODE --- #258 - 0100213EH LINE CODE --- #259 - 01002145H LINE CODE --- #260 - 01002145H LINE CODE --- #261 - 01002145H LINE CODE --- #263 - 01002147H LINE CODE --- #264 - 0100214EH LINE CODE --- #265 - 0100214EH LINE CODE --- #266 - 01002151H LINE CODE --- #267 - 01002153H LINE CODE --- #269 - 01002153H LINE CODE --- #270 - 0100215AH LINE CODE --- #271 - 0100215AH LINE CODE --- #272 - 0100215AH LINE CODE --- #273 - 01002166H LINE CODE --- #274 - 01002166H LINE CODE --- #275 - 01002169H LINE CODE --- #276 - 01002169H LINE CODE --- #277 + 01001F7CH LINE CODE --- #267 + 01001F7EH LINE CODE --- #269 + 01001F7EH LINE CODE --- #270 + 01001F85H LINE CODE --- #271 + 01001F85H LINE CODE --- #272 + 01001F85H LINE CODE --- #273 + 01001F91H LINE CODE --- #274 + 01001F91H LINE CODE --- #275 + 01001F94H LINE CODE --- #276 + 01001F94H LINE CODE --- #277 --- BLOCKEND --- --- LVL=0 - 01002E69H BLOCK CODE --- LVL=0 - 01002E69H BLOCK CODE NEAR LAB LVL=1 - 02000104H SYMBOL XDATA --- ptr + 01002DAFH BLOCK CODE --- LVL=0 + 01002DAFH BLOCK CODE NEAR LAB LVL=1 + 02000253H SYMBOL XDATA --- ptr --- BLOCKEND --- --- LVL=1 - 01002E69H LINE CODE --- #282 - 01002E69H LINE CODE --- #283 - 01002E69H LINE CODE --- #284 - 01002E75H LINE CODE --- #286 - 01002E81H LINE CODE --- #288 - 01002E8CH LINE CODE --- #291 - 01002EA8H LINE CODE --- #292 - 01002EB4H LINE CODE --- #293 - 01002EBFH LINE CODE --- #294 + 01002DAFH LINE CODE --- #282 + 01002DAFH LINE CODE --- #283 + 01002DAFH LINE CODE --- #284 + 01002DBBH LINE CODE --- #286 + 01002DC7H LINE CODE --- #288 + 01002DD2H LINE CODE --- #291 + 01002DEEH LINE CODE --- #292 + 01002DFAH LINE CODE --- #293 + 01002E05H LINE CODE --- #294 --- BLOCKEND --- --- LVL=0 - 01003320H BLOCK CODE --- LVL=0 - 01003320H LINE CODE --- #301 - 01003320H LINE CODE --- #302 - 01003320H LINE CODE --- #304 - 01003323H LINE CODE --- #308 - 01003329H LINE CODE --- #317 - 0100332DH LINE CODE --- #332 - 01003338H LINE CODE --- #339 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 139 - - - 01003343H LINE CODE --- #340 - 0100334EH LINE CODE --- #345 - 01003351H LINE CODE --- #346 - 01003351H LINE CODE --- #347 - 01003353H LINE CODE --- #348 - 01003355H LINE CODE --- #350 - 01003355H LINE CODE --- #351 - 0100335AH LINE CODE --- #352 - 0100335AH LINE CODE --- #359 + 010032A8H BLOCK CODE --- LVL=0 + 010032A8H LINE CODE --- #301 + 010032A8H LINE CODE --- #302 + 010032A8H LINE CODE --- #304 + 010032ABH LINE CODE --- #308 + 010032B1H LINE CODE --- #317 + 010032B5H LINE CODE --- #332 + 010032C0H LINE CODE --- #339 + 010032CBH LINE CODE --- #340 + 010032D6H LINE CODE --- #345 + 010032D9H LINE CODE --- #346 + 010032D9H LINE CODE --- #347 + 010032DBH LINE CODE --- #348 + 010032DDH LINE CODE --- #350 + 010032DDH LINE CODE --- #351 + 010032E2H LINE CODE --- #352 + 010032E2H LINE CODE --- #359 --- BLOCKEND --- --- LVL=0 - 01003C37H BLOCK CODE --- LVL=0 - 01003C37H LINE CODE --- #369 - 01003C37H LINE CODE --- #370 - 01003C37H LINE CODE --- #371 - 01003C40H LINE CODE --- #372 - 01003C40H LINE CODE --- #373 - 01003C45H LINE CODE --- #378 - 01003C45H LINE CODE --- #379 + 01003B5BH BLOCK CODE --- LVL=0 + 01003B5BH LINE CODE --- #369 + 01003B5BH LINE CODE --- #370 + 01003B5BH LINE CODE --- #371 + 01003B64H LINE CODE --- #372 + 01003B64H LINE CODE --- #373 + 01003B69H LINE CODE --- #378 + 01003B69H LINE CODE --- #379 --- BLOCKEND --- --- LVL=0 - 01003D7BH BLOCK CODE --- LVL=0 - 01003D7BH LINE CODE --- #385 - 01003D7BH LINE CODE --- #386 - 01003D7BH LINE CODE --- #387 + 01003CB3H BLOCK CODE --- LVL=0 + 01003CB3H LINE CODE --- #385 + 01003CB3H LINE CODE --- #386 + 01003CB3H LINE CODE --- #387 --- BLOCKEND --- --- LVL=0 - 0100136AH BLOCK CODE --- LVL=0 - 0100136AH BLOCK CODE NEAR LAB LVL=1 - 02000104H SYMBOL XDATA BYTE count - 02000105H SYMBOL XDATA BYTE count_snapshot - 02000106H SYMBOL XDATA BYTE i +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 140 + + + 0100123EH BLOCK CODE --- LVL=0 + 0100123EH BLOCK CODE NEAR LAB LVL=1 + 02000253H SYMBOL XDATA BYTE count + 02000254H SYMBOL XDATA BYTE count_snapshot + 02000255H SYMBOL XDATA BYTE i 00000020H.3 SYMBOL BIT BIT callback --- BLOCKEND --- --- LVL=1 - 0100136AH LINE CODE --- #393 - 0100136AH LINE CODE --- #394 - 0100136AH LINE CODE --- #396 - 01001371H LINE CODE --- #400 - 0100138AH LINE CODE --- #404 - 0100138CH LINE CODE --- #410 - 01001397H LINE CODE --- #411 - 01001397H LINE CODE --- #416 - 0100139BH LINE CODE --- #417 - 0100139BH LINE CODE --- #418 - 010013A8H LINE CODE --- #419 - 010013AEH LINE CODE --- #420 - 010013B5H LINE CODE --- #421 - 010013BCH LINE CODE --- #422 - 010013BCH LINE CODE --- #425 - 010013D0H LINE CODE --- #426 - 010013D0H LINE CODE --- #427 - 010013D6H LINE CODE --- #428 - 010013DCH LINE CODE --- #429 - 010013E5H LINE CODE --- #430 - 010013EDH LINE CODE --- #431 - 010013EDH LINE CODE --- #435 - 010013EDH LINE CODE --- #436 - 010013FAH LINE CODE --- #437 - 01001408H LINE CODE --- #438 - 01001408H LINE CODE --- #440 - 0100140FH LINE CODE --- #441 - 0100141FH LINE CODE --- #447 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 140 - - - 01001427H LINE CODE --- #448 - 01001427H LINE CODE --- #449 - 01001432H LINE CODE --- #450 - 01001435H LINE CODE --- #451 - 0100143AH LINE CODE --- #452 - 0100143EH LINE CODE --- #453 - 01001440H LINE CODE --- #455 - 01001440H LINE CODE --- #458 - 0100144BH LINE CODE --- #459 - 0100144BH LINE CODE --- #461 - 0100144EH LINE CODE --- #462 - 0100144EH LINE CODE --- #463 - 01001459H LINE CODE --- #464 - 01001459H LINE CODE --- #465 + 0100123EH LINE CODE --- #393 + 0100123EH LINE CODE --- #394 + 0100123EH LINE CODE --- #396 + 01001245H LINE CODE --- #400 + 0100125EH LINE CODE --- #404 + 01001260H LINE CODE --- #410 + 0100126BH LINE CODE --- #411 + 0100126BH LINE CODE --- #416 + 0100126FH LINE CODE --- #417 + 0100126FH LINE CODE --- #418 + 0100127CH LINE CODE --- #419 + 01001282H LINE CODE --- #420 + 01001289H LINE CODE --- #421 + 01001290H LINE CODE --- #422 + 01001290H LINE CODE --- #425 + 010012A4H LINE CODE --- #426 + 010012A4H LINE CODE --- #427 + 010012AAH LINE CODE --- #428 + 010012B0H LINE CODE --- #429 + 010012B9H LINE CODE --- #430 + 010012C1H LINE CODE --- #431 + 010012C1H LINE CODE --- #435 + 010012C1H LINE CODE --- #436 + 010012CEH LINE CODE --- #437 + 010012DCH LINE CODE --- #438 + 010012DCH LINE CODE --- #440 + 010012E3H LINE CODE --- #441 + 010012F3H LINE CODE --- #447 + 010012FBH LINE CODE --- #448 + 010012FBH LINE CODE --- #449 + 01001306H LINE CODE --- #450 + 01001309H LINE CODE --- #451 + 0100130EH LINE CODE --- #452 + 01001312H LINE CODE --- #453 + 01001314H LINE CODE --- #455 + 01001314H LINE CODE --- #458 + 0100131FH LINE CODE --- #459 + 0100131FH LINE CODE --- #461 + 01001322H LINE CODE --- #462 + 01001322H LINE CODE --- #463 + 0100132DH LINE CODE --- #464 + 0100132DH LINE CODE --- #465 --- BLOCKEND --- --- LVL=0 - 01002351H BLOCK CODE --- LVL=0 - 01002351H BLOCK CODE NEAR LAB LVL=1 - 02000104H SYMBOL XDATA BYTE count - 02000105H SYMBOL XDATA CHAR status + 01002227H BLOCK CODE --- LVL=0 + 01002227H BLOCK CODE NEAR LAB LVL=1 + 02000253H SYMBOL XDATA BYTE count + 02000254H SYMBOL XDATA CHAR status 00000020H.3 SYMBOL BIT BIT callback --- BLOCKEND --- --- LVL=1 - 01002351H LINE CODE --- #470 - 01002351H LINE CODE --- #471 - 01002351H LINE CODE --- #474 - 01002358H LINE CODE --- #477 - 01002360H LINE CODE --- #481 - 0100236EH LINE CODE --- #482 - 0100236EH LINE CODE --- #483 - 01002371H LINE CODE --- #484 - 01002376H LINE CODE --- #485 - 0100237CH LINE CODE --- #486 - 0100237EH LINE CODE --- #488 - 0100237EH LINE CODE --- #489 - 01002389H LINE CODE --- #490 - 0100239AH LINE CODE --- #491 - 010023A3H LINE CODE --- #492 - 010023A8H LINE CODE --- #498 - 010023B1H LINE CODE --- #499 - 010023B1H LINE CODE --- #500 - 010023BCH LINE CODE --- #501 - 010023BFH LINE CODE --- #502 - 010023C4H LINE CODE --- #503 - 010023C6H LINE CODE --- #505 - 010023C6H LINE CODE --- #507 - 010023D1H LINE CODE --- #508 - 010023D1H LINE CODE --- #509 - 010023D1H LINE CODE --- #512 - 010023D4H LINE CODE --- #513 - 010023D4H LINE CODE --- #514 - 010023E3H LINE CODE --- #515 - 010023E3H LINE CODE --- #516 + 01002227H LINE CODE --- #470 + 01002227H LINE CODE --- #471 + 01002227H LINE CODE --- #474 + 0100222EH LINE CODE --- #477 + 01002236H LINE CODE --- #481 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 141 + + + 01002244H LINE CODE --- #482 + 01002244H LINE CODE --- #483 + 01002247H LINE CODE --- #484 + 0100224CH LINE CODE --- #485 + 01002252H LINE CODE --- #486 + 01002254H LINE CODE --- #488 + 01002254H LINE CODE --- #489 + 0100225FH LINE CODE --- #490 + 01002270H LINE CODE --- #491 + 01002279H LINE CODE --- #492 + 0100227EH LINE CODE --- #498 + 01002287H LINE CODE --- #499 + 01002287H LINE CODE --- #500 + 01002292H LINE CODE --- #501 + 01002295H LINE CODE --- #502 + 0100229AH LINE CODE --- #503 + 0100229CH LINE CODE --- #505 + 0100229CH LINE CODE --- #507 + 010022A7H LINE CODE --- #508 + 010022A7H LINE CODE --- #509 + 010022A7H LINE CODE --- #512 + 010022AAH LINE CODE --- #513 + 010022AAH LINE CODE --- #514 + 010022B9H LINE CODE --- #515 + 010022B9H LINE CODE --- #516 --- BLOCKEND --- --- LVL=0 - 01003B00H BLOCK CODE --- LVL=0 - 01003B00H LINE CODE --- #522 - 01003B00H LINE CODE --- #523 - 01003B00H LINE CODE --- #524 - 01003B05H LINE CODE --- #525 - 01003B0BH LINE CODE --- #526 - 01003B16H LINE CODE --- #527 + 01003A10H BLOCK CODE --- LVL=0 + 01003A10H LINE CODE --- #522 + 01003A10H LINE CODE --- #523 + 01003A10H LINE CODE --- #524 + 01003A15H LINE CODE --- #525 + 01003A1BH LINE CODE --- #526 + 01003A26H LINE CODE --- #527 --- BLOCKEND --- --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 141 - - - 01003DDBH BLOCK CODE --- LVL=0 - 01003DDBH LINE CODE --- #533 + 01003D1BH BLOCK CODE --- LVL=0 + 01003D1BH LINE CODE --- #533 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- ASSERT - 01003DD8H PUBLIC CODE --- _slab_Assert + 01003D18H PUBLIC CODE --- _slab_Assert - 01003DD8H BLOCK CODE --- LVL=0 + 01003D18H BLOCK CODE --- LVL=0 02000000H SYMBOL XDATA --- file 02000003H SYMBOL XDATA INT line - 01003DD8H LINE CODE --- #8 - 01003DD8H LINE CODE --- #9 - 01003DD8H LINE CODE --- #10 - 01003DD8H LINE CODE --- #11 - 01003DD8H LINE CODE --- #13 + 01003D18H LINE CODE --- #8 + 01003D18H LINE CODE --- #9 + 01003D18H LINE CODE --- #10 + 01003D18H LINE CODE --- #11 + 01003D18H LINE CODE --- #13 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- TESTS @@ -9129,6 +9164,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F8H.1 SFRSYM DATA BIT SPI0CN0_TXNF 00000097H SFRSYM DATA BYTE WDTCN 000000A0H SFRSYM DATA BYTE P2 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 142 + + 000000B0H SFRSYM DATA BYTE P3 000000BCH SFRSYM DATA BYTE ADC0CF 000000C0H.7 SFRSYM DATA BIT SMB0CN0_MASTER @@ -9137,7 +9175,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -9164,9 +9202,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.3 SFRSYM DATA BIT SCON0_TB8 000000F0H SFRSYM DATA BIT B_B0 00000082H SFRSYM DATA WORD DP -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 142 - - 000000A2H SFRSYM DATA BYTE TMR4RLL 000000ECH SFRSYM DATA BYTE PCA0CPH2 000000F0H.1 SFRSYM DATA BIT B_B1 @@ -9194,6 +9229,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.5 SFRSYM DATA BIT SCON0_MCE 000000F0H.7 SFRSYM DATA BIT B_B7 000000C3H SFRSYM DATA BYTE SMB0FCN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 143 + + 000000E1H SFRSYM DATA BYTE XBR0 000000C4H SFRSYM DATA BYTE SMB0FCN1 000000C1H SFRSYM DATA BYTE SMB0CF @@ -9229,9 +9267,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000009AH SFRSYM DATA BYTE SPI0FCN0 000000D8H.2 SFRSYM DATA BIT PCA0CN0_CCF2 000000E0H.7 SFRSYM DATA BIT ACC_ACC7 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 143 - - 00000094H SFRSYM DATA WORD TMR3 0000009BH SFRSYM DATA BYTE SPI0FCN1 000000A4H SFRSYM DATA WORD TMR4 @@ -9259,6 +9294,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000009EH SFRSYM DATA BYTE PCA0CENT 000000BAH SFRSYM DATA BYTE I2C0CN0 000000D2H SFRSYM DATA BYTE CRC0ST +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 144 + + 000000F8H.4 SFRSYM DATA BIT SPI0CN0_RXOVRN 000000D0H.4 SFRSYM DATA BIT PSW_RS1 00000095H SFRSYM DATA BYTE SBRLL1 @@ -9294,9 +9332,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.7 SFRSYM DATA BIT SCON0_SMODE 000000B5H SFRSYM DATA BYTE DEVICEID 000000A9H SFRSYM DATA BYTE CLKSEL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 144 - - 000000F8H SFRSYM DATA BIT SPI0CN0_SPIEN 000000F0H SFRSYM DATA BYTE B 000000BEH SFRSYM DATA BYTE ADC0H @@ -9324,6 +9359,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C0H.2 SFRSYM DATA BIT SMB0CN0_ARBLOST 000000B8H.5 SFRSYM DATA BIT IP_PT2 0000008AH SFRSYM DATA BYTE TL0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 145 + + 00000080H.3 SFRSYM DATA BIT U2F_BUTTON_VAL 000000D0H.5 SFRSYM DATA BIT PSW_F0 000000A8H.6 SFRSYM DATA BIT IE_ESPI0 @@ -9359,9 +9397,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.4 SFRSYM DATA BIT P1_B4 00000080H.5 SFRSYM DATA BIT P0_B5 000000D8H.1 SFRSYM DATA BIT UART1FCN1_RXTO0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 145 - - 00000090H.5 SFRSYM DATA BIT P1_B5 00000080H.6 SFRSYM DATA BIT P0_B6 000000F5H SFRSYM DATA BYTE EIP1H @@ -9389,6 +9424,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F2H SFRSYM DATA BYTE IPH 000000C3H SFRSYM DATA BYTE ADC0GTL 00000098H.7 SFRSYM DATA BIT TMR4CN0_TF4H +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 146 + + 00000098H.3 SFRSYM DATA BIT TMR4CN0_T4SPLIT 000000C8H.6 SFRSYM DATA BIT TMR2CN0_TF2L 00000098H.1 SFRSYM DATA BIT SCON0_TI @@ -9424,9 +9462,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H SFRSYM DATA BYTE TMR2CN0 00000091H SFRSYM DATA BYTE TMR3CN0 000000FDH SFRSYM DATA BYTE TMR2CN1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 146 - - 00000098H SFRSYM DATA BYTE TMR4CN0 000000FEH SFRSYM DATA BYTE TMR3CN1 000000FFH SFRSYM DATA BYTE TMR4CN1 @@ -9454,7 +9489,10 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 147 + + + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 @@ -9469,19 +9507,19 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC --- MODULE --- --- ATECC508A - 020000B3H PUBLIC XDATA BYTE ?_atecc_send_recv?BYTE - 01001550H PUBLIC CODE --- _atecc_send_recv - 020000C3H PUBLIC XDATA BYTE ?_atecc_recv?BYTE - 01001BCEH PUBLIC CODE --- _atecc_recv - 01003C16H PUBLIC CODE --- atecc_wake - 01003D30H PUBLIC CODE --- atecc_idle - 020000C3H PUBLIC XDATA BYTE ?_atecc_send?BYTE - 01002F64H PUBLIC CODE --- _atecc_send + 02000202H PUBLIC XDATA BYTE ?_atecc_send_recv?BYTE + 01001505H PUBLIC CODE --- _atecc_send_recv + 02000212H PUBLIC XDATA BYTE ?_atecc_recv?BYTE + 01001B6EH PUBLIC CODE --- _atecc_recv + 01003B29H PUBLIC CODE --- atecc_wake + 01003C69H PUBLIC CODE --- atecc_idle + 02000212H PUBLIC XDATA BYTE ?_atecc_send?BYTE + 01002EAAH PUBLIC CODE --- _atecc_send 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -9489,9 +9527,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H SFRSYM DATA BYTE P1 000000F8H.1 SFRSYM DATA BIT SPI0CN0_TXNF 00000097H SFRSYM DATA BYTE WDTCN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 147 - - 000000A0H SFRSYM DATA BYTE P2 000000B0H SFRSYM DATA BYTE P3 000000BCH SFRSYM DATA BYTE ADC0CF @@ -9501,7 +9536,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -9519,6 +9554,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000009CH SFRSYM DATA BYTE P3MDOUT 000000A3H SFRSYM DATA BYTE TMR4RLH 000000F3H SFRSYM DATA BYTE EIP1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 148 + + 000000F4H SFRSYM DATA BYTE EIP2 00000098H.2 SFRSYM DATA BIT SCON0_RB8 000000CAH SFRSYM DATA BYTE TMR2RLL @@ -9554,9 +9592,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D8H.6 SFRSYM DATA BIT UART1FCN1_TXNF 00000098H.5 SFRSYM DATA BIT SCON0_MCE 000000F0H.7 SFRSYM DATA BIT B_B7 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 148 - - 000000C3H SFRSYM DATA BYTE SMB0FCN0 000000E1H SFRSYM DATA BYTE XBR0 000000C4H SFRSYM DATA BYTE SMB0FCN1 @@ -9584,6 +9619,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B1H SFRSYM DATA BYTE LFO0CN 000000ABH SFRSYM DATA BYTE CMP1MD 000000D8H SFRSYM DATA BIT PCA0CN0_CCF0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 149 + + 000000E0H.5 SFRSYM DATA BIT ACC_ACC5 000000B5H SFRSYM DATA BYTE USB0CF 00000098H.2 SFRSYM DATA BIT TMR4CN0_TR4 @@ -9619,9 +9657,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D8H.7 SFRSYM DATA BIT PCA0CN0_CF 0000009EH SFRSYM DATA BYTE PCA0CENT 000000BAH SFRSYM DATA BYTE I2C0CN0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 149 - - 000000D2H SFRSYM DATA BYTE CRC0ST 000000F8H.4 SFRSYM DATA BIT SPI0CN0_RXOVRN 000000D0H.4 SFRSYM DATA BIT PSW_RS1 @@ -9649,6 +9684,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D5H SFRSYM DATA BYTE P1SKIP 000000CCH SFRSYM DATA BYTE P2SKIP 000000E8H SFRSYM DATA BYTE ADC0CN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 150 + + 000000D8H.4 SFRSYM DATA BIT UART1FCN1_TIE 000000A8H SFRSYM DATA BIT IE_EX0 000000B2H SFRSYM DATA BYTE ADC0CN1 @@ -9684,9 +9722,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B8H.3 SFRSYM DATA BIT IP_PT1 000000C0H.2 SFRSYM DATA BIT SMB0CN0_ARBLOST 000000B8H.5 SFRSYM DATA BIT IP_PT2 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 150 - - 0000008AH SFRSYM DATA BYTE TL0 00000080H.3 SFRSYM DATA BIT U2F_BUTTON_VAL 000000D0H.5 SFRSYM DATA BIT PSW_F0 @@ -9714,6 +9749,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H.2 SFRSYM DATA BIT P1_B2 00000080H.3 SFRSYM DATA BIT P0_B3 000000C0H SFRSYM DATA BYTE SMB0CN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 151 + + 000000ACH SFRSYM DATA BYTE CMP1CN1 000000B0H.1 SFRSYM DATA BIT P3_B1 000000A0H.2 SFRSYM DATA BIT P2_B2 @@ -9749,9 +9787,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000087H SFRSYM DATA BYTE PCON0 000000F2H SFRSYM DATA BYTE IPH 000000C3H SFRSYM DATA BYTE ADC0GTL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 151 - - 00000098H.7 SFRSYM DATA BIT TMR4CN0_TF4H 00000098H.3 SFRSYM DATA BIT TMR4CN0_T4SPLIT 000000C8H.6 SFRSYM DATA BIT TMR2CN0_TF2L @@ -9779,6 +9814,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H SFRSYM DATA BYTE SCON1 000000FBH SFRSYM DATA BYTE P2MAT 00000098H.6 SFRSYM DATA BIT TMR4CN0_TF4L +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 152 + + 000000E8H.4 SFRSYM DATA BIT ADC0CN0_ADBUSY 000000D6H SFRSYM DATA BYTE SMB0ADM 000000C5H SFRSYM DATA BYTE ADC0LTL @@ -9814,11 +9852,8 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A4H SFRSYM DATA BYTE TMR4L 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 152 - - 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 @@ -9833,212 +9868,215 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 010038CEH SYMBOL CODE --- _delay_cmd + 010037EAH SYMBOL CODE --- _delay_cmd - 010034F5H BLOCK CODE --- LVL=0 + 01003443H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 01002F64H BLOCK CODE --- LVL=0 + 01002EAAH BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE cmd 00000005H SYMBOL DATA BYTE p1 - 020000C5H SYMBOL XDATA WORD p2 - 020000C7H SYMBOL XDATA --- buf - 020000CAH SYMBOL XDATA BYTE len - 01002F6CH BLOCK CODE NEAR LAB LVL=1 - 00000012H SYMBOL DATA --- params +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 153 + + + 02000214H SYMBOL XDATA WORD p2 + 02000216H SYMBOL XDATA --- buf + 02000219H SYMBOL XDATA BYTE len + 01002EB2H BLOCK CODE NEAR LAB LVL=1 + 00000008H SYMBOL DATA --- params --- BLOCKEND --- --- LVL=1 - 01002F64H LINE CODE --- #18 - 01002F6CH LINE CODE --- #20 - 01002F6CH LINE CODE --- #22 - 01002F6FH LINE CODE --- #23 - 01002F77H LINE CODE --- #24 - 01002F79H LINE CODE --- #25 - 01002F7DH LINE CODE --- #26 - 01002F83H LINE CODE --- #27 - 01002F89H LINE CODE --- #29 - 01002F8CH LINE CODE --- #30 - 01002F9AH LINE CODE --- #31 - 01002FA8H LINE CODE --- #32 - 01002FB1H LINE CODE --- #33 - 01002FB1H LINE CODE --- #34 - 01002FB3H LINE CODE --- #35 - 01002FB3H LINE CODE --- #36 - 01002FB3H LINE CODE --- #37 + 01002EAAH LINE CODE --- #18 + 01002EB2H LINE CODE --- #20 + 01002EB2H LINE CODE --- #22 + 01002EB5H LINE CODE --- #23 + 01002EBDH LINE CODE --- #24 + 01002EBFH LINE CODE --- #25 + 01002EC3H LINE CODE --- #26 + 01002EC9H LINE CODE --- #27 + 01002ECFH LINE CODE --- #29 + 01002ED2H LINE CODE --- #30 + 01002EE0H LINE CODE --- #31 + 01002EEEH LINE CODE --- #32 + 01002EF5H LINE CODE --- #33 + 01002EF5H LINE CODE --- #34 + 01002EF7H LINE CODE --- #35 + 01002EF7H LINE CODE --- #36 + 01002EF7H LINE CODE --- #37 --- BLOCKEND --- --- LVL=0 - 01003D30H BLOCK CODE --- LVL=0 - 01003D30H BLOCK CODE NEAR LAB LVL=1 - 00000018H SYMBOL DATA BYTE params + 01003C69H BLOCK CODE --- LVL=0 + 01003C69H BLOCK CODE NEAR LAB LVL=1 + 0000000EH SYMBOL DATA BYTE params --- BLOCKEND --- --- LVL=1 - 01003D30H LINE CODE --- #39 - 01003D30H LINE CODE --- #40 - 01003D30H LINE CODE --- #42 + 01003C69H LINE CODE --- #39 + 01003C69H LINE CODE --- #40 + 01003C69H LINE CODE --- #42 --- BLOCKEND --- --- LVL=0 - 00000019H SYMBOL DATA BYTE params + 0000000FH SYMBOL DATA BYTE params -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 153 - - - 01003C16H BLOCK CODE --- LVL=0 - 01003C16H BLOCK CODE NEAR LAB LVL=1 - 0200035DH SYMBOL XDATA --- params + 01003B29H BLOCK CODE --- LVL=0 + 01003B29H BLOCK CODE NEAR LAB LVL=1 + 02000394H SYMBOL XDATA --- params --- BLOCKEND --- --- LVL=1 - 01003C16H LINE CODE --- #51 - 01003C16H LINE CODE --- #52 - 01003C16H LINE CODE --- #54 + 01003B29H LINE CODE --- #51 + 01003B29H LINE CODE --- #52 + 01003B29H LINE CODE --- #54 --- BLOCKEND --- --- LVL=0 - 01001BCEH BLOCK CODE --- LVL=0 - 020000C3H SYMBOL XDATA --- buf - 020000C6H SYMBOL XDATA BYTE buflen - 020000C7H SYMBOL XDATA --- res - 01001BD9H BLOCK CODE NEAR LAB LVL=1 - 020000CAH SYMBOL XDATA BYTE pkt_len - 01001C8CH SYMBOL CODE VOID fail + 01001B6EH BLOCK CODE --- LVL=0 + 02000212H SYMBOL XDATA --- buf + 02000215H SYMBOL XDATA BYTE buflen + 02000216H SYMBOL XDATA --- res + 01001B79H BLOCK CODE NEAR LAB LVL=1 + 02000219H SYMBOL XDATA BYTE pkt_len + 01001C28H SYMBOL CODE VOID fail --- BLOCKEND --- --- LVL=1 - 01001BCEH LINE CODE --- #59 - 01001BD9H LINE CODE --- #60 - 01001BD9H LINE CODE --- #62 - 01001BDCH LINE CODE --- #63 - 01001BF1H LINE CODE --- #64 - 01001BF8H LINE CODE --- #65 - 01001BF8H LINE CODE --- #66 - 01001BFBH LINE CODE --- #67 - 01001BFBH LINE CODE --- #69 - 01001C02H LINE CODE --- #70 - 01001C02H LINE CODE --- #71 - 01001C07H LINE CODE --- #72 - 01001C07H LINE CODE --- #74 - 01001C1BH LINE CODE --- #75 - 01001C1BH LINE CODE --- #76 - 01001C3EH LINE CODE --- #77 - 01001C3EH LINE CODE --- #78 - 01001C3EH LINE CODE --- #79 - 01001C3EH LINE CODE --- #80 - 01001C3EH LINE CODE --- #82 - 01001C3EH LINE CODE --- #83 - 01001C3EH LINE CODE --- #84 - 01001C3EH LINE CODE --- #86 - 01001C51H LINE CODE --- #87 - 01001C51H LINE CODE --- #88 - 01001C54H LINE CODE --- #89 - 01001C57H LINE CODE --- #90 - 01001C57H LINE CODE --- #92 - 01001C5FH LINE CODE --- #93 - 01001C5FH LINE CODE --- #94 - 01001C6DH LINE CODE --- #95 - 01001C86H LINE CODE --- #96 - 01001C86H LINE CODE --- #97 - 01001C8CH LINE CODE --- #99 - 01001C8CH LINE CODE --- #100 - 01001C8EH LINE CODE --- #101 + 01001B6EH LINE CODE --- #59 + 01001B79H LINE CODE --- #60 + 01001B79H LINE CODE --- #62 + 01001B7CH LINE CODE --- #63 + 01001B91H LINE CODE --- #64 + 01001B96H LINE CODE --- #65 + 01001B96H LINE CODE --- #66 + 01001B99H LINE CODE --- #67 + 01001B99H LINE CODE --- #69 + 01001B9EH LINE CODE --- #70 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 154 + + + 01001B9EH LINE CODE --- #71 + 01001BA3H LINE CODE --- #72 + 01001BA3H LINE CODE --- #74 + 01001BB7H LINE CODE --- #75 + 01001BB7H LINE CODE --- #76 + 01001BDAH LINE CODE --- #77 + 01001BDAH LINE CODE --- #78 + 01001BDAH LINE CODE --- #79 + 01001BDAH LINE CODE --- #80 + 01001BDAH LINE CODE --- #82 + 01001BDAH LINE CODE --- #83 + 01001BDAH LINE CODE --- #84 + 01001BDAH LINE CODE --- #86 + 01001BEDH LINE CODE --- #87 + 01001BEDH LINE CODE --- #88 + 01001BF0H LINE CODE --- #89 + 01001BF3H LINE CODE --- #90 + 01001BF3H LINE CODE --- #92 + 01001BFBH LINE CODE --- #93 + 01001BFBH LINE CODE --- #94 + 01001C09H LINE CODE --- #95 + 01001C22H LINE CODE --- #96 + 01001C22H LINE CODE --- #97 + 01001C28H LINE CODE --- #99 + 01001C28H LINE CODE --- #100 + 01001C2AH LINE CODE --- #101 --- BLOCKEND --- --- LVL=0 - 010038CEH BLOCK CODE --- LVL=0 + 010037EAH BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE cmd - 010038CEH BLOCK CODE NEAR LAB LVL=1 + 010037EAH BLOCK CODE NEAR LAB LVL=1 00000006H SYMBOL DATA BYTE d --- BLOCKEND --- --- LVL=1 - 010038CEH LINE CODE --- #103 - 010038CEH LINE CODE --- #104 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 154 - - - 010038CEH LINE CODE --- #105 - 010038CEH LINE CODE --- #106 - 010038DAH LINE CODE --- #107 - 010038DAH LINE CODE --- #108 - 010038DAH LINE CODE --- #109 - 010038DCH LINE CODE --- #110 - 010038DEH LINE CODE --- #111 - 010038DEH LINE CODE --- #112 - 010038E0H LINE CODE --- #113 - 010038E2H LINE CODE --- #114 - 010038E2H LINE CODE --- #115 - 010038E4H LINE CODE --- #116 - 010038E6H LINE CODE --- #117 - 010038E6H LINE CODE --- #118 - 010038E8H LINE CODE --- #119 - 010038E8H LINE CODE --- #120 - 010038E8H LINE CODE --- #121 + 010037EAH LINE CODE --- #103 + 010037EAH LINE CODE --- #104 + 010037EAH LINE CODE --- #105 + 010037EAH LINE CODE --- #106 + 010037F6H LINE CODE --- #107 + 010037F6H LINE CODE --- #108 + 010037F6H LINE CODE --- #109 + 010037F8H LINE CODE --- #110 + 010037FAH LINE CODE --- #111 + 010037FAH LINE CODE --- #112 + 010037FCH LINE CODE --- #113 + 010037FEH LINE CODE --- #114 + 010037FEH LINE CODE --- #115 + 01003800H LINE CODE --- #116 + 01003802H LINE CODE --- #117 + 01003802H LINE CODE --- #118 + 01003804H LINE CODE --- #119 + 01003804H LINE CODE --- #120 + 01003804H LINE CODE --- #121 --- BLOCKEND --- --- LVL=0 - 01001550H BLOCK CODE --- LVL=0 - 020000B3H SYMBOL XDATA BYTE cmd - 020000B4H SYMBOL XDATA BYTE p1 - 020000B5H SYMBOL XDATA WORD p2 - 020000B7H SYMBOL XDATA --- tx - 020000BAH SYMBOL XDATA BYTE txlen - 020000BBH SYMBOL XDATA --- rx - 020000BEH SYMBOL XDATA BYTE rxlen - 020000BFH SYMBOL XDATA --- res - 0100155EH BLOCK CODE NEAR LAB LVL=1 - 020000C2H SYMBOL XDATA BYTE errors - 01001566H SYMBOL CODE VOID resend + 01001505H BLOCK CODE --- LVL=0 + 02000202H SYMBOL XDATA BYTE cmd + 02000203H SYMBOL XDATA BYTE p1 + 02000204H SYMBOL XDATA WORD p2 + 02000206H SYMBOL XDATA --- tx + 02000209H SYMBOL XDATA BYTE txlen + 0200020AH SYMBOL XDATA --- rx + 0200020DH SYMBOL XDATA BYTE rxlen +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 155 + + + 0200020EH SYMBOL XDATA --- res + 01001513H BLOCK CODE NEAR LAB LVL=1 + 02000211H SYMBOL XDATA BYTE errors + 0100151BH SYMBOL CODE VOID resend --- BLOCKEND --- --- LVL=1 - 01001550H LINE CODE --- #124 - 0100155EH LINE CODE --- #127 - 0100155EH LINE CODE --- #128 - 01001563H LINE CODE --- #129 - 01001566H LINE CODE --- #130 - 01001566H LINE CODE --- #131 - 01001590H LINE CODE --- #132 - 01001590H LINE CODE --- #133 - 01001597H LINE CODE --- #134 - 0100159DH LINE CODE --- #135 - 010015A3H LINE CODE --- #136 - 010015A3H LINE CODE --- #137 - 010015A6H LINE CODE --- #138 - 010015A6H LINE CODE --- #139 - 010015A6H LINE CODE --- #140 - 010015C2H LINE CODE --- #141 - 010015C2H LINE CODE --- #142 - 010015C8H LINE CODE --- #143 - 010015CEH LINE CODE --- #144 - 010015CEH LINE CODE --- #145 - 010015DFH LINE CODE --- #146 - 010015E2H LINE CODE --- #147 - 010015E2H LINE CODE --- #148 - 01001608H LINE CODE --- #149 - 01001608H LINE CODE --- #150 - 01001608H LINE CODE --- #151 - 01001610H LINE CODE --- #152 - 01001612H LINE CODE --- #153 - 01001612H LINE CODE --- #154 - 0100161AH LINE CODE --- #155 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 155 - - - 0100161AH LINE CODE --- #156 - 0100161AH LINE CODE --- #157 - 0100161AH LINE CODE --- #158 - 0100161AH LINE CODE --- #159 - 0100161DH LINE CODE --- #160 - 0100161DH LINE CODE --- #161 - 0100161DH LINE CODE --- #162 - 01001624H LINE CODE --- #163 - 01001626H LINE CODE --- #164 - 01001626H LINE CODE --- #166 - 01001626H LINE CODE --- #167 - 01001629H LINE CODE --- #168 - 0100162BH LINE CODE --- #169 + 01001505H LINE CODE --- #124 + 01001513H LINE CODE --- #127 + 01001513H LINE CODE --- #128 + 01001518H LINE CODE --- #129 + 0100151BH LINE CODE --- #130 + 0100151BH LINE CODE --- #131 + 01001545H LINE CODE --- #132 + 01001545H LINE CODE --- #133 + 0100154CH LINE CODE --- #134 + 01001552H LINE CODE --- #135 + 01001558H LINE CODE --- #136 + 01001558H LINE CODE --- #137 + 0100155BH LINE CODE --- #138 + 0100155BH LINE CODE --- #139 + 0100155BH LINE CODE --- #140 + 01001577H LINE CODE --- #141 + 01001577H LINE CODE --- #142 + 0100157DH LINE CODE --- #143 + 01001583H LINE CODE --- #144 + 01001583H LINE CODE --- #145 + 01001594H LINE CODE --- #146 + 01001597H LINE CODE --- #147 + 01001597H LINE CODE --- #148 + 010015BDH LINE CODE --- #149 + 010015BDH LINE CODE --- #150 + 010015BDH LINE CODE --- #151 + 010015C5H LINE CODE --- #152 + 010015C7H LINE CODE --- #153 + 010015C7H LINE CODE --- #154 + 010015CFH LINE CODE --- #155 + 010015CFH LINE CODE --- #156 + 010015CFH LINE CODE --- #157 + 010015CFH LINE CODE --- #158 + 010015CFH LINE CODE --- #159 + 010015D2H LINE CODE --- #160 + 010015D2H LINE CODE --- #161 + 010015D2H LINE CODE --- #162 + 010015D9H LINE CODE --- #163 + 010015DBH LINE CODE --- #164 + 010015DBH LINE CODE --- #166 + 010015DBH LINE CODE --- #167 + 010015DEH LINE CODE --- #168 + 010015E0H LINE CODE --- #169 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- EEPROM - 020000B2H PUBLIC XDATA BYTE ?__eeprom_write?BYTE - 0100304DH PUBLIC CODE --- __eeprom_write - 020000B3H PUBLIC XDATA BYTE ?_eeprom_read?BYTE - 01003482H PUBLIC CODE --- _eeprom_read - 010031E6H PUBLIC CODE --- eeprom_init + 02000201H PUBLIC XDATA BYTE ?__eeprom_write?BYTE + 01002F92H PUBLIC CODE --- __eeprom_write + 02000202H PUBLIC XDATA BYTE ?_eeprom_read?BYTE + 010033D0H PUBLIC CODE --- _eeprom_read + 01003130H PUBLIC CODE --- eeprom_init 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR 000000D0H.2 SFRSYM DATA BIT PSW_OV 00000090H SFRSYM DATA BYTE P1 000000F8H.1 SFRSYM DATA BIT SPI0CN0_TXNF +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 156 + + 00000097H SFRSYM DATA BYTE WDTCN 000000A0H SFRSYM DATA BYTE P2 000000B0H SFRSYM DATA BYTE P3 @@ -10074,9 +10112,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.3 SFRSYM DATA BIT SCON0_TB8 000000F0H SFRSYM DATA BIT B_B0 00000082H SFRSYM DATA WORD DP -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 156 - - 000000A2H SFRSYM DATA BYTE TMR4RLL 000000ECH SFRSYM DATA BYTE PCA0CPH2 000000F0H.1 SFRSYM DATA BIT B_B1 @@ -10104,6 +10139,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.5 SFRSYM DATA BIT SCON0_MCE 000000F0H.7 SFRSYM DATA BIT B_B7 000000C3H SFRSYM DATA BYTE SMB0FCN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 157 + + 000000E1H SFRSYM DATA BYTE XBR0 000000C4H SFRSYM DATA BYTE SMB0FCN1 000000C1H SFRSYM DATA BYTE SMB0CF @@ -10139,9 +10177,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000009AH SFRSYM DATA BYTE SPI0FCN0 000000D8H.2 SFRSYM DATA BIT PCA0CN0_CCF2 000000E0H.7 SFRSYM DATA BIT ACC_ACC7 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 157 - - 00000094H SFRSYM DATA WORD TMR3 0000009BH SFRSYM DATA BYTE SPI0FCN1 000000A4H SFRSYM DATA WORD TMR4 @@ -10169,6 +10204,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000009EH SFRSYM DATA BYTE PCA0CENT 000000BAH SFRSYM DATA BYTE I2C0CN0 000000D2H SFRSYM DATA BYTE CRC0ST +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 158 + + 000000F8H.4 SFRSYM DATA BIT SPI0CN0_RXOVRN 000000D0H.4 SFRSYM DATA BIT PSW_RS1 00000095H SFRSYM DATA BYTE SBRLL1 @@ -10204,9 +10242,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.7 SFRSYM DATA BIT SCON0_SMODE 000000B5H SFRSYM DATA BYTE DEVICEID 000000A9H SFRSYM DATA BYTE CLKSEL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 158 - - 000000F8H SFRSYM DATA BIT SPI0CN0_SPIEN 000000F0H SFRSYM DATA BYTE B 000000BEH SFRSYM DATA BYTE ADC0H @@ -10234,6 +10269,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C0H.2 SFRSYM DATA BIT SMB0CN0_ARBLOST 000000B8H.5 SFRSYM DATA BIT IP_PT2 0000008AH SFRSYM DATA BYTE TL0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 159 + + 000000D0H.5 SFRSYM DATA BIT PSW_F0 000000A8H.6 SFRSYM DATA BIT IE_ESPI0 0000008BH SFRSYM DATA BYTE TL1 @@ -10269,9 +10307,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000080H.5 SFRSYM DATA BIT P0_B5 000000D8H.1 SFRSYM DATA BIT UART1FCN1_RXTO0 00000090H.5 SFRSYM DATA BIT P1_B5 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 159 - - 00000080H.6 SFRSYM DATA BIT P0_B6 000000F5H SFRSYM DATA BYTE EIP1H 000000D8H.2 SFRSYM DATA BIT UART1FCN1_RXTO1 @@ -10299,6 +10334,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C3H SFRSYM DATA BYTE ADC0GTL 00000098H.7 SFRSYM DATA BIT TMR4CN0_TF4H 00000098H.3 SFRSYM DATA BIT TMR4CN0_T4SPLIT +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 160 + + 000000C8H.6 SFRSYM DATA BIT TMR2CN0_TF2L 00000098H.1 SFRSYM DATA BIT SCON0_TI 000000E8H SFRSYM DATA BIT ADC0CN0_ADCM0 @@ -10334,9 +10372,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000091H SFRSYM DATA BYTE TMR3CN0 000000FDH SFRSYM DATA BYTE TMR2CN1 00000098H SFRSYM DATA BYTE TMR4CN0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 160 - - 000000FEH SFRSYM DATA BYTE TMR3CN1 000000FFH SFRSYM DATA BYTE TMR4CN1 000000D7H SFRSYM DATA BYTE SMB0ADR @@ -10364,6 +10399,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 161 + + 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 000000A3H SFRSYM DATA BYTE SPI0DAT @@ -10380,93 +10418,90 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01003D3AH BLOCK CODE --- LVL=0 + 01003C73H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 010031E6H BLOCK CODE --- LVL=0 - 010031E6H BLOCK CODE NEAR LAB LVL=1 - 02000041H SYMBOL XDATA BYTE secbyte + 01003130H BLOCK CODE --- LVL=0 + 01003130H BLOCK CODE NEAR LAB LVL=1 + 02000190H SYMBOL XDATA BYTE secbyte --- BLOCKEND --- --- LVL=1 - 010031E6H LINE CODE --- #12 - 010031E6H LINE CODE --- #13 - 010031E6H LINE CODE --- #15 - 010031F3H LINE CODE --- #16 - 010031FAH LINE CODE --- #17 - 010031FAH LINE CODE --- #18 - 01003211H LINE CODE --- #19 - 01003217H LINE CODE --- #20 - 01003226H LINE CODE --- #21 - 01003226H LINE CODE --- #22 + 01003130H LINE CODE --- #12 + 01003130H LINE CODE --- #13 + 01003130H LINE CODE --- #15 + 0100313DH LINE CODE --- #16 + 01003144H LINE CODE --- #17 + 01003144H LINE CODE --- #18 + 0100315BH LINE CODE --- #19 + 01003161H LINE CODE --- #20 + 01003170H LINE CODE --- #21 + 01003170H LINE CODE --- #22 --- BLOCKEND --- --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 161 - - - 01003482H BLOCK CODE --- LVL=0 + 010033D0H BLOCK CODE --- LVL=0 00000006H SYMBOL DATA WORD addr - 020000B5H SYMBOL XDATA --- buf - 020000B8H SYMBOL XDATA BYTE len - 01003488H BLOCK CODE NEAR LAB LVL=1 + 02000204H SYMBOL XDATA --- buf + 02000207H SYMBOL XDATA BYTE len + 010033D6H BLOCK CODE NEAR LAB LVL=1 00000006H SYMBOL DATA --- eepaddr 00000020H.0 SYMBOL BIT BIT old_int --- BLOCKEND --- --- LVL=1 - 01003482H LINE CODE --- #24 - 01003488H LINE CODE --- #25 - 01003488H LINE CODE --- #26 - 01003488H LINE CODE --- #29 - 01003492H LINE CODE --- #30 - 01003492H LINE CODE --- #31 - 01003496H LINE CODE --- #32 - 01003498H LINE CODE --- #33 - 010034B5H LINE CODE --- #34 - 010034B9H LINE CODE --- #35 - 010034BBH LINE CODE --- #36 + 010033D0H LINE CODE --- #24 + 010033D6H LINE CODE --- #25 + 010033D6H LINE CODE --- #26 + 010033D6H LINE CODE --- #29 + 010033E0H LINE CODE --- #30 + 010033E0H LINE CODE --- #31 + 010033E4H LINE CODE --- #32 + 010033E6H LINE CODE --- #33 + 01003403H LINE CODE --- #34 + 01003407H LINE CODE --- #35 + 01003409H LINE CODE --- #36 --- BLOCKEND --- --- LVL=0 - 0100304DH BLOCK CODE --- LVL=0 + 01002F92H BLOCK CODE --- LVL=0 00000006H SYMBOL DATA WORD addr 00000001H SYMBOL DATA --- buf - 020000B7H SYMBOL XDATA BYTE len - 020000B8H SYMBOL XDATA BYTE flags - 0100304DH BLOCK CODE NEAR LAB LVL=1 - 00000010H SYMBOL DATA --- eepaddr + 02000206H SYMBOL XDATA BYTE len + 02000207H SYMBOL XDATA BYTE flags + 01002F92H BLOCK CODE NEAR LAB LVL=1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 162 + + + 00000016H SYMBOL DATA --- eepaddr 00000020H.0 SYMBOL BIT BIT old_int --- BLOCKEND --- --- LVL=1 - 0100304DH LINE CODE --- #38 - 0100304DH LINE CODE --- #39 - 0100304DH LINE CODE --- #40 - 01003051H LINE CODE --- #43 - 0100305BH LINE CODE --- #44 - 0100305BH LINE CODE --- #45 - 0100305FH LINE CODE --- #46 - 01003061H LINE CODE --- #48 - 01003064H LINE CODE --- #49 - 01003067H LINE CODE --- #52 - 0100306AH LINE CODE --- #53 - 0100306DH LINE CODE --- #54 - 01003072H LINE CODE --- #56 - 0100307CH LINE CODE --- #57 - 01003080H LINE CODE --- #58 - 01003084H LINE CODE --- #60 - 0100308CH LINE CODE --- #61 - 01003093H LINE CODE --- #62 - 01003095H LINE CODE --- #63 + 01002F92H LINE CODE --- #38 + 01002F92H LINE CODE --- #39 + 01002F92H LINE CODE --- #40 + 01002F96H LINE CODE --- #43 + 01002FA0H LINE CODE --- #44 + 01002FA0H LINE CODE --- #45 + 01002FA4H LINE CODE --- #46 + 01002FA6H LINE CODE --- #48 + 01002FA9H LINE CODE --- #49 + 01002FACH LINE CODE --- #52 + 01002FAFH LINE CODE --- #53 + 01002FB2H LINE CODE --- #54 + 01002FB7H LINE CODE --- #56 + 01002FC1H LINE CODE --- #57 + 01002FC5H LINE CODE --- #58 + 01002FC9H LINE CODE --- #60 + 01002FD1H LINE CODE --- #61 + 01002FD8H LINE CODE --- #62 + 01002FDAH LINE CODE --- #63 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- I2C - 01003B42H PUBLIC CODE --- smb_init - 010027B3H PUBLIC CODE --- _reverse_bits - 010026B1H PUBLIC CODE --- _feed_crc - 01003B93H PUBLIC CODE --- smb_init_crc - 0100372FH PUBLIC CODE --- _smb_set_ext_write - 020000CBH PUBLIC XDATA BYTE ?_smb_write?BYTE - 01003267H PUBLIC CODE --- _smb_write - 020000CBH PUBLIC XDATA BYTE ?_smb_read?BYTE - 01003001H PUBLIC CODE --- _smb_read + 01003AF3H PUBLIC CODE --- smb_init + 01002689H PUBLIC CODE --- _reverse_bits + 01002587H PUBLIC CODE --- _feed_crc + 01003AA6H PUBLIC CODE --- smb_init_crc + 01003648H PUBLIC CODE --- _smb_set_ext_write + 0200021AH PUBLIC XDATA BYTE ?_smb_write?BYTE + 010031B1H PUBLIC CODE --- _smb_write + 0200021AH PUBLIC XDATA BYTE ?_smb_read?BYTE + 01002F45H PUBLIC CODE --- _smb_read 000000A2H SFRSYM DATA BYTE SPI0CKR -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 162 - - 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR 000000D0H.2 SFRSYM DATA BIT PSW_OV @@ -10482,7 +10517,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -10494,6 +10529,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A5H SFRSYM DATA BYTE P1MDOUT 000000E8H.5 SFRSYM DATA BIT ADC0CN0_ADINT 000000CBH SFRSYM DATA BYTE TMR2RLH +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 163 + + 000000A6H SFRSYM DATA BYTE P2MDOUT 000000A8H SFRSYM DATA BYTE IE 00000093H SFRSYM DATA BYTE TMR3RLH @@ -10529,9 +10567,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F0H.5 SFRSYM DATA BIT B_B5 000000DCH SFRSYM DATA BYTE PCA0CPM2 000000B8H SFRSYM DATA BYTE IP -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 163 - - 000000B9H SFRSYM DATA BYTE ADC0TK 000000F0H.6 SFRSYM DATA BIT B_B6 000000C5H SFRSYM DATA WORD ADC0LT @@ -10559,6 +10594,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E0H.2 SFRSYM DATA BIT ACC_ACC2 000000C6H SFRSYM DATA BYTE REG1CN 000000E0H.3 SFRSYM DATA BIT ACC_ACC3 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 164 + + 00000081H SFRSYM DATA BYTE SP 0000009DH SFRSYM DATA BYTE CMP0MD 000000E0H.4 SFRSYM DATA BIT ACC_ACC4 @@ -10594,9 +10632,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000096H SFRSYM DATA BYTE SBRLH1 000000FEH SFRSYM DATA BYTE P0MASK 000000D8H.5 SFRSYM DATA BIT UART1FCN1_TXHOLD -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 164 - - 000000EEH SFRSYM DATA BYTE P1MASK 000000FCH SFRSYM DATA BYTE P2MASK 000000D0H.3 SFRSYM DATA BIT PSW_RS0 @@ -10624,6 +10659,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AAH SFRSYM DATA BYTE CMP1MX 00000098H.1 SFRSYM DATA BIT TMR4CN0_T4XCLK1 000000A8H.3 SFRSYM DATA BIT IE_ET1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 165 + + 000000D4H SFRSYM DATA BYTE P0SKIP 000000D8H SFRSYM DATA BIT UART1FCN1_RIE 000000A8H.5 SFRSYM DATA BIT IE_ET2 @@ -10659,9 +10697,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B8H.4 SFRSYM DATA BIT IP_PS0 000000FAH SFRSYM DATA BYTE UART1FCT 0000008DH SFRSYM DATA BYTE TH1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 165 - - 000000FAH SFRSYM DATA BYTE PCA0H 000000F5H SFRSYM DATA BYTE I2C0FCT 000000B8H.1 SFRSYM DATA BIT IP_PT0 @@ -10689,6 +10724,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000080H.2 SFRSYM DATA BIT P0_B2 000000BFH SFRSYM DATA BYTE CMP1CN0 00000099H SFRSYM DATA BYTE CMP0CN1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 166 + + 00000088H.3 SFRSYM DATA BIT TCON_IE1 000000B0H SFRSYM DATA BIT P3_B0 000000A0H.1 SFRSYM DATA BIT P2_B1 @@ -10724,9 +10762,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H SFRSYM DATA BIT SCON0_RI 000000D6H SFRSYM DATA BYTE HFO1CAL 00000082H SFRSYM DATA BYTE DPL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 166 - - 00000088H.7 SFRSYM DATA BIT TCON_TF1 000000C8H SFRSYM DATA BIT SCON1_RI 00000099H SFRSYM DATA BYTE SBUF0 @@ -10754,6 +10789,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F6H SFRSYM DATA BYTE PRTDRV 000000EDH SFRSYM DATA BYTE P1MAT 000000E8H.3 SFRSYM DATA BIT ADC0CN0_ADWINT +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 167 + + 00000095H SFRSYM DATA WORD SBRL1 000000B2H SFRSYM DATA BYTE USB0AEC 00000093H SFRSYM DATA BYTE SMOD1 @@ -10789,9 +10827,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000CCH SFRSYM DATA BYTE TMR2L 000000F8H.7 SFRSYM DATA BIT SPI0CN0_SPIF 000000AEH SFRSYM DATA BYTE USB0ADR -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 167 - - 00000094H SFRSYM DATA BYTE TMR3L 000000DFH SFRSYM DATA BYTE ADC0PWR 000000A8H.7 SFRSYM DATA BIT IE_EA @@ -10799,7 +10834,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 @@ -10814,141 +10849,144 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01003A21H SYMBOL CODE --- while_busy + 01003981H SYMBOL CODE --- while_busy - 01003785H BLOCK CODE --- LVL=0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 168 + + + 01003888H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 01003A21H BLOCK CODE --- LVL=0 - 01003A21H LINE CODE --- #17 - 01003A21H LINE CODE --- #18 - 01003A21H LINE CODE --- #19 - 01003A28H LINE CODE --- #20 - 01003A28H LINE CODE --- #21 - 01003A31H LINE CODE --- #22 - 01003A31H LINE CODE --- #23 - 01003A36H LINE CODE --- #24 - 01003A39H LINE CODE --- #25 - 01003A39H LINE CODE --- #26 - 01003A39H LINE CODE --- #27 - 01003A3BH LINE CODE --- #28 + 01003981H BLOCK CODE --- LVL=0 + 01003981H LINE CODE --- #17 + 01003981H LINE CODE --- #18 + 01003981H LINE CODE --- #19 + 01003986H LINE CODE --- #20 + 01003986H LINE CODE --- #21 + 0100398FH LINE CODE --- #22 + 0100398FH LINE CODE --- #23 + 01003994H LINE CODE --- #24 + 01003997H LINE CODE --- #25 + 01003997H LINE CODE --- #26 + 01003997H LINE CODE --- #27 + 01003999H LINE CODE --- #28 --- BLOCKEND --- --- LVL=0 - 01003001H BLOCK CODE --- LVL=0 - 020000CBH SYMBOL XDATA BYTE addr - 020000CCH SYMBOL XDATA --- dest - 020000CFH SYMBOL XDATA BYTE count - 01003001H LINE CODE --- #30 - 0100300AH LINE CODE --- #31 - 0100300AH LINE CODE --- #32 - 01003013H LINE CODE --- #34 - 01003019H LINE CODE --- #35 - 0100301CH LINE CODE --- #37 - 01003020H LINE CODE --- #38 - 01003028H LINE CODE --- #39 - 01003030H LINE CODE --- #40 - 0100303CH LINE CODE --- #41 - 0100303EH LINE CODE --- #43 - 01003047H LINE CODE --- #44 - 0100304CH LINE CODE --- #45 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 168 - - + 01002F45H BLOCK CODE --- LVL=0 + 0200021AH SYMBOL XDATA BYTE addr + 0200021BH SYMBOL XDATA --- dest + 0200021EH SYMBOL XDATA BYTE count + 01002F45H LINE CODE --- #30 + 01002F4EH LINE CODE --- #31 + 01002F4EH LINE CODE --- #32 + 01002F57H LINE CODE --- #34 + 01002F5FH LINE CODE --- #35 + 01002F61H LINE CODE --- #37 + 01002F65H LINE CODE --- #38 + 01002F6DH LINE CODE --- #39 + 01002F75H LINE CODE --- #40 + 01002F81H LINE CODE --- #41 + 01002F83H LINE CODE --- #43 + 01002F8CH LINE CODE --- #44 + 01002F91H LINE CODE --- #45 --- BLOCKEND --- --- LVL=0 - 01003267H BLOCK CODE --- LVL=0 - 020000CBH SYMBOL XDATA BYTE addr - 020000CCH SYMBOL XDATA --- buf - 020000CFH SYMBOL XDATA BYTE len - 01003267H LINE CODE --- #48 - 01003270H LINE CODE --- #49 - 01003270H LINE CODE --- #50 - 01003276H LINE CODE --- #52 - 0100327CH LINE CODE --- #53 - 0100327FH LINE CODE --- #55 - 01003287H LINE CODE --- #56 - 01003293H LINE CODE --- #57 - 01003298H LINE CODE --- #58 - 010032A0H LINE CODE --- #60 - 010032A2H LINE CODE --- #61 - 010032A5H LINE CODE --- #62 + 010031B1H BLOCK CODE --- LVL=0 + 0200021AH SYMBOL XDATA BYTE addr + 0200021BH SYMBOL XDATA --- buf + 0200021EH SYMBOL XDATA BYTE len + 010031B1H LINE CODE --- #48 + 010031BAH LINE CODE --- #49 + 010031BAH LINE CODE --- #50 + 010031C0H LINE CODE --- #52 + 010031C8H LINE CODE --- #53 + 010031CAH LINE CODE --- #55 + 010031D2H LINE CODE --- #56 + 010031DEH LINE CODE --- #57 + 010031E3H LINE CODE --- #58 + 010031EBH LINE CODE --- #60 + 010031EDH LINE CODE --- #61 + 010031F0H LINE CODE --- #62 --- BLOCKEND --- --- LVL=0 - 0100372FH BLOCK CODE --- LVL=0 - 020000CBH SYMBOL XDATA --- extbuf - 020000CEH SYMBOL XDATA BYTE extlen - 0100372FH LINE CODE --- #64 - 0100373AH LINE CODE --- #65 - 0100373AH LINE CODE --- #66 - 0100373DH LINE CODE --- #67 - 01003745H LINE CODE --- #68 - 01003751H LINE CODE --- #69 - 01003756H LINE CODE --- #70 - 0100375BH LINE CODE --- #71 + 01003648H BLOCK CODE --- LVL=0 + 0200021AH SYMBOL XDATA --- extbuf + 0200021DH SYMBOL XDATA BYTE extlen + 01003648H LINE CODE --- #64 + 01003653H LINE CODE --- #65 + 01003653H LINE CODE --- #66 + 01003656H LINE CODE --- #67 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 169 + + + 0100365EH LINE CODE --- #68 + 0100366AH LINE CODE --- #69 + 0100366FH LINE CODE --- #70 + 01003674H LINE CODE --- #71 --- BLOCKEND --- --- LVL=0 - 01003B93H BLOCK CODE --- LVL=0 - 01003B93H LINE CODE --- #73 - 01003B93H LINE CODE --- #74 - 01003B93H LINE CODE --- #75 - 01003B96H LINE CODE --- #76 - 01003B9DH LINE CODE --- #77 - 01003B9FH LINE CODE --- #78 - 01003BA6H LINE CODE --- #79 + 01003AA6H BLOCK CODE --- LVL=0 + 01003AA6H LINE CODE --- #73 + 01003AA6H LINE CODE --- #74 + 01003AA6H LINE CODE --- #75 + 01003AA9H LINE CODE --- #76 + 01003AB0H LINE CODE --- #77 + 01003AB2H LINE CODE --- #78 + 01003AB9H LINE CODE --- #79 --- BLOCKEND --- --- LVL=0 - 010026B1H BLOCK CODE --- LVL=0 + 01002587H BLOCK CODE --- LVL=0 00000002H SYMBOL DATA WORD crc 00000005H SYMBOL DATA BYTE b - 010026B1H LINE CODE --- #81 - 010026B5H LINE CODE --- #82 - 010026B5H LINE CODE --- #83 - 010026B8H LINE CODE --- #84 - 010026C7H LINE CODE --- #85 - 010026D7H LINE CODE --- #86 - 010026E7H LINE CODE --- #87 - 010026F7H LINE CODE --- #88 - 01002707H LINE CODE --- #89 - 01002717H LINE CODE --- #90 - 01002727H LINE CODE --- #91 - 01002733H LINE CODE --- #92 + 01002587H LINE CODE --- #81 + 0100258BH LINE CODE --- #82 + 0100258BH LINE CODE --- #83 + 0100258EH LINE CODE --- #84 + 0100259DH LINE CODE --- #85 + 010025ADH LINE CODE --- #86 + 010025BDH LINE CODE --- #87 + 010025CDH LINE CODE --- #88 + 010025DDH LINE CODE --- #89 + 010025EDH LINE CODE --- #90 + 010025FDH LINE CODE --- #91 + 01002609H LINE CODE --- #92 --- BLOCKEND --- --- LVL=0 - 010027B3H BLOCK CODE --- LVL=0 + 01002689H BLOCK CODE --- LVL=0 00000004H SYMBOL DATA WORD crc -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 169 - - - 010027B3H LINE CODE --- #94 - 010027B7H LINE CODE --- #95 - 010027B7H LINE CODE --- #97 - 010027D6H LINE CODE --- #98 - 010027FDH LINE CODE --- #99 - 01002829H LINE CODE --- #100 - 0100282EH LINE CODE --- #101 + 01002689H LINE CODE --- #94 + 0100268DH LINE CODE --- #95 + 0100268DH LINE CODE --- #97 + 010026ACH LINE CODE --- #98 + 010026D3H LINE CODE --- #99 + 010026FFH LINE CODE --- #100 + 01002704H LINE CODE --- #101 --- BLOCKEND --- --- LVL=0 - 01003B42H BLOCK CODE --- LVL=0 - 01003B42H LINE CODE --- #103 - 01003B42H LINE CODE --- #104 - 01003B42H LINE CODE --- #105 - 01003B51H LINE CODE --- #106 - 01003B56H LINE CODE --- #107 + 01003AF3H BLOCK CODE --- LVL=0 + 01003AF3H LINE CODE --- #103 + 01003AF3H LINE CODE --- #104 + 01003AF3H LINE CODE --- #105 + 01003B02H LINE CODE --- #106 + 01003B05H LINE CODE --- #107 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- MAIN 00000021H PUBLIC DATA --- appdata - 01000EF6H PUBLIC CODE --- main - 01003DCAH PUBLIC CODE --- test_app - 01003D44H PUBLIC CODE --- _set_app_u2f_hid_msg - 01003DC7H PUBLIC CODE --- _set_app_error + 01000C19H PUBLIC CODE --- main + 01003B3AH PUBLIC CODE --- _rgb + 01003C7DH PUBLIC CODE --- _set_app_u2f_hid_msg + 01003D0DH PUBLIC CODE --- _set_app_error 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR 000000D0H.2 SFRSYM DATA BIT PSW_OV +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 170 + + 00000090H SFRSYM DATA BYTE P1 000000F8H.1 SFRSYM DATA BIT SPI0CN0_TXNF 00000097H SFRSYM DATA BYTE WDTCN @@ -10961,7 +10999,7 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -10984,9 +11022,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000CAH SFRSYM DATA BYTE TMR2RLL 000000FCH SFRSYM DATA BYTE PCA0CPH0 00000092H SFRSYM DATA BYTE TMR3RLL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 170 - - 000000EAH SFRSYM DATA BYTE PCA0CPH1 00000098H.3 SFRSYM DATA BIT SCON0_TB8 000000F0H SFRSYM DATA BIT B_B0 @@ -11014,6 +11049,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B9H SFRSYM DATA BYTE ADC0TK 000000F0H.6 SFRSYM DATA BIT B_B6 000000C5H SFRSYM DATA WORD ADC0LT +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 171 + + 000000D8H.6 SFRSYM DATA BIT UART1FCN1_TXNF 00000098H.5 SFRSYM DATA BIT SCON0_MCE 000000F0H.7 SFRSYM DATA BIT B_B7 @@ -11049,9 +11087,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000098H.2 SFRSYM DATA BIT TMR4CN0_TR4 000000D8H.1 SFRSYM DATA BIT PCA0CN0_CCF1 000000E0H.6 SFRSYM DATA BIT ACC_ACC6 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 171 - - 000000CCH SFRSYM DATA WORD TMR2 0000009AH SFRSYM DATA BYTE SPI0FCN0 000000D8H.2 SFRSYM DATA BIT PCA0CN0_CCF2 @@ -11079,6 +11114,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000EEH SFRSYM DATA BYTE P1MASK 000000FCH SFRSYM DATA BYTE P2MASK 000000D0H.3 SFRSYM DATA BIT PSW_RS0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 172 + + 000000D8H.7 SFRSYM DATA BIT PCA0CN0_CF 0000009EH SFRSYM DATA BYTE PCA0CENT 000000BAH SFRSYM DATA BYTE I2C0CN0 @@ -11114,9 +11152,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B2H SFRSYM DATA BYTE ADC0CN1 000000D8H.6 SFRSYM DATA BIT PCA0CN0_CR 000000A8H.2 SFRSYM DATA BIT IE_EX1 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 172 - - 000000C8H.7 SFRSYM DATA BIT SCON1_OVR 00000098H.7 SFRSYM DATA BIT SCON0_SMODE 000000B5H SFRSYM DATA BYTE DEVICEID @@ -11144,6 +11179,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000FAH SFRSYM DATA BYTE PCA0H 000000F5H SFRSYM DATA BYTE I2C0FCT 000000B8H.1 SFRSYM DATA BIT IP_PT0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 173 + + 000000B8H.3 SFRSYM DATA BIT IP_PT1 000000C0H.2 SFRSYM DATA BIT SMB0CN0_ARBLOST 000000B8H.5 SFRSYM DATA BIT IP_PT2 @@ -11179,9 +11217,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A0H.2 SFRSYM DATA BIT P2_B2 00000090H.3 SFRSYM DATA BIT P1_B3 00000080H.4 SFRSYM DATA BIT P0_B4 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 173 - - 000000A0H.3 SFRSYM DATA BIT P2_B3 00000090H.4 SFRSYM DATA BIT P1_B4 00000080H.5 SFRSYM DATA BIT P0_B5 @@ -11209,6 +11244,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000088H.7 SFRSYM DATA BIT TCON_TF1 000000C8H SFRSYM DATA BIT SCON1_RI 00000099H SFRSYM DATA BYTE SBUF0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 174 + + 00000087H SFRSYM DATA BYTE PCON0 000000F2H SFRSYM DATA BYTE IPH 000000C3H SFRSYM DATA BYTE ADC0GTL @@ -11244,9 +11282,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C5H SFRSYM DATA BYTE ADC0LTL 000000F8H.5 SFRSYM DATA BIT SPI0CN0_MODF 000000B8H.6 SFRSYM DATA BIT IP_PSPI0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 174 - - 0000009CH SFRSYM DATA BYTE PCA0CLR 000000C8H SFRSYM DATA BYTE TMR2CN0 00000091H SFRSYM DATA BYTE TMR3CN0 @@ -11274,11 +11309,14 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000094H SFRSYM DATA BYTE TMR3L 000000DFH SFRSYM DATA BYTE ADC0PWR 000000A8H.7 SFRSYM DATA BIT IE_EA +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 175 + + 000000A4H SFRSYM DATA BYTE TMR4L 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 @@ -11293,145 +11331,165 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 01003A3CH SYMBOL CODE --- _init + 01003933H SYMBOL CODE --- _init - 01003A3CH BLOCK CODE --- LVL=0 + 010038E1H BLOCK CODE --- LVL=0 + --- BLOCKEND --- --- LVL=0 + + 01003933H BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- ap - 01003A3CH LINE CODE --- #20 - 01003A3CH LINE CODE --- #21 - 01003A3CH LINE CODE --- #22 - 01003A45H LINE CODE --- #23 - 01003A48H LINE CODE --- #24 - 01003A4BH LINE CODE --- #25 - 01003A4EH LINE CODE --- #27 - 01003A51H LINE CODE --- #28 - 01003A54H LINE CODE --- #30 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 175 - - - 01003A56H LINE CODE --- #31 + 01003933H LINE CODE --- #20 + 01003933H LINE CODE --- #21 + 01003933H LINE CODE --- #22 + 0100393CH LINE CODE --- #23 + 0100393FH LINE CODE --- #24 + 01003942H LINE CODE --- #25 + 01003945H LINE CODE --- #27 + 01003948H LINE CODE --- #28 + 0100394BH LINE CODE --- #30 + 0100394DH LINE CODE --- #31 --- BLOCKEND --- --- LVL=0 - 01003DC7H BLOCK CODE --- LVL=0 + 01003D0DH BLOCK CODE --- LVL=0 00000007H SYMBOL DATA BYTE ec - 01003DC7H LINE CODE --- #33 - 01003DC7H LINE CODE --- #34 - 01003DC7H LINE CODE --- #35 - 01003DC9H LINE CODE --- #36 + 01003D0DH LINE CODE --- #33 + 01003D0DH LINE CODE --- #34 + 01003D0DH LINE CODE --- #35 + 01003D0FH LINE CODE --- #36 --- BLOCKEND --- --- LVL=0 - 01003D44H BLOCK CODE --- LVL=0 + 01003C7DH BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- msg - 01003D44H LINE CODE --- #38 - 01003D44H LINE CODE --- #39 - 01003D44H LINE CODE --- #40 - 01003D47H LINE CODE --- #41 - 01003D4DH LINE CODE --- #42 + 01003C7DH LINE CODE --- #38 + 01003C7DH LINE CODE --- #39 + 01003C7DH LINE CODE --- #40 + 01003C80H LINE CODE --- #41 + 01003C86H LINE CODE --- #42 --- BLOCKEND --- --- LVL=0 - 01003DCAH BLOCK CODE --- LVL=0 - 01003DCAH LINE CODE --- #59 - 01003DCAH LINE CODE --- #60 - 01003DCAH LINE CODE --- #62 - 01003DCCH LINE CODE --- #63 + 01003B3AH BLOCK CODE --- LVL=0 + 00000007H SYMBOL DATA BYTE r + 00000005H SYMBOL DATA BYTE g + 00000003H SYMBOL DATA BYTE b +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 176 + + + 01003B3AH LINE CODE --- #45 + 01003B3AH LINE CODE --- #46 + 01003B3AH LINE CODE --- #47 + 01003B40H LINE CODE --- #48 + 01003B46H LINE CODE --- #49 + 01003B4AH LINE CODE --- #50 --- BLOCKEND --- --- LVL=0 - 01000EF6H BLOCK CODE --- LVL=0 - 01000EF6H BLOCK CODE NEAR LAB LVL=1 - 00000008H SYMBOL DATA BYTE i - 00000009H SYMBOL DATA WORD last_ms - 0000000BH SYMBOL DATA WORD ms_heart - 0000000DH SYMBOL DATA WORD ms_wink - 0000000FH SYMBOL DATA BYTE winks - 0200003EH SYMBOL XDATA BYTE leds - 0200003FH SYMBOL XDATA WORD button + 01000C19H BLOCK CODE --- LVL=0 + 01000C19H BLOCK CODE NEAR LAB LVL=1 + 02000187H SYMBOL XDATA WORD ms_heart + 02000189H SYMBOL XDATA WORD ms_wink + 0200018BH SYMBOL XDATA WORD ms_grad + 0200018DH SYMBOL XDATA BYTE winks + 0200018EH SYMBOL XDATA BYTE grad_dir + 0200018FH SYMBOL XDATA BYTE light --- BLOCKEND --- --- LVL=1 - 01000EF6H LINE CODE --- #69 - 01000EF6H LINE CODE --- #71 - 01000EF9H LINE CODE --- #72 - 01000EFFH LINE CODE --- #75 - 01000F01H LINE CODE --- #76 - 01000F05H LINE CODE --- #77 - 01000F09H LINE CODE --- #79 - 01000F0CH LINE CODE --- #80 - 01000F15H LINE CODE --- #83 - 01000F17H LINE CODE --- #86 - 01000F19H LINE CODE --- #88 - 01000F22H LINE CODE --- #94 - 01000F22H LINE CODE --- #96 - 01000F4AH LINE CODE --- #97 - 01000F4AH LINE CODE --- #98 - 01000F63H LINE CODE --- #99 - 01000F70H LINE CODE --- #100 - 01000F8AH LINE CODE --- #101 - 01000F8CH LINE CODE --- #102 - 01000F8FH LINE CODE --- #103 - 01000F8FH LINE CODE --- #106 - 01000FA3H LINE CODE --- #107 - 01000FA3H LINE CODE --- #108 - 01000FB9H LINE CODE --- #110 - 01000FB9H LINE CODE --- #112 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 176 + 01000C19H LINE CODE --- #57 + 01000C19H LINE CODE --- #62 + 01000C1EH LINE CODE --- #63 + 01000C20H LINE CODE --- #64 + 01000C22H LINE CODE --- #66 + 01000C25H LINE CODE --- #67 + 01000C2EH LINE CODE --- #70 + 01000C30H LINE CODE --- #73 + 01000C32H LINE CODE --- #75 + 01000C3BH LINE CODE --- #81 + 01000C3BH LINE CODE --- #83 + 01000C58H LINE CODE --- #84 + 01000C58H LINE CODE --- #85 + 01000C71H LINE CODE --- #86 + 01000C71H LINE CODE --- #89 + 01000C85H LINE CODE --- #90 + 01000C85H LINE CODE --- #91 + 01000C9BH LINE CODE --- #92 + 01000C9BH LINE CODE --- #94 + 01000CB6H LINE CODE --- #95 + 01000CB6H LINE CODE --- #96 + 01000CB6H LINE CODE --- #97 + 01000CD6H LINE CODE --- #98 + 01000CD6H LINE CODE --- #99 + 01000CDEH LINE CODE --- #100 + 01000CDEH LINE CODE --- #101 + 01000CE3H LINE CODE --- #102 + 01000CE5H LINE CODE --- #103 + 01000CE8H LINE CODE --- #104 + 01000CE8H LINE CODE --- #105 + 01000CEDH LINE CODE --- #106 + 01000CEDH LINE CODE --- #107 + 01000CF3H LINE CODE --- #108 + 01000CF6H LINE CODE --- #109 + 01000CFFH LINE CODE --- #111 + 01000D0AH LINE CODE --- #113 + 01000D11H LINE CODE --- #114 + 01000D18H LINE CODE --- #116 + 01000D21H LINE CODE --- #117 + 01000D21H LINE CODE --- #118 + 01000D23H LINE CODE --- #119 + 01000D23H LINE CODE --- #121 + 01000D2CH LINE CODE --- #125 + 01000D32H LINE CODE --- #126 + 01000D34H LINE CODE --- #127 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 177 - 01000FC6H LINE CODE --- #113 - 01000FC6H LINE CODE --- #114 - 01000FC6H LINE CODE --- #115 - 01000FC6H LINE CODE --- #116 - 01000FC6H LINE CODE --- #118 - 01000FCFH LINE CODE --- #122 - 01000FD5H LINE CODE --- #123 - 01000FD7H LINE CODE --- #124 - 01000FD9H LINE CODE --- #125 - 01000FD9H LINE CODE --- #126 - 01000FDBH LINE CODE --- #127 - 01000FE1H LINE CODE --- #128 - 01000FE4H LINE CODE --- #129 - 01000FE6H LINE CODE --- #130 - 01000FE6H LINE CODE --- #131 - 01000FE8H LINE CODE --- #132 - 01000FEAH LINE CODE --- #133 - 01001012H LINE CODE --- #134 - 01001012H LINE CODE --- #135 - 01001014H LINE CODE --- #136 - 01001016H LINE CODE --- #137 - 01001016H LINE CODE --- #138 - 0100101BH LINE CODE --- #139 - 0100101BH LINE CODE --- #140 - 0100101EH LINE CODE --- #141 - 01001020H LINE CODE --- #142 - 01001020H LINE CODE --- #143 - 01001020H LINE CODE --- #144 - 01001020H LINE CODE --- #146 - 01001027H LINE CODE --- #147 - 01001027H LINE CODE --- #148 - 01001036H LINE CODE --- #149 - 01001039H LINE CODE --- #150 - 01001039H LINE CODE --- #153 + 01000D36H LINE CODE --- #128 + 01000D36H LINE CODE --- #129 + 01000D3EH LINE CODE --- #130 + 01000D44H LINE CODE --- #131 + 01000D4EH LINE CODE --- #132 + 01000D51H LINE CODE --- #133 + 01000D53H LINE CODE --- #134 + 01000D53H LINE CODE --- #136 + 01000D74H LINE CODE --- #137 + 01000D74H LINE CODE --- #138 + 01000D7FH LINE CODE --- #139 + 01000D8BH LINE CODE --- #140 + 01000D91H LINE CODE --- #141 + 01000D91H LINE CODE --- #142 + 01000D98H LINE CODE --- #143 + 01000D98H LINE CODE --- #144 + 01000D9AH LINE CODE --- #145 + 01000D9CH LINE CODE --- #146 + 01000D9CH LINE CODE --- #147 + 01000D9CH LINE CODE --- #148 + 01000D9CH LINE CODE --- #150 + 01000DA3H LINE CODE --- #151 + 01000DA3H LINE CODE --- #152 + 01000DB2H LINE CODE --- #153 + 01000DB5H LINE CODE --- #154 + 01000DBCH LINE CODE --- #155 + 01000DBCH LINE CODE --- #158 --- BLOCKEND --- --- LVL=0 --- MODULE --- --- U2F_ATECC - 0200027FH PUBLIC XDATA --- key_store - 01000C46H PUBLIC CODE --- __attest + 020002B8H PUBLIC XDATA --- key_store + 01003D1DH PUBLIC CONST --- __attest 01000076H PUBLIC CODE --- u2f_attestation_cert_size - 01003DA6H PUBLIC CODE --- u2f_get_attestation_cert - 0100282FH PUBLIC CODE --- u2f_count - 01002D56H PUBLIC CODE --- _u2f_load_key - 020000A3H PUBLIC XDATA BYTE ?_u2f_new_keypair?BYTE - 01002508H PUBLIC CODE --- _u2f_new_keypair - 020000A3H PUBLIC XDATA BYTE ?_u2f_ecdsa_sign?BYTE - 01001A49H PUBLIC CODE --- _u2f_ecdsa_sign - 010037FDH PUBLIC CODE --- u2f_sha256_finish - 01002C91H PUBLIC CODE --- _u2f_sha256_update - 01003A57H PUBLIC CODE --- u2f_sha256_start - 01003DD3H PUBLIC CODE --- u2f_get_user_feedback - 01003DDCH PUBLIC CODE --- u2f_response_start - 01003DD0H PUBLIC CODE --- u2f_response_flush - 01003DCDH PUBLIC CODE --- _u2f_response_writeback - 01001D49H PUBLIC CODE --- u2f_init + 01003CECH PUBLIC CODE --- u2f_get_attestation_cert + 01002705H PUBLIC CODE --- u2f_count + 01002CF5H PUBLIC CODE --- _u2f_load_key + 020001F2H PUBLIC XDATA BYTE ?_u2f_new_keypair?BYTE + 010023DEH PUBLIC CODE --- _u2f_new_keypair + 020001F2H PUBLIC XDATA BYTE ?_u2f_ecdsa_sign?BYTE + 010019E9H PUBLIC CODE --- _u2f_ecdsa_sign + 01003719H PUBLIC CODE --- u2f_sha256_finish + 01002BCFH PUBLIC CODE --- _u2f_sha256_update + 0100394EH PUBLIC CODE --- u2f_sha256_start + 01002C94H PUBLIC CODE --- u2f_get_user_feedback + 01003D1CH PUBLIC CODE --- u2f_response_start + 01003D13H PUBLIC CODE --- u2f_response_flush + 01003D10H PUBLIC CODE --- _u2f_response_writeback + 01001F95H PUBLIC CODE --- u2f_init 000000A2H SFRSYM DATA BYTE SPI0CKR 00000080H SFRSYM DATA BYTE P0 000000C8H.6 SFRSYM DATA BIT SCON1_PERR @@ -11439,9 +11497,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000090H SFRSYM DATA BYTE P1 000000F8H.1 SFRSYM DATA BIT SPI0CN0_TXNF 00000097H SFRSYM DATA BYTE WDTCN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 177 - - 000000A0H SFRSYM DATA BYTE P2 000000B0H SFRSYM DATA BYTE P3 000000BCH SFRSYM DATA BYTE ADC0CF @@ -11449,9 +11504,12 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F9H SFRSYM DATA WORD PCA0 000000E6H SFRSYM DATA BYTE EIE1 000000C0H.1 SFRSYM DATA BIT SMB0CN0_ACK +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 178 + + 000000B3H SFRSYM DATA BYTE USB0XCN 000000CEH SFRSYM DATA BYTE EIE2 - 00000080H.7 SFRSYM DATA BIT LED_R + 00000090H SFRSYM DATA BIT LED_R 0000008FH SFRSYM DATA BYTE PSCTL 000000E4H SFRSYM DATA BYTE IT01CF 000000C0H.6 SFRSYM DATA BIT SMB0CN0_TXMODE @@ -11504,9 +11562,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D8H.6 SFRSYM DATA BIT UART1FCN1_TXNF 00000098H.5 SFRSYM DATA BIT SCON0_MCE 000000F0H.7 SFRSYM DATA BIT B_B7 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 178 - - 000000C3H SFRSYM DATA BYTE SMB0FCN0 000000E1H SFRSYM DATA BYTE XBR0 000000C4H SFRSYM DATA BYTE SMB0FCN1 @@ -11514,6 +11569,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E2H SFRSYM DATA BYTE XBR1 000000C1H SFRSYM DATA BYTE PFE0CN 000000E7H SFRSYM DATA BYTE EMI0CN +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 179 + + 000000C0H.5 SFRSYM DATA BIT SMB0CN0_STA 000000E3H SFRSYM DATA BYTE XBR2 000000BBH SFRSYM DATA BYTE ADC0MX @@ -11569,9 +11627,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000D8H.7 SFRSYM DATA BIT PCA0CN0_CF 0000009EH SFRSYM DATA BYTE PCA0CENT 000000BAH SFRSYM DATA BYTE I2C0CN0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 179 - - 000000D2H SFRSYM DATA BYTE CRC0ST 000000F8H.4 SFRSYM DATA BIT SPI0CN0_RXOVRN 000000D0H.4 SFRSYM DATA BIT PSW_RS1 @@ -11579,6 +11634,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000C8H.2 SFRSYM DATA BIT SCON1_RBX 000000C8H SFRSYM DATA BIT TMR2CN0_T2XCLK0 000000C8H.1 SFRSYM DATA BIT TMR2CN0_T2XCLK1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 180 + + 000000C8H.3 SFRSYM DATA BIT SCON1_TBX 000000E8H.7 SFRSYM DATA BIT ADC0CN0_ADEN 000000BEH SFRSYM DATA BYTE USB0CDCN @@ -11634,9 +11692,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000B8H.3 SFRSYM DATA BIT IP_PT1 000000C0H.2 SFRSYM DATA BIT SMB0CN0_ARBLOST 000000B8H.5 SFRSYM DATA BIT IP_PT2 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 180 - - 0000008AH SFRSYM DATA BYTE TL0 00000080H.3 SFRSYM DATA BIT U2F_BUTTON_VAL 000000D0H.5 SFRSYM DATA BIT PSW_F0 @@ -11644,6 +11699,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 0000008BH SFRSYM DATA BYTE TL1 000000F9H SFRSYM DATA BYTE PCA0L 000000C0H SFRSYM DATA BIT SMB0CN0_SI +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 181 + + 000000D0H.1 SFRSYM DATA BIT PSW_F1 00000080H SFRSYM DATA BIT P0_B0 000000B8H SFRSYM DATA BIT IP_PX0 @@ -11699,9 +11757,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 00000087H SFRSYM DATA BYTE PCON0 000000F2H SFRSYM DATA BYTE IPH 000000C3H SFRSYM DATA BYTE ADC0GTL -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 181 - - 00000098H.7 SFRSYM DATA BIT TMR4CN0_TF4H 00000098H.3 SFRSYM DATA BIT TMR4CN0_T4SPLIT 000000C8H.6 SFRSYM DATA BIT TMR2CN0_TF2L @@ -11709,6 +11764,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000E8H SFRSYM DATA BIT ADC0CN0_ADCM0 00000092H SFRSYM DATA BYTE SBUF1 0000009AH SFRSYM DATA BYTE PCON1 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 182 + + 000000C6H SFRSYM DATA BYTE ADC0LTH 00000088H SFRSYM DATA BIT TCON_IT0 000000C8H.1 SFRSYM DATA BIT SCON1_TI @@ -11764,16 +11822,16 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000A4H SFRSYM DATA BYTE TMR4L 000000AFH SFRSYM DATA BYTE USB0DAT 000000C8H.5 SFRSYM DATA BIT TMR2CN0_TF2LEN -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 182 - - 000000F8H.6 SFRSYM DATA BIT SPI0CN0_WCOL - 00000090H SFRSYM DATA BIT LED_B + 00000080H.6 SFRSYM DATA BIT LED_B 000000F8H.2 SFRSYM DATA BIT SPI0CN0_NSSMD0 000000D0H.7 SFRSYM DATA BIT PSW_CY 0000009DH SFRSYM DATA BYTE UART1FCN0 000000A3H SFRSYM DATA BYTE SPI0DAT 000000ADH SFRSYM DATA BYTE I2C0FCN0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 183 + + 000000F8H.3 SFRSYM DATA BIT SPI0CN0_NSSMD1 000000BDH SFRSYM DATA WORD ADC0 000000D8H SFRSYM DATA BYTE UART1FCN1 @@ -11783,240 +11841,259 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 000000F7H SFRSYM DATA BYTE PCA0PWM 000000F7H SFRSYM DATA BYTE SPI0FCT 000000B6H SFRSYM DATA BYTE REVID - 00000080H.6 SFRSYM DATA BIT LED_G + 00000080H.7 SFRSYM DATA BIT LED_G 000000B7H SFRSYM DATA BYTE FLKEY 000000B3H SFRSYM DATA BYTE ADC0AC - 02000236H SYMBOL XDATA --- resbuf - 02000239H SYMBOL XDATA BYTE resseq - 0200023AH SYMBOL XDATA --- res_digest - 0200023EH SYMBOL XDATA BYTE shaoffset - 0200023FH SYMBOL XDATA --- res - 01003701H SYMBOL CODE --- flush_key_store - 02000283H SYMBOL XDATA --- shabuf + 0200026FH SYMBOL XDATA --- resbuf + 02000272H SYMBOL XDATA BYTE resseq + 02000273H SYMBOL XDATA --- res_digest + 02000277H SYMBOL XDATA BYTE shaoffset + 02000278H SYMBOL XDATA --- res + 0100361AH SYMBOL CODE --- flush_key_store + 020002BCH SYMBOL XDATA --- shabuf - 01002B5DH BLOCK CODE --- LVL=0 + 01002A33H BLOCK CODE --- LVL=0 --- BLOCKEND --- --- LVL=0 - 01003701H BLOCK CODE --- LVL=0 - 01003701H LINE CODE --- #42 - 01003701H LINE CODE --- #43 - 01003701H LINE CODE --- #44 - 01003718H LINE CODE --- #45 + 0100361AH BLOCK CODE --- LVL=0 + 0100361AH LINE CODE --- #42 + 0100361AH LINE CODE --- #43 + 0100361AH LINE CODE --- #44 + 01003631H LINE CODE --- #45 --- BLOCKEND --- --- LVL=0 - 01001D49H BLOCK CODE --- LVL=0 - 01001D49H BLOCK CODE NEAR LAB LVL=1 - 02000041H SYMBOL XDATA BYTE i - 02000042H SYMBOL XDATA BYTE j - 02000043H SYMBOL XDATA --- res + 01001F95H BLOCK CODE --- LVL=0 + 01001F95H BLOCK CODE NEAR LAB LVL=1 + 02000190H SYMBOL XDATA BYTE i + 02000191H SYMBOL XDATA BYTE j + 02000192H SYMBOL XDATA --- res --- BLOCKEND --- --- LVL=1 - 01001D49H LINE CODE --- #48 - 01001D49H LINE CODE --- #49 - 01001D49H LINE CODE --- #53 - 01001D59H LINE CODE --- #56 - 01001D64H LINE CODE --- #57 - 01001D64H LINE CODE --- #58 - 01001D6DH LINE CODE --- #59 - 01001D73H LINE CODE --- #60 - 01001D78H LINE CODE --- #61 - 01001D7AH LINE CODE --- #62 - 01001D7DH LINE CODE --- #64 - 01001D82H LINE CODE --- #65 - 01001D82H LINE CODE --- #67 - 01001D97H LINE CODE --- #70 - 01001DD0H LINE CODE --- #72 - 01001DF3H LINE CODE --- #73 - 01001DFFH LINE CODE --- #75 - 01001DFFH LINE CODE --- #76 + 01001F95H LINE CODE --- #48 + 01001F95H LINE CODE --- #49 + 01001F95H LINE CODE --- #53 + 01001FA5H LINE CODE --- #56 + 01001FB0H LINE CODE --- #57 + 01001FB0H LINE CODE --- #58 + 01001FB3H LINE CODE --- #59 + 01001FB8H LINE CODE --- #60 + 01001FBAH LINE CODE --- #61 + 01001FBDH LINE CODE --- #63 + 01001FC2H LINE CODE --- #64 + 01001FC2H LINE CODE --- #66 + 01001FD7H LINE CODE --- #69 + 01002010H LINE CODE --- #71 + 01002033H LINE CODE --- #72 + 0100203FH LINE CODE --- #74 + 0100203FH LINE CODE --- #75 --- BLOCKEND --- --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 183 - - - 01003DCDH BLOCK CODE --- LVL=0 + 01003D10H BLOCK CODE --- LVL=0 00000001H SYMBOL DATA --- buf 00000004H SYMBOL DATA WORD len - 01003DCDH LINE CODE --- #78 - 01003DCDH LINE CODE --- #79 - 01003DCDH LINE CODE --- #80 + 01003D10H LINE CODE --- #77 + 01003D10H LINE CODE --- #78 + 01003D10H LINE CODE --- #79 + --- BLOCKEND --- --- LVL=0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 184 + + + + 01003D13H BLOCK CODE --- LVL=0 + 01003D13H LINE CODE --- #82 + 01003D13H LINE CODE --- #83 + 01003D13H LINE CODE --- #84 --- BLOCKEND --- --- LVL=0 - 01003DD0H BLOCK CODE --- LVL=0 - 01003DD0H LINE CODE --- #83 - 01003DD0H LINE CODE --- #84 - 01003DD0H LINE CODE --- #85 + 01003D1CH BLOCK CODE --- LVL=0 + 01003D1CH LINE CODE --- #87 + 01003D1CH LINE CODE --- #88 + 01003D1CH LINE CODE --- #89 --- BLOCKEND --- --- LVL=0 - 01003DDCH BLOCK CODE --- LVL=0 - 01003DDCH LINE CODE --- #88 - 01003DDCH LINE CODE --- #89 - 01003DDCH LINE CODE --- #90 - --- BLOCKEND --- --- LVL=0 - - 01003DD3H BLOCK CODE --- LVL=0 - 01003DD3H LINE CODE --- #92 - 01003DD3H LINE CODE --- #93 - 01003DD3H LINE CODE --- #94 - 01003DD5H LINE CODE --- #95 - --- BLOCKEND --- --- LVL=0 - - 01003A57H BLOCK CODE --- LVL=0 - 01003A57H LINE CODE --- #101 - 01003A57H LINE CODE --- #102 - 01003A57H LINE CODE --- #103 - 01003A5CH LINE CODE --- #106 - --- BLOCKEND --- --- LVL=0 - - 01002C91H BLOCK CODE --- LVL=0 - 020000A3H SYMBOL XDATA --- buf - 020000A6H SYMBOL XDATA BYTE len - 01002C9CH BLOCK CODE NEAR LAB LVL=1 - 020000A7H SYMBOL XDATA BYTE i + 01002C94H BLOCK CODE --- LVL=0 + 01002C94H BLOCK CODE NEAR LAB LVL=1 + 020001F2H SYMBOL XDATA DWORD t --- BLOCKEND --- --- LVL=1 - 01002C91H LINE CODE --- #110 - 01002C9CH LINE CODE --- #111 - 01002C9CH LINE CODE --- #112 - 01002C9FH LINE CODE --- #113 - 01002CA9H LINE CODE --- #114 - 01002CA9H LINE CODE --- #115 - 01002CCAH LINE CODE --- #116 - 01002CD1H LINE CODE --- #117 - 01002CD1H LINE CODE --- #120 - 01002CECH LINE CODE --- #121 - 01002CF1H LINE CODE --- #122 - 01002CF1H LINE CODE --- #123 - 01002CF3H LINE CODE --- #124 + 01002C94H LINE CODE --- #91 + 01002C94H LINE CODE --- #92 + 01002C94H LINE CODE --- #93 + 01002CA2H LINE CODE --- #94 + 01002CACH LINE CODE --- #95 + 01002CACH LINE CODE --- #97 + 01002CB5H LINE CODE --- #98 + 01002CD9H LINE CODE --- #99 + 01002CD9H LINE CODE --- #102 + 01002CDCH LINE CODE --- #103 + 01002CDCH LINE CODE --- #104 + 01002CE5H LINE CODE --- #105 + 01002CE7H LINE CODE --- #107 + 01002CE7H LINE CODE --- #108 + 01002CEFH LINE CODE --- #109 + 01002CF2H LINE CODE --- #110 + 01002CF2H LINE CODE --- #112 + 01002CF4H LINE CODE --- #113 --- BLOCKEND --- --- LVL=0 - 010037FDH BLOCK CODE --- LVL=0 - 010037FDH LINE CODE --- #127 - 010037FDH LINE CODE --- #128 - 010037FDH LINE CODE --- #129 + 0100394EH BLOCK CODE --- LVL=0 + 0100394EH LINE CODE --- #119 + 0100394EH LINE CODE --- #120 + 0100394EH LINE CODE --- #121 + 01003953H LINE CODE --- #124 --- BLOCKEND --- --- LVL=0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 184 - - - 01001A49H BLOCK CODE --- LVL=0 - 020000A3H SYMBOL XDATA --- dest - 020000A6H SYMBOL XDATA --- handle - 01001A4FH BLOCK CODE NEAR LAB LVL=1 - 020000A9H SYMBOL XDATA --- res - 020000ADH SYMBOL XDATA --- k - 020000B1H SYMBOL XDATA WORD keyslot + 01002BCFH BLOCK CODE --- LVL=0 + 020001F2H SYMBOL XDATA --- buf + 020001F5H SYMBOL XDATA BYTE len + 01002BDAH BLOCK CODE NEAR LAB LVL=1 + 020001F6H SYMBOL XDATA BYTE i --- BLOCKEND --- --- LVL=1 - 01001A49H LINE CODE --- #135 - 01001A4FH LINE CODE --- #136 - 01001A4FH LINE CODE --- #139 - 01001A5CH LINE CODE --- #140 - 01001A64H LINE CODE --- #141 - 01001A64H LINE CODE --- #142 - 01001A67H LINE CODE --- #143 - 01001A67H LINE CODE --- #144 - 01001A74H LINE CODE --- #145 - 01001A74H LINE CODE --- #146 - 01001A79H LINE CODE --- #147 - 01001A7BH LINE CODE --- #149 - 01001A7BH LINE CODE --- #150 - 01001A82H LINE CODE --- #151 - 01001A82H LINE CODE --- #154 - 01001A9DH LINE CODE --- #157 - 01001AAAH LINE CODE --- #158 - 01001AAAH LINE CODE --- #159 - 01001AC7H LINE CODE --- #165 - 01001AFBH LINE CODE --- #167 - 01001AFBH LINE CODE --- #168 - 01001AFEH LINE CODE --- #169 - 01001AFEH LINE CODE --- #170 - 01001AFEH LINE CODE --- #172 - 01001B0AH LINE CODE --- #174 - 01001B0CH LINE CODE --- #175 + 01002BCFH LINE CODE --- #128 + 01002BDAH LINE CODE --- #129 + 01002BDAH LINE CODE --- #130 + 01002BDDH LINE CODE --- #131 + 01002BE7H LINE CODE --- #132 + 01002BE7H LINE CODE --- #133 + 01002C08H LINE CODE --- #134 + 01002C0FH LINE CODE --- #135 + 01002C0FH LINE CODE --- #138 + 01002C2AH LINE CODE --- #139 + 01002C2FH LINE CODE --- #140 + 01002C2FH LINE CODE --- #141 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 185 + + + 01002C31H LINE CODE --- #142 --- BLOCKEND --- --- LVL=0 - 01002508H BLOCK CODE --- LVL=0 - 020000A3H SYMBOL XDATA --- handle - 020000A6H SYMBOL XDATA --- pubkey - 0100250EH BLOCK CODE NEAR LAB LVL=1 - 020000A9H SYMBOL XDATA --- res - 020000ADH SYMBOL XDATA --- k - 020000B1H SYMBOL XDATA BYTE keyslot + 01003719H BLOCK CODE --- LVL=0 + 01003719H LINE CODE --- #145 + 01003719H LINE CODE --- #146 + 01003719H LINE CODE --- #147 + --- BLOCKEND --- --- LVL=0 + + 010019E9H BLOCK CODE --- LVL=0 + 020001F2H SYMBOL XDATA --- dest + 020001F5H SYMBOL XDATA --- handle + 010019EFH BLOCK CODE NEAR LAB LVL=1 + 020001F8H SYMBOL XDATA --- res + 020001FCH SYMBOL XDATA --- k + 02000200H SYMBOL XDATA WORD keyslot --- BLOCKEND --- --- LVL=1 - 01002508H LINE CODE --- #178 - 0100250EH LINE CODE --- #179 - 0100250EH LINE CODE --- #182 - 01002516H LINE CODE --- #183 - 0100251BH LINE CODE --- #184 - 0100251BH LINE CODE --- #185 - 0100251EH LINE CODE --- #186 - 0100251EH LINE CODE --- #189 - 01002542H LINE CODE --- #192 - 0100254EH LINE CODE --- #194 - 0100255CH LINE CODE --- #195 - 0100256AH LINE CODE --- #196 - 0100256AH LINE CODE --- #198 - 0100256FH LINE CODE --- #199 - 01002574H LINE CODE --- #200 - 01002574H LINE CODE --- #201 - 0100258DH LINE CODE --- #202 - 01002593H LINE CODE --- #203 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 185 - - - 01002596H LINE CODE --- #205 - 01002598H LINE CODE --- #206 + 010019E9H LINE CODE --- #153 + 010019EFH LINE CODE --- #154 + 010019EFH LINE CODE --- #157 + 010019FCH LINE CODE --- #158 + 01001A04H LINE CODE --- #159 + 01001A04H LINE CODE --- #160 + 01001A07H LINE CODE --- #161 + 01001A07H LINE CODE --- #162 + 01001A14H LINE CODE --- #163 + 01001A14H LINE CODE --- #164 + 01001A19H LINE CODE --- #165 + 01001A1BH LINE CODE --- #167 + 01001A1BH LINE CODE --- #168 + 01001A22H LINE CODE --- #169 + 01001A22H LINE CODE --- #172 + 01001A3DH LINE CODE --- #175 + 01001A4AH LINE CODE --- #176 + 01001A4AH LINE CODE --- #177 + 01001A67H LINE CODE --- #183 + 01001A9BH LINE CODE --- #185 + 01001A9BH LINE CODE --- #186 + 01001A9EH LINE CODE --- #187 + 01001A9EH LINE CODE --- #188 + 01001A9EH LINE CODE --- #190 + 01001AAAH LINE CODE --- #192 + 01001AACH LINE CODE --- #193 --- BLOCKEND --- --- LVL=0 - 01002D56H BLOCK CODE --- LVL=0 - 02000061H SYMBOL XDATA --- handle - 02000064H SYMBOL XDATA BYTE len - 01002D61H BLOCK CODE NEAR LAB LVL=1 - 02000065H SYMBOL XDATA --- k + 010023DEH BLOCK CODE --- LVL=0 + 020001F2H SYMBOL XDATA --- handle + 020001F5H SYMBOL XDATA --- pubkey + 010023E4H BLOCK CODE NEAR LAB LVL=1 + 020001F8H SYMBOL XDATA --- res + 020001FCH SYMBOL XDATA --- k + 02000200H SYMBOL XDATA BYTE keyslot + --- BLOCKEND --- --- LVL=1 + 010023DEH LINE CODE --- #196 + 010023E4H LINE CODE --- #197 + 010023E4H LINE CODE --- #200 + 010023ECH LINE CODE --- #201 + 010023F1H LINE CODE --- #202 + 010023F1H LINE CODE --- #203 + 010023F4H LINE CODE --- #204 + 010023F4H LINE CODE --- #207 + 01002418H LINE CODE --- #210 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 186 + + + 01002424H LINE CODE --- #212 + 01002432H LINE CODE --- #213 + 01002440H LINE CODE --- #214 + 01002440H LINE CODE --- #216 + 01002445H LINE CODE --- #217 + 0100244AH LINE CODE --- #218 + 0100244AH LINE CODE --- #219 + 01002463H LINE CODE --- #220 + 01002469H LINE CODE --- #221 + 0100246CH LINE CODE --- #223 + 0100246EH LINE CODE --- #224 + --- BLOCKEND --- --- LVL=0 + + 01002CF5H BLOCK CODE --- LVL=0 + 020001B0H SYMBOL XDATA --- handle + 020001B3H SYMBOL XDATA BYTE len + 01002D00H BLOCK CODE NEAR LAB LVL=1 + 020001B4H SYMBOL XDATA --- k 00000007H SYMBOL DATA BYTE keyslot --- BLOCKEND --- --- LVL=1 - 01002D56H LINE CODE --- #208 - 01002D61H LINE CODE --- #209 - 01002D61H LINE CODE --- #211 - 01002D66H LINE CODE --- #212 - 01002D6BH LINE CODE --- #213 - 01002D6BH LINE CODE --- #214 - 01002D6EH LINE CODE --- #215 - 01002D6EH LINE CODE --- #216 - 01002D79H LINE CODE --- #222 - 01002DB0H LINE CODE --- #224 - 01002DB0H LINE CODE --- #225 - 01002DB3H LINE CODE --- #226 - 01002DB3H LINE CODE --- #227 - 01002DB5H LINE CODE --- #228 + 01002CF5H LINE CODE --- #226 + 01002D00H LINE CODE --- #227 + 01002D00H LINE CODE --- #229 + 01002D05H LINE CODE --- #230 + 01002D0AH LINE CODE --- #231 + 01002D0AH LINE CODE --- #232 + 01002D0DH LINE CODE --- #233 + 01002D0DH LINE CODE --- #234 + 01002D18H LINE CODE --- #240 + 01002D4FH LINE CODE --- #242 + 01002D4FH LINE CODE --- #243 + 01002D52H LINE CODE --- #244 + 01002D52H LINE CODE --- #245 + 01002D54H LINE CODE --- #246 --- BLOCKEND --- --- LVL=0 - 0100282FH BLOCK CODE --- LVL=0 - 0100282FH BLOCK CODE NEAR LAB LVL=1 - 02000061H SYMBOL XDATA --- res + 01002705H BLOCK CODE --- LVL=0 + 01002705H BLOCK CODE NEAR LAB LVL=1 + 020001B0H SYMBOL XDATA --- res --- BLOCKEND --- --- LVL=1 - 0100282FH LINE CODE --- #230 - 0100282FH LINE CODE --- #231 - 0100282FH LINE CODE --- #234 - 01002845H LINE CODE --- #236 - 010028A8H LINE CODE --- #237 + 01002705H LINE CODE --- #248 + 01002705H LINE CODE --- #249 + 01002705H LINE CODE --- #252 + 0100271BH LINE CODE --- #254 + 0100277EH LINE CODE --- #255 --- BLOCKEND --- --- LVL=0 - 01003DA6H BLOCK CODE --- LVL=0 - 01003DA6H LINE CODE --- #262 - 01003DA6H LINE CODE --- #263 - 01003DA6H LINE CODE --- #264 - 01003DACH LINE CODE --- #265 + 01003CECH BLOCK CODE --- LVL=0 + 01003CECH LINE CODE --- #280 + 01003CECH LINE CODE --- #281 + 01003CECH LINE CODE --- #282 + 01003CF2H LINE CODE --- #283 --- BLOCKEND --- --- LVL=0 01000076H BLOCK CODE --- LVL=0 - 01000076H LINE CODE --- #268 - 01000076H LINE CODE --- #269 - 01000076H LINE CODE --- #270 - 0100007AH LINE CODE --- #271 + 01000076H LINE CODE --- #286 + 01000076H LINE CODE --- #287 + 01000076H LINE CODE --- #288 + 0100007AH LINE CODE --- #289 --- BLOCKEND --- --- LVL=0 00000006H SYMBOL DATA WORD len +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 187 + + --- MODULE --- --- ?C_INIT - 010025E0H PUBLIC CODE --- ?C_START + 010024B6H PUBLIC CODE --- ?C_START --- MODULE --- --- ?C?COPY 0100014EH PUBLIC CODE --- ?C?COPY @@ -12024,9 +12101,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) --- MODULE --- --- ?C?CLDPTR 01000174H PUBLIC CODE --- ?C?CLDPTR -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 186 - - --- MODULE --- --- ?C?CLDOPTR 0100018DH PUBLIC CODE --- ?C?CLDOPTR @@ -12080,6 +12154,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) --- MODULE --- --- ?C?LSTOPTR 01000422H PUBLIC CODE --- ?C?LSTOPTR +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 188 + + --- MODULE --- --- ?C?LLDXDATA 01000446H PUBLIC CODE --- ?C?LLDXDATA @@ -12089,9 +12166,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) --- MODULE --- --- ?C?LLDOPTR0 0100045EH PUBLIC CODE --- ?C?LLDOPTR0 -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 187 - - --- MODULE --- --- ?C?LSTXDATA 0100048EH PUBLIC CODE --- ?C?LSTXDATA @@ -12145,6 +12219,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 010007E8H PUBLIC CODE --- ?C?LLDPDATA0 --- MODULE --- --- ?C?LLDCODE0 +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 189 + + 010007F5H PUBLIC CODE --- ?C?LLDCODE0 --- MODULE --- --- ?C?LSTIDATA @@ -12154,9 +12231,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) 01000811H PUBLIC CODE --- ?C?LSTPDATA --- MODULE --- --- ?C?PLDIDATA -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 188 - - 0100081DH PUBLIC CODE --- ?C?PLDIDATA --- MODULE --- --- ?C?PILDIDATA @@ -12183,12 +12257,12 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *** WARNING L15: MULTIPLE CALL TO FUNCTION - NAME: _U2F_PRINTS/BSP + NAME: _U2F_PRINTB/BSP CALLER1: SMBUS0_ISR/INTERRUPTS CALLER2: ?C_C51STARTUP *** WARNING L15: MULTIPLE CALL TO FUNCTION - NAME: _U2F_PRINTB/BSP + NAME: _U2F_PRINTS/BSP CALLER1: SMBUS0_ISR/INTERRUPTS CALLER2: ?C_C51STARTUP @@ -12210,6 +12284,9 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *** WARNING L15: MULTIPLE CALL TO FUNCTION NAME: ___INT2STR16/BSP CALLER1: ?C_C51STARTUP +LX51 LINKER/LOCATER V4.66.30.0 03/29/2016 00:06:41 PAGE 190 + + CALLER2: USBIRQHANDLER/EFM8_USBDINT *** WARNING L15: MULTIPLE CALL TO FUNCTION @@ -12219,9 +12296,6 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) *** WARNING L15: MULTIPLE CALL TO FUNCTION NAME: _U2F_PRINTS/BSP -LX51 LINKER/LOCATER V4.66.30.0 03/28/2016 20:19:13 PAGE 189 - - CALLER1: ?C_C51STARTUP CALLER2: USBIRQHANDLER/EFM8_USBDINT @@ -12235,5 +12309,5 @@ SYMBOL TABLE OF MODULE: U2F-FIRMWARE.OMF.CRBUILD (INITDEVICE) MODULE: ./src/atecc508a.OBJ (ATECC508A) DEFINED: ./src/bsp.OBJ (BSP) -Program Size: data=108.7 xdata=863 const=188 code=15837 +Program Size: data=102.7 xdata=918 const=539 code=15645 LX51 RUN COMPLETE. 10 WARNING(S), 0 ERROR(S) diff --git a/firmware/release/u2f-firmware.omf b/firmware/release/u2f-firmware.omf index f7e22f3..1b37a6d 100644 Binary files a/firmware/release/u2f-firmware.omf and b/firmware/release/u2f-firmware.omf differ diff --git a/firmware/src/InitDevice.c b/firmware/src/InitDevice.c index 0ca9c99..266da23 100644 --- a/firmware/src/InitDevice.c +++ b/firmware/src/InitDevice.c @@ -37,6 +37,10 @@ extern void enter_DefaultMode_from_RESET(void) { TIMER16_2_enter_DefaultMode_from_RESET(); TIMER16_3_enter_DefaultMode_from_RESET(); TIMER_SETUP_0_enter_DefaultMode_from_RESET(); + PCA_0_enter_DefaultMode_from_RESET(); + PCACH_0_enter_DefaultMode_from_RESET(); + PCACH_1_enter_DefaultMode_from_RESET(); + PCACH_2_enter_DefaultMode_from_RESET(); SMBUS_0_enter_DefaultMode_from_RESET(); UART_0_enter_DefaultMode_from_RESET(); INTERRUPT_0_enter_DefaultMode_from_RESET(); @@ -162,9 +166,9 @@ extern void PORTS_0_enter_DefaultMode_from_RESET(void) { // crossbar.) // B1 (Port 0 Bit 1 Skip) = NOT_SKIPPED (P0.1 pin is not skipped by the // crossbar.) - // B2 (Port 0 Bit 2 Skip) = NOT_SKIPPED (P0.2 pin is not skipped by the + // B2 (Port 0 Bit 2 Skip) = SKIPPED (P0.2 pin is skipped by the // crossbar.) - // B3 (Port 0 Bit 3 Skip) = NOT_SKIPPED (P0.3 pin is not skipped by the + // B3 (Port 0 Bit 3 Skip) = SKIPPED (P0.3 pin is skipped by the // crossbar.) // B4 (Port 0 Bit 4 Skip) = NOT_SKIPPED (P0.4 pin is not skipped by the // crossbar.) @@ -176,9 +180,9 @@ extern void PORTS_0_enter_DefaultMode_from_RESET(void) { // crossbar.) */ P0SKIP = P0SKIP_B0__NOT_SKIPPED | P0SKIP_B1__NOT_SKIPPED - | P0SKIP_B2__NOT_SKIPPED | P0SKIP_B3__NOT_SKIPPED - | P0SKIP_B4__NOT_SKIPPED | P0SKIP_B5__NOT_SKIPPED - | P0SKIP_B6__NOT_SKIPPED | P0SKIP_B7__NOT_SKIPPED; + | P0SKIP_B2__SKIPPED | P0SKIP_B3__SKIPPED | P0SKIP_B4__NOT_SKIPPED + | P0SKIP_B5__NOT_SKIPPED | P0SKIP_B6__NOT_SKIPPED + | P0SKIP_B7__NOT_SKIPPED; // [P0SKIP - Port 0 Skip]$ // $[P0MASK - Port 0 Mask] @@ -412,6 +416,17 @@ extern void PBCFG_0_enter_DefaultMode_from_RESET(void) { // [XBR0 - Port I/O Crossbar 0]$ // $[XBR1 - Port I/O Crossbar 1] + /* + // PCA0ME (PCA Module I/O Enable) = CEX0_CEX1_CEX2 (CEX0, CEX1, CEX2 + // routed to Port pins.) + // ECIE (PCA0 External Counter Input Enable) = DISABLED (ECI unavailable + // at Port pin.) + // T0E (T0 Enable) = DISABLED (T0 unavailable at Port pin.) + // T1E (T1 Enable) = DISABLED (T1 unavailable at Port pin.) + // T2E (T2 Enable) = DISABLED (T2 unavailable at Port pin.) + */ + XBR1 = XBR1_PCA0ME__CEX0_CEX1_CEX2 | XBR1_ECIE__DISABLED + | XBR1_T0E__DISABLED | XBR1_T1E__DISABLED | XBR1_T2E__DISABLED; // [XBR1 - Port I/O Crossbar 1]$ } @@ -782,3 +797,177 @@ extern void USBLIB_0_enter_DefaultMode_from_RESET(void) { } +extern void PCA_0_enter_DefaultMode_from_RESET(void) { + // $[PCA Off] + PCA0CN0_CR = PCA0CN0_CR__STOP; + // [PCA Off]$ + + // $[PCA0MD - PCA Mode] + // [PCA0MD - PCA Mode]$ + + // $[PCA0CENT - PCA Center Alignment Enable] + /* + // CEX0CEN (CEX0 Center Alignment Enable) = CENTER (Center-aligned.) + // CEX1CEN (CEX1 Center Alignment Enable) = CENTER (Center-aligned.) + // CEX2CEN (CEX2 Center Alignment Enable) = CENTER (Center-aligned.) + */ + PCA0CENT = PCA0CENT_CEX0CEN__CENTER | PCA0CENT_CEX1CEN__CENTER + | PCA0CENT_CEX2CEN__CENTER; + // [PCA0CENT - PCA Center Alignment Enable]$ + + // $[PCA0CLR - PCA Comparator Clear Control] + // [PCA0CLR - PCA Comparator Clear Control]$ + + // $[PCA0L - PCA Counter/Timer Low Byte] + // [PCA0L - PCA Counter/Timer Low Byte]$ + + // $[PCA0H - PCA Counter/Timer High Byte] + // [PCA0H - PCA Counter/Timer High Byte]$ + + // $[PCA0POL - PCA Output Polarity] + // [PCA0POL - PCA Output Polarity]$ + + // $[PCA0PWM - PCA PWM Configuration] + // [PCA0PWM - PCA PWM Configuration]$ + + // $[PCA On] + PCA0CN0_CR = PCA0CN0_CR__RUN; + // [PCA On]$ + +} + +extern void PCACH_0_enter_DefaultMode_from_RESET(void) { + // $[PCA0 Settings Save] + // Select Capture/Compare register) + PCA0PWM &= ~PCA0PWM_ARSEL__BMASK; + // [PCA0 Settings Save]$ + + // $[PCA0CPM0 - PCA Channel 0 Capture/Compare Mode] + /* + // CAPN (Channel 0 Capture Negative Function Enable) = DISABLED (Disable + // negative edge capture.) + // ECCF (Channel 0 Capture/Compare Flag Interrupt Enable) = DISABLED + // (Disable CCF0 interrupts.) + // MAT (Channel 0 Match Function Enable) = DISABLED (Disable match + // function.) + // PWM16 (Channel 0 16-bit Pulse Width Modulation Enable) = 8_BIT (8 to + // 11-bit PWM selected.) + // CAPP (Channel 0 Capture Positive Function Enable) = DISABLED (Disable + // positive edge capture.) + // ECOM (Channel 0 Comparator Function Enable) = ENABLED (Enable + // comparator function.) + // PWM (Channel 0 Pulse Width Modulation Mode Enable) = ENABLED (Enable + // PWM function.) + // TOG (Channel 0 Toggle Function Enable) = DISABLED (Disable toggle + // function.) + */ + PCA0CPM0 = PCA0CPM0_CAPN__DISABLED | PCA0CPM0_ECCF__DISABLED + | PCA0CPM0_MAT__DISABLED | PCA0CPM0_PWM16__8_BIT + | PCA0CPM0_CAPP__DISABLED | PCA0CPM0_ECOM__ENABLED + | PCA0CPM0_PWM__ENABLED | PCA0CPM0_TOG__DISABLED; + // [PCA0CPM0 - PCA Channel 0 Capture/Compare Mode]$ + + // $[PCA0CPL0 - PCA Channel 0 Capture Module Low Byte] + // [PCA0CPL0 - PCA Channel 0 Capture Module Low Byte]$ + + // $[PCA0CPH0 - PCA Channel 0 Capture Module High Byte] + // [PCA0CPH0 - PCA Channel 0 Capture Module High Byte]$ + + // $[Auto-reload] + // [Auto-reload]$ + + // $[PCA0 Settings Restore] + // [PCA0 Settings Restore]$ + +} + +extern void PCACH_1_enter_DefaultMode_from_RESET(void) { + // $[PCA0 Settings Save] + // Select Capture/Compare register) + PCA0PWM &= ~PCA0PWM_ARSEL__BMASK; + // [PCA0 Settings Save]$ + + // $[PCA0CPM1 - PCA Channel 1 Capture/Compare Mode] + /* + // CAPN (Channel 1 Capture Negative Function Enable) = DISABLED (Disable + // negative edge capture.) + // ECCF (Channel 1 Capture/Compare Flag Interrupt Enable) = DISABLED + // (Disable CCF1 interrupts.) + // MAT (Channel 1 Match Function Enable) = DISABLED (Disable match + // function.) + // PWM16 (Channel 1 16-bit Pulse Width Modulation Enable) = 8_BIT (8 to + // 11-bit PWM selected.) + // CAPP (Channel 1 Capture Positive Function Enable) = DISABLED (Disable + // positive edge capture.) + // ECOM (Channel 1 Comparator Function Enable) = ENABLED (Enable + // comparator function.) + // PWM (Channel 1 Pulse Width Modulation Mode Enable) = ENABLED (Enable + // PWM function.) + // TOG (Channel 1 Toggle Function Enable) = DISABLED (Disable toggle + // function.) + */ + PCA0CPM1 = PCA0CPM1_CAPN__DISABLED | PCA0CPM1_ECCF__DISABLED + | PCA0CPM1_MAT__DISABLED | PCA0CPM1_PWM16__8_BIT + | PCA0CPM1_CAPP__DISABLED | PCA0CPM1_ECOM__ENABLED + | PCA0CPM1_PWM__ENABLED | PCA0CPM1_TOG__DISABLED; + // [PCA0CPM1 - PCA Channel 1 Capture/Compare Mode]$ + + // $[PCA0CPL1 - PCA Channel 1 Capture Module Low Byte] + // [PCA0CPL1 - PCA Channel 1 Capture Module Low Byte]$ + + // $[PCA0CPH1 - PCA Channel 1 Capture Module High Byte] + // [PCA0CPH1 - PCA Channel 1 Capture Module High Byte]$ + + // $[Auto-reload] + // [Auto-reload]$ + + // $[PCA0 Settings Restore] + // [PCA0 Settings Restore]$ + +} + +extern void PCACH_2_enter_DefaultMode_from_RESET(void) { + // $[PCA0 Settings Save] + // Select Capture/Compare register) + PCA0PWM &= ~PCA0PWM_ARSEL__BMASK; + // [PCA0 Settings Save]$ + + // $[PCA0CPM2 - PCA Channel 2 Capture/Compare Mode] + /* + // CAPN (Channel 2 Capture Negative Function Enable) = DISABLED (Disable + // negative edge capture.) + // ECCF (Channel 2 Capture/Compare Flag Interrupt Enable) = DISABLED + // (Disable CCF2 interrupts.) + // MAT (Channel 2 Match Function Enable) = DISABLED (Disable match + // function.) + // PWM16 (Channel 2 16-bit Pulse Width Modulation Enable) = 8_BIT (8 to + // 11-bit PWM selected.) + // CAPP (Channel 2 Capture Positive Function Enable) = DISABLED (Disable + // positive edge capture.) + // ECOM (Channel 2 Comparator Function Enable) = ENABLED (Enable + // comparator function.) + // PWM (Channel 2 Pulse Width Modulation Mode Enable) = ENABLED (Enable + // PWM function.) + // TOG (Channel 2 Toggle Function Enable) = DISABLED (Disable toggle + // function.) + */ + PCA0CPM2 = PCA0CPM2_CAPN__DISABLED | PCA0CPM2_ECCF__DISABLED + | PCA0CPM2_MAT__DISABLED | PCA0CPM2_PWM16__8_BIT + | PCA0CPM2_CAPP__DISABLED | PCA0CPM2_ECOM__ENABLED + | PCA0CPM2_PWM__ENABLED | PCA0CPM2_TOG__DISABLED; + // [PCA0CPM2 - PCA Channel 2 Capture/Compare Mode]$ + + // $[PCA0CPL2 - PCA Channel 2 Capture Module Low Byte] + // [PCA0CPL2 - PCA Channel 2 Capture Module Low Byte]$ + + // $[PCA0CPH2 - PCA Channel 2 Capture Module High Byte] + // [PCA0CPH2 - PCA Channel 2 Capture Module High Byte]$ + + // $[Auto-reload] + // [Auto-reload]$ + + // $[PCA0 Settings Restore] + // [PCA0 Settings Restore]$ + +} + diff --git a/firmware/src/Interrupts.c b/firmware/src/Interrupts.c index a2c39a7..362ade3 100644 --- a/firmware/src/Interrupts.c +++ b/firmware/src/Interrupts.c @@ -29,7 +29,7 @@ SI_INTERRUPT (TIMER2_ISR, TIMER2_IRQn) #define SMB_TX (SMB_WRITE) struct smb_interrupt_interface SMB; -volatile uint8_t SMB_FLAGS; +data volatile uint8_t SMB_FLAGS; static void update_from_packet_length() { @@ -63,10 +63,9 @@ static void restart_bus() SMB.errors = 0; } -uint8_t count = 0; SI_INTERRUPT (SMBUS0_ISR, SMBUS0_IRQn) { - uint8_t bus = SMB0CN0 & SMB_STATE_MASK; + data uint8_t bus = SMB0CN0 & SMB_STATE_MASK; if (SMB0CN0_ARBLOST != 0) { goto fail; @@ -76,12 +75,10 @@ SI_INTERRUPT (SMBUS0_ISR, SMBUS0_IRQn) { case SMB_STATUS_START: SMB0DAT = SMB.addr | (SMB_FLAGS & SMB_READ); - count = 0; SMB0CN0_STA = 0; break; case SMB_STATUS_MTX: - count++; if (!SMB0CN0_ACK) { // NACK diff --git a/firmware/src/atecc508a.c b/firmware/src/atecc508a.c index c335b95..eba1928 100644 --- a/firmware/src/atecc508a.c +++ b/firmware/src/atecc508a.c @@ -326,8 +326,8 @@ void atecc_setup_device(struct config_msg * msg) atecc_send_recv(ATECC_CMD_READ, ATECC_RW_CONFIG | ATECC_RW_EXT, 0, NULL, 0, buf, 40, &res); - memmove(usbres.buf+1, res.buf, 14); - usbres.buf[0] = 14; + memmove(usbres.buf+1, res.buf, 15); + usbres.buf[0] = 15; break; case U2F_CONFIG_IS_BUILD: diff --git a/firmware/src/main.c b/firmware/src/main.c index 0dad359..6a0f817 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -42,39 +42,26 @@ void set_app_u2f_hid_msg(struct u2f_hid_msg * msg ) } -//void dump_eeprom() -//{ -// // 0xF800 - 0xFB7F -// uint16_t i = 0xF800; -// uint8_t eep; -// for (; i <= 0xF800 + 4 * 16; i++) -// { -// eeprom_read(i,&eep,1); -// u2f_putb(eep); -// u2f_prints(" "); -// } -// u2f_prints("\r\n"); -//} - -int8_t test_app() +void rgb(uint8_t r, uint8_t g, uint8_t b) { - //u2f_printl("count: ",1,u2f_count()); - return 0; + LED_B(b); + LED_G(g); + LED_R(r); } + #define ms_since(ms,num) (((uint16_t)get_ms() - (ms)) >= num ? (1|(ms=(uint16_t)get_ms())):0) int16_t main(void) { - data uint8_t i = 0; - data uint16_t last_ms = get_ms(); - data uint16_t ms_heart; - data uint16_t ms_wink; - data uint8_t winks = 0; - uint8_t leds = 0; - uint16_t button = 0; + uint16_t ms_heart; + uint16_t ms_wink; + uint16_t ms_grad; + uint8_t winks = 0; + uint8_t grad_dir = 0; + uint8_t light = 0; enter_DefaultMode_from_RESET(); init(&appdata); @@ -96,22 +83,38 @@ int16_t main(void) { if (ms_since(ms_heart,500)) { u2f_printl("ms ", 1, get_ms()); - button = U2F_BUTTON; - u2f_printx("button: ",1,button); - LED_G = !LED_G; - test_app(); } if (!USBD_EpIsBusy(EP1OUT) && !USBD_EpIsBusy(EP1IN) && appdata.state != APP_HID_MSG) { USBD_Read(EP1OUT, hidmsgbuf, sizeof(hidmsgbuf), true); - // u2f_prints("read added\r\n"); } switch(appdata.state) { case APP_NOTHING: + if (ms_since(ms_grad, 10)) + { + if (light == 90) + { + grad_dir = 0; + } + else if (light == 0) + { + grad_dir = 1; + } + if (grad_dir) + if (U2F_BUTTON_IS_PRESSED()) + rgb(0,0,light++); + else + rgb(0,light++,0); + else + if (U2F_BUTTON_IS_PRESSED()) + rgb(0,0,light--); + else + rgb(0,light--,0); + } break; case APP_HID_MSG: #ifndef ATECC_SETUP_DEVICE @@ -123,16 +126,17 @@ int16_t main(void) { appdata.state = APP_NOTHING; break; case APP_WINK: - LED_B = 0; + rgb(0,0,150); + light = 150; ms_wink = get_ms(); appdata.state = _APP_WINK; break; case _APP_WINK: - LED_G = 1; - LED_R = 1; + if (ms_since(ms_wink,150)) { - LED_B = !LED_B; + rgb(0,0,light); + light = light == 0 ? 150 : 0; winks++; } if (winks == 5) @@ -147,6 +151,7 @@ int16_t main(void) { { u2f_printb("error: ", 1, appdata.error); appdata.error = 0; + rgb(200,0,0); } diff --git a/firmware/src/u2f-atecc.c b/firmware/src/u2f-atecc.c index 0a6cbe3..5c0e5d7 100644 --- a/firmware/src/u2f-atecc.c +++ b/firmware/src/u2f-atecc.c @@ -55,7 +55,6 @@ void u2f_init() // initialize key handles if (key_store.num_keys != U2F_NUM_KEYS) { - u2f_prints("init key handles\r\n"); key_store.num_keys = U2F_NUM_KEYS; key_store.valid_keys = 0; key_store.num_issued = 0; @@ -91,6 +90,25 @@ void u2f_response_start() int8_t u2f_get_user_feedback() { + uint32_t t = get_ms(); + while(!U2F_BUTTON_IS_PRESSED()) + { + // turn yellow + rgb(128,128,0); + if (get_ms() - t > 10000) + break; + } + + if (U2F_BUTTON_IS_PRESSED()) + { + rgb(0,150,128); + } + else + { + rgb(200,0,0); + return 1; + } + return 0; } @@ -242,20 +260,20 @@ code char __attest[] = "\x04\x03\x02\x30\x39\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x56\x41\x31\x14" "\x30\x12\x06\x03\x55\x04\x0a\x13\x0b\x43\x6f\x6e\x6f\x72\x43\x6f\x20\x4c\x4c\x43" "\x31\x14\x30\x12\x06\x03\x55\x04\x03\x13\x0b\x75\x32\x66\x7a\x65\x72\x6f\x2e\x63" -"\x6f\x6d\x30\x1e\x17\x0d\x31\x36\x30\x33\x32\x39\x30\x30\x31\x37\x30\x35\x5a\x17" -"\x0d\x32\x32\x30\x33\x32\x38\x30\x30\x31\x37\x30\x35\x5a\x30\x39\x31\x0b\x30\x09" +"\x6f\x6d\x30\x1e\x17\x0d\x31\x36\x30\x33\x32\x39\x30\x34\x30\x36\x33\x35\x5a\x17" +"\x0d\x32\x32\x30\x33\x32\x38\x30\x34\x30\x36\x33\x35\x5a\x30\x39\x31\x0b\x30\x09" "\x06\x03\x55\x04\x06\x13\x02\x56\x41\x31\x14\x30\x12\x06\x03\x55\x04\x0a\x13\x0b" "\x43\x6f\x6e\x6f\x72\x43\x6f\x20\x4c\x4c\x43\x31\x14\x30\x12\x06\x03\x55\x04\x03" "\x13\x0b\x75\x32\x66\x7a\x65\x72\x6f\x2e\x63\x6f\x6d\x30\x59\x30\x13\x06\x07\x2a" "\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07\x03\x42\x00\x04" -"\x49\xc0\x88\x08\xf6\xff\xe0\x1f\xa3\xe0\x28\x28\xfb\x22\x1b\x20\xc0\xa4\xa3\x95" -"\xba\xdc\xeb\xcf\xbd\x27\x45\xaa\xa5\x2f\x1f\x19\x6c\xfa\xe0\x0d\xdd\xc0\xef\x5d" -"\x1e\xc1\x4d\x4b\x9a\x74\xb4\x30\x81\xfa\x93\x39\x0d\xc9\x35\xbd\xea\xce\x6a\x9b" -"\x53\xa3\x3e\xbc\x30\x0a\x06\x08\x2a\x86\x48\xce\x3d\x04\x03\x02\x03\x48\x00\x30" -"\x45\x02\x21\x00\xb4\xc1\xbc\x9c\x5c\x90\xab\xbf\x34\x29\x40\xf7\xe9\x4f\xb2\x4e" -"\x74\x4b\x0a\x0d\x5c\x71\x0d\x7c\xd3\xa7\x9a\x13\x2d\xca\x2d\x10\x02\x20\x3f\x4c" -"\x60\x70\x15\x2a\xc0\x1a\xc3\xad\xa3\x4b\x13\x24\x1c\x8d\x78\xa4\xcb\x34\xa7\xbc" -"\x21\xe2\xdf\x20\x4f\xb1\x85\x92\xdc\x6a" +"\xa6\x03\x66\x51\x15\xdc\xeb\xf5\xb8\xdb\x32\xe7\x66\x5e\xf6\x6a\x39\xbc\x15\x37" +"\x8c\x65\x5f\xeb\xd4\x8b\xa9\x51\xee\x61\x02\xc2\xc8\x32\x1e\x73\xb2\x7d\xe8\x09" +"\x79\xda\xf9\xd1\x42\x48\xe8\x1f\x0b\x43\xae\x63\x99\xf2\x52\x83\x81\x5f\x87\x74" +"\x79\x17\x84\x1f\x30\x0a\x06\x08\x2a\x86\x48\xce\x3d\x04\x03\x02\x03\x48\x00\x30" +"\x45\x02\x21\x00\x8b\xb7\xfa\xa2\x02\xb7\x24\xa3\x8d\xca\xab\x74\x44\xc3\x4c\xdc" +"\x80\x3a\xa5\x67\xdb\x36\xa1\x41\xda\xd6\xf3\x94\x38\x4c\xb6\xbd\x02\x20\x1f\x33" +"\x7e\xa3\x46\xf4\x77\x75\xe9\xe5\x4a\xe5\x92\x18\x4a\x11\xc0\x0b\x3c\x13\xa3\x61" +"\x68\x68\xae\x90\xbc\x01\xdd\x32\x8d\xe0" // }}} ; diff --git a/firmware/src/u2f.c b/firmware/src/u2f.c index 0003896..558d9be 100644 --- a/firmware/src/u2f.c +++ b/firmware/src/u2f.c @@ -101,6 +101,12 @@ static int16_t u2f_authenticate(struct u2f_authenticate_request * req, uint8_t c return U2F_SW_CONDITIONS_NOT_SATISFIED; } + if (u2f_get_user_feedback()) + { + u2f_hid_set_len(2); + return U2F_SW_CONDITIONS_NOT_SATISFIED; + } + count = u2f_count(); u2f_sha256_start(); @@ -135,7 +141,7 @@ static int16_t u2f_register(struct u2f_register_request * req) const uint16_t attest_size = u2f_attestation_cert_size(); - if (u2f_get_user_feedback() != 0) + if (u2f_get_user_feedback()) { return U2F_SW_CONDITIONS_NOT_SATISFIED; } diff --git a/firmware/src/u2f_hid.c b/firmware/src/u2f_hid.c index 8b25c46..ba95f50 100644 --- a/firmware/src/u2f_hid.c +++ b/firmware/src/u2f_hid.c @@ -37,6 +37,7 @@ static struct hid_layer_param uint32_t last_buffered; uint16_t bytes_buffered; + uint16_t req_len; // number of payload bytes written in response uint16_t bytes_written; @@ -46,7 +47,7 @@ static struct hid_layer_param // total length of response in bytes uint16_t res_len; - #define BUFFER_SIZE 150 + #define BUFFER_SIZE 200 uint8_t buffer[BUFFER_SIZE]; @@ -229,6 +230,7 @@ static void start_buffering(struct u2f_hid_msg* req) { _hid_in_session = 1; hid_layer.bytes_buffered = U2FHID_INIT_PAYLOAD_SIZE; + hid_layer.req_len = U2FHID_LEN(req); memmove(hid_layer.buffer, req->pkt.init.payload, U2FHID_INIT_PAYLOAD_SIZE); } @@ -237,6 +239,7 @@ static int buffer_request(struct u2f_hid_msg* req) if (hid_layer.bytes_buffered + U2FHID_CONT_PAYLOAD_SIZE > BUFFER_SIZE) { u2f_prints("buffer full\r\n"); + stamp_error(req->cid, ERR_OTHER); return -1; } memmove(hid_layer.buffer + hid_layer.bytes_buffered, req->pkt.cont.payload, U2FHID_CONT_PAYLOAD_SIZE); @@ -309,7 +312,10 @@ static void hid_u2f_parse(struct u2f_hid_msg* req) else { buffer_request(req); - u2f_request((struct u2f_request_apdu *)hid_layer.buffer); + if (hid_layer.bytes_buffered >= hid_layer.req_len) + { + u2f_request((struct u2f_request_apdu *)hid_layer.buffer); + } } diff --git a/firmware/u2f-firmware.hwconf b/firmware/u2f-firmware.hwconf index 65bebff..3cd01e6 100644 --- a/firmware/u2f-firmware.hwconf +++ b/firmware/u2f-firmware.hwconf @@ -15,6 +15,7 @@ + @@ -23,24 +24,50 @@ - - - - - - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -102,10 +129,7 @@ - - -