From 69cf0791962b42f3a8629581da86e0c9c788426a Mon Sep 17 00:00:00 2001 From: imbis Date: Mon, 5 Aug 2024 17:45:54 +0900 Subject: [PATCH] =?UTF-8?q?cli=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/.vscode/settings.json | 4 +- Project/Application/app_cli.c | 117 +- Project/Application/app_i2c_master.c | 12 +- Project/Application/app_oled.c | 3 +- Project/Application/app_uart.c | 1 + Project/Application/eeprom/cammsys_flash.c | 236 ++ Project/Application/eeprom/cammsys_flash.h | 25 + Project/Application/eeprom/eeprom.c | 826 ++++++ Project/Application/eeprom/eeprom.h | 125 + Project/Application/eeprom/eeprom_address.c | 41 + Project/Application/eeprom/eeprom_address.h | 58 + Project/Application/main.c | 7 +- Project/Application/sensor/ak9757w.c | 192 +- Project/Application/sensor/ak9757w.h | 7 + Project/Application/sensor/ak9757w_def.h | 1 + .../Compiler/AKM_Temperature_Demo.uvguix.befs | 152 +- Project/Compiler/AKM_Temperature_Demo.uvoptx | 81 +- Project/Compiler/AKM_Temperature_Demo.uvprojx | 26 +- .../Listings/AKM_Temperature_Demo.map | 2285 +++++++++-------- .../Compiler/Listings/startup_max32660.lst | 18 +- 20 files changed, 3096 insertions(+), 1121 deletions(-) create mode 100644 Project/Application/eeprom/cammsys_flash.c create mode 100644 Project/Application/eeprom/cammsys_flash.h create mode 100644 Project/Application/eeprom/eeprom.c create mode 100644 Project/Application/eeprom/eeprom.h create mode 100644 Project/Application/eeprom/eeprom_address.c create mode 100644 Project/Application/eeprom/eeprom_address.h diff --git a/Project/.vscode/settings.json b/Project/.vscode/settings.json index 2ee7897..0c668da 100644 --- a/Project/.vscode/settings.json +++ b/Project/.vscode/settings.json @@ -10,6 +10,8 @@ "app_log.h": "c", "app_i2c_master.h": "c", "ak9757w_def.h": "c", - "ak9757w.h": "c" + "ak9757w.h": "c", + "eeprom.h": "c", + "eeprom_address.h": "c" } } \ No newline at end of file diff --git a/Project/Application/app_cli.c b/Project/Application/app_cli.c index 91b312f..c7726d5 100644 --- a/Project/Application/app_cli.c +++ b/Project/Application/app_cli.c @@ -1,7 +1,9 @@ #include "app_cli.h" #include "sw_timer.h" #include "app_uart.h" +#include "ak9757w.h" #include +#include "app_log.h" #define CLI_KEY_BACK 0x7F #define CLI_KEY_DEL 0x7E @@ -95,6 +97,10 @@ static uint32_t uartWrite(uint8_t* pTxData, uint32_t txLen); void cliShowList(cli_args_t *args); void cliMemoryDump(cli_args_t *args); +void cli_AKM_Cmd(cli_args_t *args); + + + bool cliInit(void); void cliMain(void); @@ -146,6 +152,7 @@ bool cliInit(void) cliAdd("help", cliShowList); cliAdd("md" , cliMemoryDump); + cliAdd("akm" , cli_AKM_Cmd); return true; } @@ -209,7 +216,7 @@ void cliShowLog(cli_t *p_cli) void cliShowPrompt(cli_t *p_cli) { uartPrintf("\n\r"); - uartPrintf(CLI_PROMPT_STR); + uartPrintf(CLI_PROMPT_STR); } void cliMain(void) @@ -824,6 +831,114 @@ void cliMemoryDump(cli_args_t *args) } +void cli_AKM_Cmd(cli_args_t *args) +{ + uint32_t updatetime; + int argc = args->argc; + char **argv = args->argv; + + + if(argc < 1) + { + cliPrintf(">> AKM CMD \r\n"); + cliPrintf(">>\t CMD List \r\n"); + cliPrintf(">>\t Start\r\n"); + cliPrintf(">>\t Stop\r\n"); + cliPrintf(">>\t SP (save parameter)\r\n"); + cliPrintf(">>\t EP (erase parameter)\r\n"); + cliPrintf(">>\t DP (display parameter)\r\n"); + cliPrintf(">>\t ID\r\n"); + cliPrintf(">>\t Update millisec\r\n"); + cliPrintf(">>\t WR reg_addr data\r\n"); + cliPrintf(">>\t RR reg_addr read len\r\n"); + return; + } + + if(argc == 1) + { + if(strcmp(argv[0], "start") == 0) + { + AK9757W_Start_Stop(true); + } + else if(strcmp(argv[0], "stop") == 0) + { + AK9757W_Start_Stop(false); + } + else if(strcmp(argv[0], "id") == 0) + { + cliPrintf("ID : %08X\r\n", AK9757W_GetID()); + } + else if(strcmp(argv[0], "sp") == 0) + { + AK9757W_SaveParameter(); + } + else if(strcmp(argv[0], "ep") == 0) + { + AK9757W_DeleteParameter(); + } + else if(strcmp(argv[0], "dp") == 0) + { + AK9757W_DispalyParameter(); + } + } + else if(argc == 2) + { + if(strcmp(argv[0], "update") == 0) + { + updatetime = (int)strtoul((const char * ) argv[1], (char **)NULL, (int) 0); + if(updatetime < 100) + { + cliPrintf(">>\t update time error\r\n"); + } + else + { + AK9757W_UpdateTime(updatetime); + } + } + } + else if(argc == 3) + { + if(strcmp(argv[0], "rr") == 0) + { + uint32_t Addr; + uint32_t readSize; + uint8_t ReadBuff[100]; + Addr = (int)strtoul((const char * ) argv[1], (char **)NULL, (int) 0); + readSize = (int)strtoul((const char * ) argv[2], (char **)NULL, (int) 0); + + if((readSize == 0) || (Addr > 0xFF) || (readSize > 100)) + return; + + if(AK9757W_ReadReg(Addr, readSize, &ReadBuff[0]) == true) + { + uint8_t i; + cliPrintf("\r\n"); + for(i = 0 ; i < readSize ; i++) + { + cliPrintf("%02X ", ReadBuff[i]); + if((i % 16) == 15) + cliPrintf("\r\n"); + } + cliPrintf("\r\n"); + } + } + else if(strcmp(argv[0], "wr") == 0) + { + uint32_t writeAddr; + uint32_t writeData; + + writeAddr = (int)strtoul((const char * ) argv[1], (char **)NULL, (int) 0); + writeData = (int)strtoul((const char * ) argv[2], (char **)NULL, (int) 0); + + if(writeAddr > 0xFF || writeData > 0xFF) + return; + + AK9757W_WriteReg(writeAddr, writeData); + + } + } +} + static void uartPrintf(const char *format, ...) diff --git a/Project/Application/app_i2c_master.c b/Project/Application/app_i2c_master.c index 1ca4603..e7d19a8 100644 --- a/Project/Application/app_i2c_master.c +++ b/Project/Application/app_i2c_master.c @@ -17,7 +17,11 @@ bool I2C_Master_Initialization(mxc_i2c_regs_t* pI2C_Handler, i2c_speed_t Speed) pI2C_Master = pI2C_Handler; I2C_Shutdown(pI2C_Master); + error = I2C_Init(pI2C_Master, Speed, &sys_i2c_master_cfg); + if(error != E_NO_ERROR) + return false; + I2C_SetTimeout(pI2C_Master, 100); if(pI2C_Handler == MXC_I2C0) @@ -40,7 +44,7 @@ bool I2C_Master_Initialization(mxc_i2c_regs_t* pI2C_Handler, i2c_speed_t Speed) static void I2C_Master_Handler(void) { - UART_Handler(pI2C_Master); + I2C_Handler(pI2C_Master); } @@ -73,7 +77,7 @@ int32_t I2C_Master_Read(uint8_t SlaveAddress, uint8_t* pRxBuffer, uint32_t RxLen if(pI2C_Master == NULL) return E_NULL_PTR; - if(ret = I2C_MasterRead(pI2C_Master, (SlaveAddress << 1), &pRxBuffer[0], RxLen, false) != RxLen) + if((ret = I2C_MasterRead(pI2C_Master, (SlaveAddress << 1), &pRxBuffer[0], RxLen, false)) != RxLen) { I2C_Master_Initialization(TEMP_I2C_INSTANCE, TEMP_I2C_SPEED); return E_COMM_ERR; @@ -89,13 +93,13 @@ int32_t I2C_Master_WriteRead(uint8_t SlaveAddress, uint8_t* pWriteBuff, uint32_t if(pI2C_Master == NULL) return E_NULL_PTR; - if(ret = I2C_MasterWrite(pI2C_Master, (SlaveAddress << 1), &pWriteBuff[0], TxLen, true) != TxLen) + if((ret = I2C_MasterWrite(pI2C_Master, (SlaveAddress << 1), &pWriteBuff[0], TxLen, true)) != TxLen) { I2C_Master_Initialization(TEMP_I2C_INSTANCE, TEMP_I2C_SPEED); return E_COMM_ERR; } - if(ret = I2C_MasterRead(pI2C_Master, (SlaveAddress << 1), &pRxBuffer[0], RxLen, false) != RxLen) + if((ret = I2C_MasterRead(pI2C_Master, (SlaveAddress << 1), &pRxBuffer[0], RxLen, false)) != RxLen) { I2C_Master_Initialization(TEMP_I2C_INSTANCE, TEMP_I2C_SPEED); return E_COMM_ERR; diff --git a/Project/Application/app_oled.c b/Project/Application/app_oled.c index 22482c4..f50a39f 100644 --- a/Project/Application/app_oled.c +++ b/Project/Application/app_oled.c @@ -58,6 +58,7 @@ bool Oled_Initialization(void) //OLED_POWER_OFF; SW_Timer_Callback_Register(SW_TIMER_RUN_CONTINUE, 1, Oled_Process); + return true; } @@ -213,7 +214,7 @@ bool Oled_SetTemperature(uint16_t Temperature) oled_draw_temp = Temperature; } } - + return true; } diff --git a/Project/Application/app_uart.c b/Project/Application/app_uart.c index 1d598ba..f8310f7 100644 --- a/Project/Application/app_uart.c +++ b/Project/Application/app_uart.c @@ -148,6 +148,7 @@ int32_t App_Uart_Print(uint8_t* pTxBuffer) App_Uart_Transmit(pTxBuffer[index]); index++; } + return true; } diff --git a/Project/Application/eeprom/cammsys_flash.c b/Project/Application/eeprom/cammsys_flash.c new file mode 100644 index 0000000..f6907c9 --- /dev/null +++ b/Project/Application/eeprom/cammsys_flash.c @@ -0,0 +1,236 @@ +#include "board_config.h" +#include "cammsys_flash.h" + + +#define FLASH_PAGE_ADDR 0x00000000 +#define FLASH_PAGE_MAX 32 +#define FLASH_PAGE_SIZE 8192 + + + + + +void Flash_Initialization(void) +{ + const sys_cfg_t sys_flash_cfg = NULL; + FLC_Init(&sys_flash_cfg); +} + + +/* +APIs + +*/ +int flash_verify(uint32_t address, uint32_t length, uint8_t *data) +{ + volatile uint8_t *ptr; + + for (ptr = (uint8_t *)address; ptr < (uint8_t *)(address + length); ptr++, data++) { + if (*ptr != *data) { +// printf("Verify failed at 0x%x (0x%x != 0x%x)\n", (unsigned int)ptr, (unsigned int)*ptr, (unsigned int)*data); + return E_UNKNOWN; + } + } + + return E_NO_ERROR; +} + +/******************************************************************************/ +int flash_uninit(void) +{ + FLC_ClearFlags(MXC_F_FLC_INTR_DONE | MXC_F_FLC_INTR_AF); + return 0; // Finished without Errors +} + +/******************************************************************************/ +/* + * Erase complete Flash Memory + * Return Value: 0 - OK, 1 - Failed + */ +int flash_erase_chip(void) +{ + return FLC_MassErase(); +} + +/******************************************************************************/ +/* + * Erase given page address in Flash Memory + * Parameter: address: Sector Address + * Return Value: 0 - OK, 1 - Failed + */ +int flash_erase_page(unsigned long address) +{ + return FLC_PageErase(address); +} + +int flash_program_page(unsigned long address, unsigned long size, unsigned char *buffer8) +{ + uint32_t dest_addr; + int i = 0; + uint32_t *buffer32 = (uint32_t *)buffer8; + + for (dest_addr = address; dest_addr < (address + size); dest_addr += 4) { + // Write a word + if (FLC_Write32(dest_addr, buffer32[i]) != E_NO_ERROR) { + // printf("Failure in writing a word.\n"); + break; + } + + i++; + } + + // Verify if page is written properly + if (flash_verify(address, size, (uint8_t*)buffer8) != E_NO_ERROR) { + //printf("%ld bytes are not written properly.\n", size); + return -1; + } + +// printf("* %d data succefully written to address %X, and verified.\n", size, address); + return 0; +} + + + + +int Flash_Check_Mem(uint32_t startaddr, uint32_t length, uint32_t data) +{ + uint32_t *ptr; + for (ptr = (uint32_t *)startaddr; ptr < (uint32_t *)(startaddr + length); ptr++) + { + + if (*ptr != data) + { + return false; + } + } + + return true; +} + +bool Flash_Erase(uint32_t Address, uint32_t length) +{ + bool ret = false; + + uint32_t i; + int16_t start_page_num = -1; + volatile uint32_t page_count = 0; + uint8_t retrycount; + + + for (i=0; i 0) + { + int i; + int delayCount; + + for (i = 0 ; i < page_count ; i++) + { + if(flash_erase_page(((start_page_num + i) * FLASH_PAGE_SIZE)) != E_NO_ERROR) + { + flash_uninit(); + + return false; + } + + if(Flash_Check_Mem(((start_page_num + i) * FLASH_PAGE_SIZE), FLASH_PAGE_SIZE, 0xFFFFFFFF) == false) + { + flash_uninit(); + return false; + } + } + ret = true; + } + + return ret; +} + + +bool flashInPage(uint16_t sector_num, uint32_t addr, uint32_t length) +{ + + bool ret = false; + + uint32_t sector_start; + uint32_t sector_end; + uint32_t flash_start; + uint32_t flash_end; + + + sector_start = FLASH_PAGE_ADDR + (sector_num * FLASH_PAGE_SIZE); + sector_end = sector_start + FLASH_PAGE_SIZE - 1; + flash_start = addr; + flash_end = addr + length - 1; + + + if (sector_start >= flash_start && sector_start <= flash_end) + { + ret = true; + } + + if (sector_end >= flash_start && sector_end <= flash_end) + { + ret = true; + } + + if (flash_start >= sector_start && flash_start <= sector_end) + { + ret = true; + } + + if (flash_end >= sector_start && flash_end <= sector_end) + { + ret = true; + } + + return ret; +} + +bool Flash_Write(uint32_t addr, uint8_t *p_data, uint32_t length) +{ + + bool ret = true; + + if (addr%4 != 0) + { + return false; + } + + + if(flash_program_page(addr, length, p_data) != E_NO_ERROR) + { + return false; + } + + return ret; +} + + + + + + + + + + + + + + + + + + + + diff --git a/Project/Application/eeprom/cammsys_flash.h b/Project/Application/eeprom/cammsys_flash.h new file mode 100644 index 0000000..286607c --- /dev/null +++ b/Project/Application/eeprom/cammsys_flash.h @@ -0,0 +1,25 @@ +/** \file cammsys_flash.h */ +#if !defined(CAMMSYS_FLASH_H__D6BE3B3A_5B0B_4307_A526_9F29866A6975__INCLUDED_) +#define CAMMSYS_FLASH_H__D6BE3B3A_5B0B_4307_A526_9F29866A6975__INCLUDED_ + +#include +#include + + + + +void Flash_Initialization(void); +int flash_verify(uint32_t address, uint32_t length, uint8_t *data); +int flash_uninit(void); +int flash_erase_chip(void); +int flash_erase_page(unsigned long address); +int flash_program_page(unsigned long address, unsigned long size, unsigned char *buffer8); +int Flash_Check_Mem(uint32_t startaddr, uint32_t length, uint32_t data); +bool Flash_Erase(uint32_t Address, uint32_t length); +bool flashInPage(uint16_t sector_num, uint32_t addr, uint32_t length); +bool Flash_Write(uint32_t addr, uint8_t *p_data, uint32_t length); + + + + +#endif diff --git a/Project/Application/eeprom/eeprom.c b/Project/Application/eeprom/eeprom.c new file mode 100644 index 0000000..99bca31 --- /dev/null +++ b/Project/Application/eeprom/eeprom.c @@ -0,0 +1,826 @@ +/** +****************************************************************************** +* @file EEPROM/EEPROM_Emulation/src/eeprom.c +* @author MCD Application Team +* @brief This file provides all the EEPROM emulation firmware functions. +****************************************************************************** +* @attention +* +*

© Copyright (c) 2017 STMicroelectronics International N.V. +* All rights reserved.

+* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted, provided that the following conditions are met: +* +* 1. Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* 3. Neither the name of STMicroelectronics nor the names of other +* contributors to this software may be used to endorse or promote products +* derived from this software without specific written permission. +* 4. This software, including modifications and/or derivative works of this +* software, must execute solely and exclusively on microcontroller or +* microprocessor devices manufactured by or for STMicroelectronics. +* 5. Redistribution and use of this software other than as permitted under +* this license is void and will automatically terminate your rights under +* this license. +* +* THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" +* AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +* PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY +* RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT +* SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +****************************************************************************** +*/ +/** @addtogroup EEPROM_Emulation + * @{ + */ + +/* Includes ------------------------------------------------------------------*/ +#include "board_config.h" +#include "cammsys_flash.h" +#include "eeprom.h" +#include "eeprom_address.h" + + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Global variable used to store variable value in read sequence */ +uint16_t DataVar = 0; + +/* Virtual address defined by the user: 0xFFFF value is prohibited */ + + +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +static uint32_t EE_Format(void); +static uint32_t EE_FindValidPage(uint8_t Operation); +static uint32_t EE_VerifyPageFullWriteVariable(uint16_t VirtAddress, uint16_t Data); +static uint32_t EE_PageTransfer(uint16_t VirtAddress, uint16_t Data); +static uint32_t EE_Transfer_Write_Variable(uint32_t writeaddress, uint16_t VirtAddress, uint16_t Data); +static uint32_t EE_VerifyPageFullyErased(uint32_t Address); +static uint32_t EE_WriteData(uint32_t address, uint32_t data); + +uint32_t EE_EraseAll() +{ + if (flash_erase_page(PAGE0_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + + if (flash_erase_page(PAGE1_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + + return EE_OK; +} + +/** + * @brief Restore the pages to a known good state in case of page's status + * corruption after a power loss. + * @param None. + * @retval - Flash error code: on write Flash error + * - FLASH_COMPLETE: on success + */ +uint32_t EE_Init(void) +{ + uint32_t PageStatus0 = 6, PageStatus1 = 6; + uint16_t VarIdx = 0; + uint32_t EepromStatus = 0, ReadStatus = 0; + int16_t x = -1; + uint32_t FlashStatus; + uint32_t SectorError = 0; + + Flash_Initialization(); + + /* Get Page0 status */ + PageStatus0 = (*(__IO uint32_t*)PAGE0_BASE_ADDRESS); + /* Get Page1 status */ + PageStatus1 = (*(__IO uint32_t*)PAGE1_BASE_ADDRESS); + + /* Check for invalid header states and repair if necessary */ + switch (PageStatus0) + { + case ERASED: + if (PageStatus1 == VALID_PAGE) /* Page0 erased, Page1 valid */ + { + /* Erase Page0 */ + if(!EE_VerifyPageFullyErased(PAGE0_BASE_ADDRESS)) + { + if (flash_erase_page(PAGE0_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + } + } + else if (PageStatus1 == RECEIVE_DATA) /* Page0 erased, Page1 receive */ + { + /* Erase Page0 */ + if(!EE_VerifyPageFullyErased(PAGE0_BASE_ADDRESS)) + { + if (flash_erase_page(PAGE0_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + } + /* Mark Page1 as valid */ + FlashStatus = EE_WriteData(PAGE1_BASE_ADDRESS, VALID_PAGE); + if (FlashStatus != EE_OK) + return FlashStatus; + } + else /* First EEPROM access (Page0&1 are erased) or invalid state -> format EEPROM */ + { + /* Erase both Page0 and Page1 and set Page0 as valid page */ + FlashStatus = EE_Format(); + if (FlashStatus != EE_OK) + return FlashStatus; + } + break; + + case RECEIVE_DATA: + if (PageStatus1 == VALID_PAGE) /* Page0 receive, Page1 valid */ + { + /* Transfer data from Page1 to Page0 */ + EE_Item eeItem; + for (VarIdx = 0; VarIdx < EE_INDEX_MAX; VarIdx++) + { + eeItem.buf = *(__IO uint32_t*)(PAGE0_BASE_ADDRESS+4); + if (eeItem.index == VarIdx) + { + x = VarIdx; + } + if (VarIdx != x) + { + /* Read the last variables' updates */ + ReadStatus = EE_ReadVariable(VarIdx, &DataVar); + /* In case variable corresponding to the virtual address was found */ + if (ReadStatus != 0x1) + { + /* Transfer the variable to the Page0 */ + EepromStatus = EE_VerifyPageFullWriteVariable(VarIdx, DataVar); + /* If program operation was failed, a Flash error code is returned */ + if (EepromStatus != EE_OK) + { + return EepromStatus; + } + } + } + } + /* Mark Page0 as valid */ + FlashStatus = EE_WriteData(PAGE0_BASE_ADDRESS, VALID_PAGE); + /* If program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + return FlashStatus; + + /* Erase Page1 */ + if(!EE_VerifyPageFullyErased(PAGE1_BASE_ADDRESS)) + { + if (flash_erase_page(PAGE1_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + } + } + else if (PageStatus1 == ERASED) /* Page0 receive, Page1 erased */ + { + /* Erase Page1 */ + if(!EE_VerifyPageFullyErased(PAGE1_BASE_ADDRESS)) + { + if (flash_erase_page(PAGE1_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + } + /* Mark Page0 as valid */ + FlashStatus = EE_WriteData(PAGE0_BASE_ADDRESS, VALID_PAGE); + /* If program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + return FlashStatus; + } + else /* Invalid state -> format eeprom */ + { + /* Erase both Page0 and Page1 and set Page0 as valid page */ + FlashStatus = EE_Format(); + /* If erase/program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + { + return FlashStatus; + } + } + break; + + case VALID_PAGE: + if (PageStatus1 == VALID_PAGE) /* Invalid state -> format eeprom */ + { + /* Erase both Page0 and Page1 and set Page0 as valid page */ + FlashStatus = EE_Format(); + /* If erase/program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + { + return FlashStatus; + } + } + else if (PageStatus1 == ERASED) /* Page0 valid, Page1 erased */ + { + /* Erase Page1 */ + if(!EE_VerifyPageFullyErased(PAGE1_BASE_ADDRESS)) + { + if (flash_erase_page(PAGE1_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + } + } + else /* Page0 valid, Page1 receive */ + { + /* Transfer data from Page0 to Page1 */ + EE_Item eeItem; + for (VarIdx = 0; VarIdx < EE_INDEX_MAX; VarIdx++) + { + eeItem.buf = *(__IO uint32_t*)(PAGE1_BASE_ADDRESS + 4); + if (eeItem.index == VarIdx) + { + x = VarIdx; + } + if (VarIdx != x) + { + /* Read the last variables' updates */ + ReadStatus = EE_ReadVariable(VarIdx, &DataVar); + /* In case variable corresponding to the virtual address was found */ + if (ReadStatus != 0x1) + { + /* Transfer the variable to the Page1 */ + EepromStatus = EE_VerifyPageFullWriteVariable(VarIdx, DataVar); + /* If program operation was failed, a Flash error code is returned */ + if (EepromStatus != EE_OK) + { + return EepromStatus; + } + } + } + } + /* Mark Page1 as valid */ + FlashStatus = EE_WriteData(PAGE1_BASE_ADDRESS, VALID_PAGE); + /* If program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + return FlashStatus; + + /* Erase Page0 */ + if(!EE_VerifyPageFullyErased(PAGE0_BASE_ADDRESS)) + { + if (flash_erase_page(PAGE0_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + } + } + break; + + default: /* Any other state -> format eeprom */ + /* Erase both Page0 and Page1 and set Page0 as valid page */ + FlashStatus = EE_Format(); + /* If erase/program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + { + return FlashStatus; + } + break; + } + + return EE_OK; +} + +/** + * @brief Verify if specified page is fully erased. + * @param Address: page address + * This parameter can be one of the following values: + * @arg PAGE0_BASE_ADDRESS: Page0 base address + * @arg PAGE1_BASE_ADDRESS: Page1 base address + * @retval page fully erased status: + * - 0: if Page not erased + * - 1: if Page erased + */ +uint32_t EE_VerifyPageFullyErased(uint32_t Address) +{ + uint32_t ReadStatus = 1; + uint32_t AddressValue = 0x5555; + uint32_t endAddress = 0; + EE_Item eeItem; + + if (Address == PAGE0_BASE_ADDRESS) + endAddress = PAGE0_END_ADDRESS; + else if (Address == PAGE1_BASE_ADDRESS) + endAddress = PAGE1_END_ADDRESS; + + /* Check each active page address starting from end */ + while (Address < endAddress) + { + /* Get the current location content to be compared with virtual address */ + AddressValue = (*(__IO uint32_t*)Address); + + /* Compare the read address with the virtual address */ + if (AddressValue != ERASED) + { + /* In case variable value is read, reset ReadStatus flag */ + ReadStatus = 0; + + break; + } + /* Next address location */ + Address = Address + 4; + } + + /* Return ReadStatus value: (0: Page not erased, 1: Sector erased) */ + return ReadStatus; +} + +/** + * @brief Returns the last stored variable data, if found, which correspond to + * the passed virtual address + * @param VirtAddress: Variable virtual address + * @param Data: Global variable contains the read variable value + * @retval Success or error status: + * - 0: if variable was found + * - 1: if the variable was not found + * - NO_VALID_PAGE: if no valid page was found. + */ +uint32_t EE_ReadVariable(uint16_t VirtAddress, uint16_t* Data) +{ + uint32_t ValidPage = PAGE0; + uint32_t AddressValue = 0x5555, ReadStatus = 1; + uint32_t Address = EEPROM_START_ADDRESS, PageStartAddress = EEPROM_START_ADDRESS; + EE_Item eeItem; + + /* Get active Page for read operation */ + ValidPage = EE_FindValidPage(READ_FROM_VALID_PAGE); + + /* Check if there is no valid page */ + if (ValidPage == NO_VALID_PAGE) + { + return NO_VALID_PAGE; + } + + /* Get the valid Page start Address */ + PageStartAddress = (uint32_t)(EEPROM_START_ADDRESS + (uint32_t)(ValidPage * PAGE_SIZE)); + + /* Get the valid Page end Address */ + Address = (uint32_t)((EEPROM_START_ADDRESS - 4) + (uint32_t)((1 + ValidPage) * PAGE_SIZE)); + + /* Check each active page address starting from end */ + while (Address >= (PageStartAddress + 4)) + { + /* Get the current location content to be compared with virtual address */ + eeItem.buf = (*(__IO uint32_t*)Address); + + /* Compare the read address with the virtual address */ + if (eeItem.index == VirtAddress) + { + /* Get content of Address-2 which is variable value */ + *Data = eeItem.data; + + /* In case variable value is read, reset ReadStatus flag */ + ReadStatus = 0; + + break; + } + else + { + /* Next address location */ + Address = Address - 4; + } + } + + /* Return ReadStatus value: (0: variable exist, 1: variable doesn't exist) */ + return ReadStatus; +} + + +/** + * @brief Writes/upadtes variable data in EEPROM. + * @param VirtAddress: Variable virtual address + * @param Data: 16 bit data to be written + * @retval Success or error status: + * - FLASH_COMPLETE: on success + * - PAGE_FULL: if valid page is full + * - NO_VALID_PAGE: if no valid page was found + * - Flash error code: on write Flash error + */ +uint32_t EE_WriteVariable(uint16_t VirtAddress, uint16_t Data) +{ + uint32_t Status = 0; + + /* Write the variable virtual address and value in the EEPROM */ + Status = EE_VerifyPageFullWriteVariable(VirtAddress, Data); + + /* In case the EEPROM active page is full */ + if (Status == PAGE_FULL) + { + /* Perform Page transfer */ + Status = EE_PageTransfer(VirtAddress, Data); + } + + /* Return last operation status */ + return Status; +} + +/** + * @brief Erases PAGE and PAGE1 and writes VALID_PAGE header to PAGE + * @param None + * @retval Status of the last operation (Flash write or erase) done during + * EEPROM formating + */ +static uint32_t EE_Format(void) +{ + uint32_t FlashStatus = EE_OK; + uint32_t SectorError = 0; + + /* Erase Page0 */ + if(!EE_VerifyPageFullyErased(PAGE0_BASE_ADDRESS)) + { + if (flash_erase_page(PAGE0_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + } + /* Set Page0 as valid page: Write VALID_PAGE at Page0 base address */ + FlashStatus = EE_WriteData(PAGE0_BASE_ADDRESS, VALID_PAGE); + /* If program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + return FlashStatus; + + /* Erase Page1 */ + if(!EE_VerifyPageFullyErased(PAGE1_BASE_ADDRESS)) + { + if (flash_erase_page(PAGE1_BASE_ADDRESS) != E_NO_ERROR) + return EE_ERROR; + } + + return EE_OK; +} + +/** + * @brief Find valid Page for write or read operation + * @param Operation: operation to achieve on the valid page. + * This parameter can be one of the following values: + * @arg READ_FROM_VALID_PAGE: read operation from valid page + * @arg WRITE_IN_VALID_PAGE: write operation from valid page + * @retval Valid page number (PAGE or PAGE1) or NO_VALID_PAGE in case + * of no valid page was found + */ +static uint32_t EE_FindValidPage(uint8_t Operation) +{ + uint32_t PageStatus0 = 6, PageStatus1 = 6; + + /* Get Page0 actual status */ + PageStatus0 = (*(__IO uint32_t*)PAGE0_BASE_ADDRESS); + + /* Get Page1 actual status */ + PageStatus1 = (*(__IO uint32_t*)PAGE1_BASE_ADDRESS); + + /* Write or read operation */ + switch (Operation) + { + case WRITE_IN_VALID_PAGE: /* ---- Write operation ---- */ + if (PageStatus1 == VALID_PAGE) + { + /* Page0 receiving data */ + if (PageStatus0 == RECEIVE_DATA) + { + return PAGE0; /* Page0 valid */ + } + else + { + return PAGE1; /* Page1 valid */ + } + } + else if (PageStatus0 == VALID_PAGE) + { + /* Page1 receiving data */ + if (PageStatus1 == RECEIVE_DATA) + { + return PAGE1; /* Page1 valid */ + } + else + { + return PAGE0; /* Page0 valid */ + } + } + else + { + return NO_VALID_PAGE; /* No valid Page */ + } + + case READ_FROM_VALID_PAGE: /* ---- Read operation ---- */ + if (PageStatus0 == VALID_PAGE) + { + return PAGE0; /* Page0 valid */ + } + else if (PageStatus1 == VALID_PAGE) + { + return PAGE1; /* Page1 valid */ + } + else + { + return NO_VALID_PAGE ; /* No valid Page */ + } + + default: + return PAGE0; /* Page0 valid */ + } +} + +/** + * @brief Verify if active page is full and Writes variable in EEPROM. + * @param VirtAddress: 16 bit virtual address of the variable + * @param Data: 16 bit data to be written as variable value + * @retval Success or error status: + * - FLASH_COMPLETE: on success + * - PAGE_FULL: if valid page is full + * - NO_VALID_PAGE: if no valid page was found + * - Flash error code: on write Flash error + */ + +static uint32_t EE_VerifyPageFullWriteVariable(uint16_t VirtAddress, uint16_t Data) +{ + uint32_t FlashStatus = EE_OK; + uint32_t ValidPage = PAGE0; + uint32_t Address = EEPROM_START_ADDRESS, PageEndAddress = EEPROM_START_ADDRESS+PAGE_SIZE; + + /* Get valid Page for write operation */ + ValidPage = EE_FindValidPage(WRITE_IN_VALID_PAGE); + + /* Check if there is no valid page */ + if (ValidPage == NO_VALID_PAGE) + { + return NO_VALID_PAGE; + } + + /* Get the valid Page start Address */ + Address = (uint32_t)(EEPROM_START_ADDRESS + (uint32_t)(ValidPage * PAGE_SIZE) + 4); + + /* Get the valid Page end Address */ + PageEndAddress = (uint32_t)((EEPROM_START_ADDRESS - 4) + (uint32_t)((ValidPage + 1) * PAGE_SIZE)); + + /* Check each active page address starting from begining */ + while (Address <= PageEndAddress) + { + /* Verify if Address and Address+2 contents are 0xFFFFFFFF */ + if ((*(__IO uint32_t*)Address) == ERASED) + { + EE_Item eeItem; + eeItem.index = VirtAddress; + eeItem.data = Data; + + /* Set variable data */ + FlashStatus = EE_WriteData(Address, eeItem.buf); + + return FlashStatus; + } + else + { + /* Next address location */ + Address = Address + 4; + } + } + + /* Return PAGE_FULL in case the valid page is full */ + return PAGE_FULL; +} + +static uint32_t EE_Transfer_Write_Variable(uint32_t writeaddress, uint16_t VirtAddress, uint16_t Data) +{ + uint32_t FlashStatus = EE_OK; + uint32_t ValidPage = PAGE0; + uint32_t Address = writeaddress, PageEndAddress = writeaddress+PAGE_SIZE; + + /* Check each active page address starting from begining */ + while (Address <= PageEndAddress) + { + /* Verify if Address and Address+2 contents are 0xFFFFFFFF */ + if ((*(__IO uint32_t*)Address) == ERASED) + { + EE_Item eeItem; + eeItem.index = VirtAddress; + eeItem.data = Data; + + /* Set variable data */ + FlashStatus = EE_WriteData(Address, eeItem.buf); + + return FlashStatus; + } + else + { + /* Next address location */ + Address = Address + 4; + } + } + + /* Return PAGE_FULL in case the valid page is full */ + return PAGE_FULL; +} + + +/** + * @brief Returns the last stored variable data, if found, which correspond to + * the passed virtual address + * @param VirtAddress: Variable virtual address + * @param Data: Global variable contains the read variable value + * @retval Success or error status: + * - 0: if variable was found + * - 1: if the variable was not found + * - NO_VALID_PAGE: if no valid page was found. + */ +static uint32_t EE_Transfer_ReadVariable(uint32_t OldAddress, uint16_t VirtAddress, uint16_t* Data) +{ + uint32_t ValidPage = PAGE0; + uint32_t AddressValue = 0x5555, ReadStatus = 1; + uint32_t Address = EEPROM_START_ADDRESS, PageStartAddress = EEPROM_START_ADDRESS; + EE_Item eeItem; + + /* Get the valid Page start Address */ + PageStartAddress = OldAddress; + + /* Get the valid Page end Address */ + Address = (uint32_t)((PageStartAddress - 4) + (uint32_t)PAGE_SIZE); + + /* Check each active page address starting from end */ + while (Address >= (PageStartAddress + 4)) + { + /* Get the current location content to be compared with virtual address */ + eeItem.buf = (*(__IO uint32_t*)Address); + + /* Compare the read address with the virtual address */ + if (eeItem.index == VirtAddress) + { + /* Get content of Address-2 which is variable value */ + *Data = eeItem.data; + + /* In case variable value is read, reset ReadStatus flag */ + ReadStatus = 0; + + break; + } + else + { + /* Next address location */ + Address = Address - 4; + } + } + + /* Return ReadStatus value: (0: variable exist, 1: variable doesn't exist) */ + return ReadStatus; +} + + + + +/** + * @brief Transfers last updated variables data from the full Page to + * an empty one. + * @param VirtAddress: 16 bit virtual address of the variable + * @param Data: 16 bit data to be written as variable value + * @retval Success or error status: + * - FLASH_COMPLETE: on success + * - PAGE_FULL: if valid page is full + * - NO_VALID_PAGE: if no valid page was found + * - Flash error code: on write Flash error + */ +static uint32_t EE_PageTransfer(uint16_t VirtAddress, uint16_t Data) +{ + uint32_t FlashStatus = EE_OK; + uint32_t NewPageAddress = EEPROM_START_ADDRESS; + uint32_t OldPageAddress = EEPROM_START_ADDRESS; + uint16_t OldPageId=0; + uint16_t ValidPage = PAGE0, VarIdx = 0; + uint32_t EepromStatus = 0, ReadStatus = 0; + uint32_t SectorError = 0; + + /* Get active Page for read operation */ + ValidPage = EE_FindValidPage(READ_FROM_VALID_PAGE); + + if (ValidPage == PAGE1) /* Page1 valid */ + { + /* New page address where variable will be moved to */ + NewPageAddress = PAGE0_BASE_ADDRESS; + + /* Old page ID where variable will be taken from */ + OldPageId = PAGE1_ID; + OldPageAddress = PAGE1_BASE_ADDRESS; + } + else if (ValidPage == PAGE0) /* Page0 valid */ + { + /* New page address where variable will be moved to */ + NewPageAddress = PAGE1_BASE_ADDRESS; + + /* Old page ID where variable will be taken from */ + OldPageId = PAGE0_ID; + OldPageAddress = PAGE0_BASE_ADDRESS; + } + else + { + return NO_VALID_PAGE; /* No valid Page */ + } + + /* Set the new Page status to RECEIVE_DATA status */ + FlashStatus = EE_WriteData(NewPageAddress, VALID_PAGE); + /* If program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + return FlashStatus; + + /* Write the variable passed as parameter in the new active page */ + EepromStatus = EE_Transfer_Write_Variable(NewPageAddress, VirtAddress, Data); + /* If program operation was failed, a Flash error code is returned */ + if (EepromStatus != EE_OK) + { + return EepromStatus; + } + + /* Transfer process: transfer variables from old to the new active page */ + for (VarIdx = 0; VarIdx < EE_INDEX_MAX; VarIdx++) + { + if (VarIdx != VirtAddress) /* Check each variable except the one passed as parameter */ + { + /* Read the other last variable updates */ + ReadStatus = EE_Transfer_ReadVariable(OldPageAddress, VarIdx, &DataVar); + /* In case variable corresponding to the virtual address was found */ + if (ReadStatus != 0x1) + { + /* Transfer the variable to the new active page */ + EepromStatus = EE_Transfer_Write_Variable(NewPageAddress, VarIdx, DataVar); + /* If program operation was failed, a Flash error code is returned */ + if (EepromStatus != EE_OK) + { + return EepromStatus; + } + } + } + } + + /* Erase the old Page: Set old Page status to ERASED status */ + if (flash_erase_page(OldPageAddress) != E_NO_ERROR) + return EE_ERROR; + + /* Return last operation flash status */ + return FlashStatus; + +#if 0 + + /* Set the new Page status to RECEIVE_DATA status */ + FlashStatus = EE_WriteData(NewPageAddress, RECEIVE_DATA); + /* If program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + return FlashStatus; + + /* Write the variable passed as parameter in the new active page */ + EepromStatus = EE_VerifyPageFullWriteVariable(VirtAddress, Data); + /* If program operation was failed, a Flash error code is returned */ + if (EepromStatus != EE_OK) + { + return EepromStatus; + } + + /* Transfer process: transfer variables from old to the new active page */ + for (VarIdx = 0; VarIdx < NB_OF_VAR; VarIdx++) + { + if (VirtAddVarTab[VarIdx] != VirtAddress) /* Check each variable except the one passed as parameter */ + { + /* Read the other last variable updates */ + ReadStatus = EE_ReadVariable(VirtAddVarTab[VarIdx], &DataVar); + /* In case variable corresponding to the virtual address was found */ + if (ReadStatus != 0x1) + { + /* Transfer the variable to the new active page */ + EepromStatus = EE_VerifyPageFullWriteVariable(VirtAddVarTab[VarIdx], DataVar); + /* If program operation was failed, a Flash error code is returned */ + if (EepromStatus != EE_OK) + { + return EepromStatus; + } + } + } + } + + /* Erase the old Page: Set old Page status to ERASED status */ + if (flash_erase_page(OldPageAddress) != E_NO_ERROR) + return EE_ERROR; + + /* Set new Page status to VALID_PAGE status */ + FlashStatus = EE_WriteData(NewPageAddress, VALID_PAGE); + /* If program operation was failed, a Flash error code is returned */ + if (FlashStatus != EE_OK) + return FlashStatus; + + /* Return last operation flash status */ + return FlashStatus; +#endif +} + +/** + * @} + */ + + +static uint32_t EE_WriteData(uint32_t address, uint32_t data) +{ + return (Flash_Write(address, (uint8_t *)&data, 4) ? EE_OK : EE_ERROR); +} + + + +/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ diff --git a/Project/Application/eeprom/eeprom.h b/Project/Application/eeprom/eeprom.h new file mode 100644 index 0000000..bfea12a --- /dev/null +++ b/Project/Application/eeprom/eeprom.h @@ -0,0 +1,125 @@ +/** + ****************************************************************************** + * @file EEPROM/EEPROM_Emulation/inc/eeprom.h + * @author MCD Application Team + * @brief This file contains all the functions prototypes for the EEPROM + * emulation firmware library. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2017 STMicroelectronics International N.V. + * All rights reserved.

+ * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted, provided that the following conditions are met: + * + * 1. Redistribution of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of other + * contributors to this software may be used to endorse or promote products + * derived from this software without specific written permission. + * 4. This software, including modifications and/or derivative works of this + * software, must execute solely and exclusively on microcontroller or + * microprocessor devices manufactured by or for STMicroelectronics. + * 5. Redistribution and use of this software other than as permitted under + * this license is void and will automatically terminate your rights under + * this license. + * + * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY + * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT + * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __EEPROM_H +#define __EEPROM_H + +/* Includes ------------------------------------------------------------------*/ + +/* Exported constants --------------------------------------------------------*/ +/* EEPROM emulation firmware error codes */ +#define HAL_OK (uint32_t)0 +#define EE_OK (uint32_t)0 +#define EE_ERROR (uint32_t)1 +#define EE_BUSY (uint32_t)2 +#define EE_TIMEOUT (uint32_t)3 + +/* Define the size of the sectors to be used */ +#define PAGE_SIZE (uint32_t)0x2000 /* Page size = 8KByte */ + +/* Device voltage range supposed to be [2.7V to 3.6V], the operation will + be done by word */ +#define VOLTAGE_RANGE (uint8_t)VOLTAGE_RANGE_3 + +/* EEPROM start address in Flash */ +#define EEPROM_START_ADDRESS ((uint32_t)0x0003C000) /* EEPROM emulation start address: + from sector2 : after 16KByte of used + Flash memory */ + +/* Pages 0 and 1 base and end addresses */ +#define PAGE0_BASE_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + 0x0000)) +#define PAGE0_END_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + (PAGE_SIZE - 1))) +#define PAGE0_ID 0 + +#define PAGE1_BASE_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + PAGE_SIZE)) +#define PAGE1_END_ADDRESS ((uint32_t)(EEPROM_START_ADDRESS + (2 * PAGE_SIZE - 1))) +#define PAGE1_ID 1 + +/* Used Flash pages for EEPROM emulation */ +#define PAGE0 ((uint32_t)0x0000) +#define PAGE1 ((uint32_t)0x0001) /* Page nb between PAGE0_BASE_ADDRESS & PAGE1_BASE_ADDRESS*/ + +/* No valid page define */ +#define NO_VALID_PAGE ((uint32_t)0x00AB) + +/* Page status definitions */ +#define ERASED ((uint32_t)0xFFFFFFFF) /* Page is empty */ +#define RECEIVE_DATA ((uint32_t)0xEEEEEEEE) /* Page is marked to receive data */ +//#define RECEIVE_DATA ((uint32_t)0x00000000) /* Page is marked to receive data */ +#define VALID_PAGE ((uint32_t)0x00000000) /* Page containing valid data */ + +/* Valid pages in read and write defines */ +#define READ_FROM_VALID_PAGE ((uint8_t)0x00) +#define WRITE_IN_VALID_PAGE ((uint8_t)0x01) + +/* Page full define */ +#define PAGE_FULL ((uint8_t)0x80) + +/* Variables' number */ +//#define NB_OF_VAR ((uint8_t)0x03) + +typedef struct { + union { + struct { + uint16_t index; + uint16_t data; + }; + uint32_t buf; + }; +} EE_Item; + +/* Exported types ------------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ +uint32_t EE_EraseAll(); +uint32_t EE_Init(void); +uint32_t EE_ReadVariable(uint16_t VirtAddress, uint16_t* Data); +uint32_t EE_WriteVariable(uint16_t VirtAddress, uint16_t Data); + +#endif /* __EEPROM_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Project/Application/eeprom/eeprom_address.c b/Project/Application/eeprom/eeprom_address.c new file mode 100644 index 0000000..e49c96a --- /dev/null +++ b/Project/Application/eeprom/eeprom_address.c @@ -0,0 +1,41 @@ +#include "eeprom_address.h" +#include "eeprom.h" + + + + + + +void Eeprom_Initialization(void) +{ + + EE_Init(); + +} + + +bool Eeprom_Get_Parameter(PARAMETER_INFO_BUFF* pParameterBuff) +{ + uint16_t i; + bool bRet = true; + + for(i = 0 ; i < EE_INDEX_MAX ; i++) + { + pParameterBuff->Parameter_Buff[i] = 0x0000; + EE_ReadVariable(i, &pParameterBuff->Parameter_Buff[i]); + } + return bRet; +} + +bool Eeprom_Save_Parameter(PARAMETER_INFO_BUFF* pParameterBuff) +{ + uint16_t i; + bool bRet = true; + for(i = 0 ; i < EE_INDEX_MAX ; i++) + { + EE_WriteVariable(i, pParameterBuff->Parameter_Buff[i]); + } + + return bRet; +} + diff --git a/Project/Application/eeprom/eeprom_address.h b/Project/Application/eeprom/eeprom_address.h new file mode 100644 index 0000000..56bd57f --- /dev/null +++ b/Project/Application/eeprom/eeprom_address.h @@ -0,0 +1,58 @@ +/** \file eeprom_address.h */ +#if !defined(EEPROM_ADDRESS_H__0037090D_999E_4298_A974_8283B405EB08__INCLUDED_) +#define EEPROM_ADDRESS_H__0037090D_999E_4298_A974_8283B405EB08__INCLUDED_ + +#include "board_config.h" + + +typedef enum +{ + EE_INDEX_ISSAVE, + EE_INDEX_ID_H, + EE_INDEX_ID_L, + EE_INDEX_PA_53, + EE_INDEX_PA_54, + EE_INDEX_PA_55, + EE_INDEX_PA_56, + EE_INDEX_PA_57, + EE_INDEX_PA_58, + EE_INDEX_PA_59, + EE_INDEX_PA_5A, + EE_INDEX_PA_5B, + EE_INDEX_CHECKSUM, + EE_INDEX_MAX, +}EEPROM_INDEX; + + +#pragma pack(push, 2) +typedef struct _parameter_info +{ + uint16_t isSaveParameter; + uint16_t Parameter_ID_H; + uint16_t Parameter_ID_L; + uint16_t Parameter_PARA_53; + uint16_t Parameter_PARA_54; + uint16_t Parameter_PARA_55; + uint16_t Parameter_PARA_56; + uint16_t Parameter_PARA_57; + uint16_t Parameter_PARA_58; + uint16_t Parameter_PARA_59; + uint16_t Parameter_PARA_5A; + uint16_t Parameter_PARA_5B; + uint16_t CheckSum; +}PARAMETER_INFO; +#pragma pack(pop) + +#pragma pack(push, 2) +typedef union _parameter_info_buff +{ + PARAMETER_INFO Parameter_Info; + uint16_t Parameter_Buff[EE_INDEX_MAX]; +}PARAMETER_INFO_BUFF; +#pragma pack(pop) + +void Eeprom_Initialization(void); +bool Eeprom_Get_Parameter(PARAMETER_INFO_BUFF* pParameterBuff); +bool Eeprom_Save_Parameter(PARAMETER_INFO_BUFF* pParameterBuff); + +#endif diff --git a/Project/Application/main.c b/Project/Application/main.c index 84259da..8b835b0 100644 --- a/Project/Application/main.c +++ b/Project/Application/main.c @@ -15,7 +15,8 @@ #include "app_log.h" #include "app_cli.h" #include "app_oled.h" - +#include "cammsys_flash.h" +#include "eeprom.h" @@ -47,7 +48,9 @@ int main(void) App_Led_Initialization(); App_CLI_Initialization(); Oled_Initialization(); - AK9757W_Initialization(); + AK9757W_Initialization(); + Eeprom_Initialization(); + __enable_irq(); App_Led_OutputSet(APP_LED_1, APP_LED_MODE_TOGGLE, 100, 900); diff --git a/Project/Application/sensor/ak9757w.c b/Project/Application/sensor/ak9757w.c index 525c310..822d99b 100644 --- a/Project/Application/sensor/ak9757w.c +++ b/Project/Application/sensor/ak9757w.c @@ -4,12 +4,14 @@ #include "app_log.h" #include "sw_timer.h" #include "app_oled.h" +#include "eeprom_address.h" #define AK9757W_CHIPID_READ_WAIT_TIME 100 #define AK9757W_ERROR_PRINT_INTERVAL 1000 #define AK9757W_MEASUREMENT_INTERVAL 1000 +#define AK9757W_MAGIC_KEY 0xA55A @@ -17,14 +19,15 @@ static AK9757W_HANDLER AK9757W_Handler; static AK9757W_HANDLER* pHandler = &AK9757W_Handler; +static PARAMETER_INFO_BUFF ParameterInfo; const uint8_t default_cntl_reg_data[] = {0x20, 0xFF, 0xFE, 0x4A, 0xE1, 0x00, 0x00, 0x00, 0xDF, 0xE0}; //const uint8_t default_cntl_reg_data[] = {0x20, 0xFF, 0xFE, 0x42, 0xE1, 0x00, 0x00, 0x00, 0xDF, 0xE0}; const uint8_t default_fcoef_reg_data[] = {0x29, 0xF3, 0x57, 0x30, 0x6B, 0xBE, 0x21, 0x61, 0x8D, 0x10, 0x8D, 0xBF, 0x01, 0x0C, 0xFE}; const uint8_t default_gcoef_reg_data[] = {0x37, 0x7D, 0x48, 0x40, 0xF1, 0xB7, 0x33, 0x83, 0x5C, 0x20, 0x40, 0xAB, 0x12, 0x70, 0x40}; const uint8_t default_xcoef_reg_data[] = {0x45, 0xC7, 0xA0, 0x32, 0x78, 0x42, 0x23, 0x75, 0x92, 0x16, 0xC5, 0x42, 0x08, 0x15, 0x60}; -//const uint8_t default_gir_oir_gts_ots_git_reg_data[] = {0x53, 0xE0, 0x94, 0x12, 0x00, 0x00, 0x0D, 0x14, 0x00, 0x00}; -const uint8_t default_gir_oir_gts_ots_git_reg_data[] = {0x53, 0xE0, 0x1C, 0x0E, 0x00, 0x00, 0xE1, 0x2F, 0x02, 0x00}; +const uint8_t default_gir_oir_gts_ots_git_reg_data[] = {0x53, 0xE0, 0x94, 0x12, 0x00, 0x00, 0x0D, 0x14, 0x00, 0x00}; +//const uint8_t default_gir_oir_gts_ots_git_reg_data[] = {0x53, 0xE0, 0x1C, 0x0E, 0x00, 0x00, 0xE1, 0x2F, 0x02, 0x00}; @@ -39,7 +42,7 @@ static bool AK9757W_Set_XCOEF4_0_Parameter(void); static bool AK9757W_Set_IR_TS_IT_Parameter(void); static bool AK9757W_Calc_Parameter(void); static bool AK9757W_Read_RawData(void); -static bool AK9757W_Process(void); +static void AK9757W_Process(void); static void AK9757W_Next_Step(AK9757W_STEP nextStep); static uint16_t AK9757W_Get_Tout(uint16_t TOUT); static int16_t AK9757W_14BitTo16Bit(uint16_t Data); @@ -58,6 +61,7 @@ bool AK9757W_Initialization(void) AK9757W_Handler.PreStep = STEP_INIT; AK9757W_Handler.Step = STEP_INIT; AK9757W_Handler.isMeasurementStart = true; + AK9757W_Handler.UpdateTime_Millisec = AK9757W_MEASUREMENT_INTERVAL; SW_Timer_Callback_Register(SW_TIMER_RUN_CONTINUE, 1, AK9757W_Process); return true; @@ -67,7 +71,7 @@ bool AK9757W_Initialization(void) -static bool AK9757W_Process(void) +static void AK9757W_Process(void) { switch(pHandler->Step) { @@ -170,7 +174,7 @@ static bool AK9757W_Process(void) } break; case STEP_MEASUREMENT: - if((millis() - pHandler->TickCount) >= AK9757W_MEASUREMENT_INTERVAL) + if((millis() - pHandler->TickCount) >= pHandler->UpdateTime_Millisec) { pHandler->TickCount = millis(); AK9757W_Read_RawData(); @@ -180,6 +184,7 @@ static bool AK9757W_Process(void) case STEP_WAIT_STOP: if(AK9757W_Set_Mode(AK9757W_MODE_STAND_BY_MODE) == false){ + pHandler->isMeasurementStart = false; AK9757W_Next_Step(STEP_ERROR); } else{ @@ -355,8 +360,39 @@ static bool AK9757W_Set_XCOEF4_0_Parameter(void) static bool AK9757W_Set_IR_TS_IT_Parameter(void) { int error; - uint8_t i; - memcpy(&pHandler->IR_TS_IT_Info.IR_TS_IT_Buff[0], &default_gir_oir_gts_ots_git_reg_data[1], (sizeof(default_gir_oir_gts_ots_git_reg_data)-1)); + uint8_t i; + + Eeprom_Get_Parameter(&ParameterInfo); + if(ParameterInfo.Parameter_Info.isSaveParameter == AK9757W_MAGIC_KEY) + { + uint16_t CheckSum = 0; + uint32_t readChipID; + + readChipID = (uint32_t)(ParameterInfo.Parameter_Info.Parameter_ID_H << 16) | (uint32_t)ParameterInfo.Parameter_Info.Parameter_ID_L; + + for(i = 0 ; i < EE_INDEX_CHECKSUM ; i++) + { + CheckSum += ParameterInfo.Parameter_Buff[i]; + } + + if(ParameterInfo.Parameter_Info.CheckSum == CheckSum && readChipID == pHandler->SensorID) + { + for(i = 0 ; i < 9 ; i ++) + { + pHandler->IR_TS_IT_Info.IR_TS_IT_Buff[i] = ParameterInfo.Parameter_Buff[EE_INDEX_PA_53 + i]; + } + dbg_printf(LOG_LEVEL_DEBUG, "Parameter write eeprom\r\n"); + } + else + { + memcpy(&pHandler->IR_TS_IT_Info.IR_TS_IT_Buff[0], &default_gir_oir_gts_ots_git_reg_data[1], (sizeof(default_gir_oir_gts_ots_git_reg_data)-1)); + } + } + else + { + memcpy(&pHandler->IR_TS_IT_Info.IR_TS_IT_Buff[0], &default_gir_oir_gts_ots_git_reg_data[1], (sizeof(default_gir_oir_gts_ots_git_reg_data)-1)); + } + error = I2C_Master_Write(TEMP_I2C_ADDRESS, &default_gir_oir_gts_ots_git_reg_data[0], sizeof(default_gir_oir_gts_ots_git_reg_data)); if(error != E_NO_ERROR) { @@ -660,5 +696,147 @@ static void AK9757W_Next_Step(AK9757W_STEP nextStep) bool AK9757W_Start_Stop(bool isStartStop) { + if(isStartStop == true) + { + if(pHandler->isMeasurementStart == false) + { + pHandler->isMeasurementStart = true; + AK9757W_Next_Step(STEP_INIT); + } + } + else + { + if(pHandler->isMeasurementStart == true) + AK9757W_Next_Step(STEP_WAIT_STOP); + } + return true; +} + +bool AK9757W_UpdateTime(uint32_t Millisec) +{ + if(pHandler->isMeasurementStart == true) + return false; + + pHandler->UpdateTime_Millisec = Millisec; + return true; +} + + +bool AK9757W_ReadReg(uint8_t RegAddr, uint32_t readLen, uint8_t* pReadBuff) +{ + int error; + + if(pHandler->isMeasurementStart == true) + return false; + + error = I2C_Master_WriteRead(TEMP_I2C_ADDRESS, &RegAddr, 1, &pReadBuff[0], readLen); + if(error != E_NO_ERROR) + { + return false; + } + return true; +} + + +bool AK9757W_WriteReg(uint8_t WriteAddr, uint8_t WriteData) +{ + uint8_t TxBuff[2]; + int error; + + if(pHandler->isMeasurementStart == true) + return false; + + TxBuff[0] = WriteAddr; + TxBuff[1] = WriteData; + + error = I2C_Master_Write(TEMP_I2C_ADDRESS, &TxBuff[0], 2); + if(error != E_NO_ERROR) + { + return false; + } + return true; +} + + +uint32_t AK9757W_GetID(void) +{ + return pHandler->SensorID; +} + +bool AK9757W_SaveParameter(void) +{ + uint8_t i; + int error; + + uint8_t RegAddr; + uint8_t RxBuff[9]; + + uint16_t CheckSum; + + if(pHandler->isMeasurementStart == true) + return false; + RegAddr = AK9757W_REG_PARAMETER; + error = I2C_Master_WriteRead(TEMP_I2C_ADDRESS, &RegAddr, 1, &RxBuff[0], 9); + if(error != E_NO_ERROR) + { + return false; + } + + CheckSum = 0x0000; + + + + + + ParameterInfo.Parameter_Info.isSaveParameter = AK9757W_MAGIC_KEY; + ParameterInfo.Parameter_Info.Parameter_ID_H = (pHandler->SensorID >> 16) & 0xFFFF; + ParameterInfo.Parameter_Info.Parameter_ID_L = (pHandler->SensorID >> 0) & 0xFFFF; + ParameterInfo.Parameter_Info.Parameter_PARA_53 = RxBuff[0]; + ParameterInfo.Parameter_Info.Parameter_PARA_54 = RxBuff[1]; + ParameterInfo.Parameter_Info.Parameter_PARA_55 = RxBuff[2]; + ParameterInfo.Parameter_Info.Parameter_PARA_56 = RxBuff[3]; + ParameterInfo.Parameter_Info.Parameter_PARA_57 = RxBuff[4]; + ParameterInfo.Parameter_Info.Parameter_PARA_58 = RxBuff[5]; + ParameterInfo.Parameter_Info.Parameter_PARA_59 = RxBuff[6]; + ParameterInfo.Parameter_Info.Parameter_PARA_5A = RxBuff[7]; + ParameterInfo.Parameter_Info.Parameter_PARA_5B = RxBuff[8]; + + for(i = 0 ; i < EE_INDEX_CHECKSUM ; i++) + { + CheckSum += ParameterInfo.Parameter_Buff[i]; + } + ParameterInfo.Parameter_Info.CheckSum = CheckSum; + + Eeprom_Save_Parameter(&ParameterInfo); + return true; + +} + +bool AK9757W_DeleteParameter(void) +{ + uint8_t i; + for(i = 0 ; i < EE_INDEX_MAX ; i++) + { + ParameterInfo.Parameter_Buff[i] = 0x0000; + } + Eeprom_Save_Parameter(&ParameterInfo); +} + +bool AK9757W_DispalyParameter(void) +{ + uint8_t i; + Eeprom_Get_Parameter(&ParameterInfo); + printf("MagicKey = 0x%04X\r\n", ParameterInfo.Parameter_Info.isSaveParameter); + printf("SensorID = 0x%04X%04X\r\n", ParameterInfo.Parameter_Info.Parameter_ID_H, ParameterInfo.Parameter_Info.Parameter_ID_L); + for(i = 0 ; i < 9 ; i++) + { + printf("Reg(%02X) = %02X\r\n", 0x53+i, ParameterInfo.Parameter_Buff[EE_INDEX_PA_53 + i]); + } + printf("CheckSum = 0x%04X\r\n", ParameterInfo.Parameter_Info.CheckSum); + + + + + } \ No newline at end of file diff --git a/Project/Application/sensor/ak9757w.h b/Project/Application/sensor/ak9757w.h index 76cac03..9b14f25 100644 --- a/Project/Application/sensor/ak9757w.h +++ b/Project/Application/sensor/ak9757w.h @@ -9,5 +9,12 @@ bool AK9757W_Initialization(void); bool AK9757W_Start_Stop(bool isStartStop); +bool AK9757W_UpdateTime(uint32_t Millisec); +bool AK9757W_ReadReg(uint8_t RegAddr, uint32_t readLen, uint8_t* pReadBuff); +bool AK9757W_WriteReg(uint8_t WriteAddr, uint8_t WriteData); +bool AK9757W_SaveParameter(void); +bool AK9757W_DeleteParameter(void); +bool AK9757W_DispalyParameter(void); +uint32_t AK9757W_GetID(void); #endif diff --git a/Project/Application/sensor/ak9757w_def.h b/Project/Application/sensor/ak9757w_def.h index 0f3ccdc..b9a4f40 100644 --- a/Project/Application/sensor/ak9757w_def.h +++ b/Project/Application/sensor/ak9757w_def.h @@ -412,6 +412,7 @@ typedef struct _ak9757w_handler bool isMeasurementStart; + uint32_t UpdateTime_Millisec; }AK9757W_HANDLER; diff --git a/Project/Compiler/AKM_Temperature_Demo.uvguix.befs b/Project/Compiler/AKM_Temperature_Demo.uvguix.befs index 2adec50..0c2fc53 100644 --- a/Project/Compiler/AKM_Temperature_Demo.uvguix.befs +++ b/Project/Compiler/AKM_Temperature_Demo.uvguix.befs @@ -110,8 +110,8 @@ 0 - 1772 - 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000001000000100000000B000000010000003F433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF42433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6C6F672E6300000000096170705F6C6F672E6300000000FFDC7800FFFFFFFF42433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F636C692E6300000000096170705F636C692E6300000000BECEA100FFFFFFFF4B433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C53444B5C537461727475705C737461727475705F6D617833323636302E730000000012737461727475705F6D617833323636302E7300000000F0A0A100FFFFFFFF43433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C73775F74696D65722E63000000000A73775F74696D65722E6300000000BCA8E100FFFFFFFF43433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F756172742E63000000000A6170705F756172742E63000000009CC1B600FFFFFFFF4A433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F72696E675F6275666665722E6300000000116170705F72696E675F6275666665722E6300000000F7B88600FFFFFFFF47433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6770696F5F6C65642E63000000000E6170705F6770696F5F6C65642E6300000000D9ADC200FFFFFFFF47433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6770696F5F6C65642E68000000000E6170705F6770696F5F6C65642E6800000000A5C2D700FFFFFFFF43433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F693263312E63000000000A6170705F693263312E6300000000B3A6BE00FFFFFFFF49433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6932635F6D61737465722E6300000000106170705F6932635F6D61737465722E6300000000EAD6A300FFFFFFFF49433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C73656E736F725C616B39373537772E630000000009616B39373537772E6300000000F6FA7D00FFFFFFFF49433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C73656E736F725C616B39373537772E680000000009616B39373537772E6800000000B5E99D00FFFFFFFF4D433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C73656E736F725C616B39373537775F6465662E68000000000D616B39373537775F6465662E68000000005FC3CF00FFFFFFFF43433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6F6C65642E63000000000A6170705F6F6C65642E6300000000C1838300FFFFFFFF4F433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6F6C65645F737364313330365C737364313330362E630000000009737364313330362E6300000000CACAD500FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F40F000066000000801600003F030000 + 2411 + 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000001000000160000000B000000010000003F433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF42433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6C6F672E6300000000096170705F6C6F672E6300000000FFDC7800FFFFFFFF42433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F636C692E6300000000096170705F636C692E6300000000BECEA100FFFFFFFF4B433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C53444B5C537461727475705C737461727475705F6D617833323636302E730000000012737461727475705F6D617833323636302E7300000000F0A0A100FFFFFFFF43433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C73775F74696D65722E63000000000A73775F74696D65722E6300000000BCA8E100FFFFFFFF43433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F756172742E63000000000A6170705F756172742E63000000009CC1B600FFFFFFFF4A433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F72696E675F6275666665722E6300000000116170705F72696E675F6275666665722E6300000000F7B88600FFFFFFFF47433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6770696F5F6C65642E63000000000E6170705F6770696F5F6C65642E6300000000D9ADC200FFFFFFFF47433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6770696F5F6C65642E68000000000E6170705F6770696F5F6C65642E6800000000A5C2D700FFFFFFFF43433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F693263312E63000000000A6170705F693263312E6300000000B3A6BE00FFFFFFFF49433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6932635F6D61737465722E6300000000106170705F6932635F6D61737465722E6300000000EAD6A300FFFFFFFF49433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C73656E736F725C616B39373537772E630000000009616B39373537772E6300000000F6FA7D00FFFFFFFF49433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C73656E736F725C616B39373537772E680000000009616B39373537772E6800000000B5E99D00FFFFFFFF4D433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C73656E736F725C616B39373537775F6465662E68000000000D616B39373537775F6465662E68000000005FC3CF00FFFFFFFF43433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6170705F6F6C65642E63000000000A6170705F6F6C65642E6300000000C1838300FFFFFFFF4F433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C6F6C65645F737364313330365C737364313330362E630000000009737364313330362E6300000000CACAD500FFFFFFFF4F433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C656570726F6D5C63616D6D7379735F666C6173682E63000000000F63616D6D7379735F666C6173682E6300000000C5D4F200FFFFFFFF4C433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C53444B5C4472697665725C496E636C7564655C6D78635F6572726F72732E68000000000C6D78635F6572726F72732E6800000000FFDC7800FFFFFFFF48433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C656570726F6D5C656570726F6D2E630000000008656570726F6D2E6300000000BECEA100FFFFFFFF50433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C656570726F6D5C656570726F6D5F616464726573732E630000000010656570726F6D5F616464726573732E6300000000F0A0A100FFFFFFFF50433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C656570726F6D5C656570726F6D5F616464726573732E680000000010656570726F6D5F616464726573732E6800000000BCA8E100FFFFFFFF43433A5C576F726B5C39372E204769745365727665725C414B4D5F44656D6F5F426F6172645C50726F6A6563745C4170706C69636174696F6E5C73775F74696D65722E68000000000A73775F74696D65722E68000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F40F000066000000801600003F030000 @@ -1805,8 +1805,8 @@ 59392 File - 2874 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000037C202096000000000000001300037C202012536C6565705F54696D65725F456E61626C650E4649524D574152455F4D414A4F520E54696D65725F63616C6C6261636B0C4932435F53687574646F776E11554152545F50726570466F72536C6565701350425F526567697374657243616C6C6261636B086D5F666F5F6C6F670A44454255475F4D4F44450E727463636C6F636B656E61626C650A5441524745545F5245560E4D58435F44454C41595F4D5345430844656C61795F6D73077379737469636B1052535632395F49525148616E646C657207707265696E69740B434C495F4B45595F44454C20535344313330365F447261774261636B47726F756E645F4C656674536869667405464F4E545300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2894 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000037C2020960000000000000014000F414B39373537575F50726F63657373037C202012536C6565705F54696D65725F456E61626C650E4649524D574152455F4D414A4F520E54696D65725F63616C6C6261636B0C4932435F53687574646F776E11554152545F50726570466F72536C6565701350425F526567697374657243616C6C6261636B086D5F666F5F6C6F670A44454255475F4D4F44450E727463636C6F636B656E61626C650A5441524745545F5245560E4D58435F44454C41595F4D5345430844656C61795F6D73077379737469636B1052535632395F49525148616E646C657207707265696E69740B434C495F4B45595F44454C20535344313330365F447261774261636B47726F756E645F4C656674536869667405464F4E54530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 980 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000A44656D6F20426F617264960000000000000001000A44656D6F20426F617264000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000A44656D6F20426F617264960000000000000001000A44656D6F20426F617264000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1891,7 +1891,7 @@ 0 16 - 03000000660000002A020000EE010000 + 03000000660000002A020000D4020000 16 @@ -1911,7 +1911,7 @@ 0 16 - 03000000660000002A020000EE010000 + 03000000660000002A020000D4020000 16 @@ -1931,7 +1931,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -1951,7 +1951,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -1971,7 +1971,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -1991,7 +1991,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2051,7 +2051,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2071,7 +2071,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2091,7 +2091,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2111,7 +2111,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2131,7 +2131,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2151,7 +2151,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2171,7 +2171,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2191,7 +2191,7 @@ 0 16 - 03000000660000002A020000EE010000 + 03000000660000002A020000D4020000 16 @@ -2211,7 +2211,7 @@ 0 16 - 03000000660000002A020000EE010000 + 03000000660000002A020000D4020000 16 @@ -2251,7 +2251,7 @@ 0 16 - 000000000B020000B1020000E6030000 + 00000000F1020000BB020000E6030000 16 @@ -2371,7 +2371,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2891,7 +2891,7 @@ 0 16 - 03000000660000002A020000EE010000 + 03000000660000002A020000D4020000 16 @@ -2951,7 +2951,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -2971,7 +2971,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -3531,7 +3531,7 @@ 0 16 - B8020000220200007D070000CD030000 + C2020000080300007D070000CD030000 16 @@ -3540,7 +3540,7 @@ 3388 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF31020000DF00000080070000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000B109000066000000000F0000F6000000310200004F00000080070000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000200C000066000000100D000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF2D0200004F00000031020000070200000100000002000010040000000100000012FFFFFF87060000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000008007000066000000AD0900001E020000000000004F0000002D020000070200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000007020000800700000B0200000100000001000010040000000100000086FDFFFFAF00000000000000000000000000000001000000000000000000000001000000000000000000000001000000FFFFFFFFEF000000EC020000F3000000E60300000000000002000000040000000000000079FFFFFF8F06000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000001000000350A000022020000000F0000FD030000B50200000B02000080070000E603000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7301000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727301000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000002000000000000000100000002000000FFFFFFFFB10200000B020000B5020000E603000001000000020000100400000000000000A8FCFFFFBE0300000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000007E0200008007000082020000000000000100000004000000010000001FFDFFFFAB000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000000000008007000099020000000F0000FD030000000000008202000080070000E60300000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF31020000DF00000080070000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000B109000066000000000F0000F6000000310200004F00000080070000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000200C000066000000100D000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF2D0200004F00000031020000ED0200000100000002000010040000000100000012FFFFFF87060000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000008007000066000000AD09000004030000000000004F0000002D020000ED0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000ED02000080070000F1020000010000000100001004000000010000004DFEFFFF7601000000000000000000000000000001000000000000000000000001000000000000000000000001000000FFFFFFFFEF000000EC020000F3000000E60300000000000002000000040000000000000079FFFFFF8F06000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000010000003F0A000008030000000F0000FD030000BF020000F102000080070000E603000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7301000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727301000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0A0000000000000002000000000000000100000002000000FFFFFFFFBB020000F1020000BF020000E603000001000000020000100400000000000000A8FCFFFFBE0300000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000007E0200008007000082020000000000000100000004000000010000001FFDFFFFAB000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000000000008007000099020000000F0000FD030000000000008202000080070000E60300000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 @@ -3563,7 +3563,7 @@ Build 980 - 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000004001D000000000000000000000000000000000100000001000000018030800000000004001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000004006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000400000000000000000000000000000000000001000000010000009600000003002050000000000A44656D6F20426F617264960000000000000001000A44656D6F20426F617264000000000180EB880000000004002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000400230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000004005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000004001D000000000000000000000000000000000100000001000000018030800000000004001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000004006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000400000000000000000000000000000000000001000000010000009600000003002050000000000A44656D6F20426F617264960000000000000001000A44656D6F20426F617264000000000180EB880000000004002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000400230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000004005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3579,7 +3579,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3606,9 +3606,9 @@ 11 ..\Application\main.c - 0 - 32 - 41 + 40 + 30 + 46 1 0 @@ -3624,9 +3624,9 @@ ..\Application\app_cli.c - 25 - 778 - 801 + 6 + 883 + 903 1 0 @@ -3634,7 +3634,7 @@ ..\SDK\Startup\startup_max32660.s 0 - 153 + 148 160 0 @@ -3643,17 +3643,17 @@ ..\Application\sw_timer.c 0 - 43 - 65 + 7 + 20 1 0 ..\Application\app_uart.c - 25 - 48 - 68 + 16 + 111 + 151 1 0 @@ -3697,17 +3697,17 @@ ..\Application\app_i2c_master.c 0 - 63 - 105 + 56 + 92 1 0 ..\Application\sensor\ak9757w.c - 29 - 552 - 572 + 32 + 71 + 84 1 0 @@ -3732,9 +3732,9 @@ ..\Application\app_oled.c - 0 - 1 - 14 + 32 + 177 + 213 1 0 @@ -3748,6 +3748,60 @@ 0 + + ..\Application\eeprom\cammsys_flash.c + 4 + 106 + 118 + 1 + + 0 + + + ..\SDK\Driver\Include\mxc_errors.h + 30 + 52 + 63 + 1 + + 0 + + + ..\Application\eeprom\eeprom.c + 0 + 652 + 692 + 1 + + 0 + + + ..\Application\eeprom\eeprom_address.c + 4 + 1 + 13 + 1 + + 0 + + + ..\Application\eeprom\eeprom_address.h + 49 + 11 + 50 + 1 + + 0 + + + ..\Application\sw_timer.h + 0 + 1 + 18 + 1 + + 0 + diff --git a/Project/Compiler/AKM_Temperature_Demo.uvoptx b/Project/Compiler/AKM_Temperature_Demo.uvoptx index eee56b0..38e44c7 100644 --- a/Project/Compiler/AKM_Temperature_Demo.uvoptx +++ b/Project/Compiler/AKM_Temperature_Demo.uvoptx @@ -148,34 +148,41 @@ - + + + 0 + 0 + 810 + 1 +
8786
+ 0 + 0 + 0 + 0 + 0 + 1 + ..\Application\sensor\ak9757w.c + + \\AKM_Temperature_Demo\../Application/sensor/ak9757w.c\810 +
+
0 1 - RxBuff + ParameterInfo 1 1 - ToutTemp,0x0A - - - 2 - 1 - pHandler - - - 3 - 1 - RetTemp,0x0A + RxBuff 1 0 - cacheMemLcd + 0x3c000 0 @@ -233,7 +240,7 @@ Application - 1 + 0 0 0 0 @@ -803,4 +810,48 @@ + + Eeprom + 1 + 0 + 0 + 0 + + 8 + 44 + 1 + 0 + 0 + 0 + ..\Application\eeprom\cammsys_flash.c + cammsys_flash.c + 0 + 0 + + + 8 + 45 + 1 + 0 + 0 + 0 + ..\Application\eeprom\eeprom.c + eeprom.c + 0 + 0 + + + 8 + 46 + 1 + 0 + 0 + 0 + ..\Application\eeprom\eeprom_address.c + eeprom_address.c + 0 + 0 + + + diff --git a/Project/Compiler/AKM_Temperature_Demo.uvprojx b/Project/Compiler/AKM_Temperature_Demo.uvprojx index cd14324..9b78323 100644 --- a/Project/Compiler/AKM_Temperature_Demo.uvprojx +++ b/Project/Compiler/AKM_Temperature_Demo.uvprojx @@ -322,7 +322,7 @@ 0 0 0 - 1 + 2 0 0 1 @@ -339,7 +339,7 @@ TARGET=32660,TARGET_REV=0x4131 - ..\SDK\Device;..\SDK\Device\Include;..\SDK\Driver\Include;..\SDK\Driver\Source;..\SDK\FlashLoader;..\SDK\Startup;..\Application;..\Application\oled_ssd1306;..\Application\resource;..\Application\sensor + ..\SDK\Device;..\SDK\Device\Include;..\SDK\Driver\Include;..\SDK\Driver\Source;..\SDK\FlashLoader;..\SDK\Startup;..\Application;..\Application\oled_ssd1306;..\Application\resource;..\Application\sensor;..\Application\eeprom @@ -357,7 +357,7 @@ - + ..\Application;..\Application\eeprom;..\Application\oled_ssd1306;..\Application\resource;..\Application\sensor;..\SDK;..\SDK\Device;..\SDK\Device\Include;..\SDK\Driver;..\SDK\Driver\Source;..\SDK\Driver\Include;..\SDK\FlashLoader;..\SDK\Startup @@ -630,6 +630,26 @@ + + Eeprom + + + cammsys_flash.c + 1 + ..\Application\eeprom\cammsys_flash.c + + + eeprom.c + 1 + ..\Application\eeprom\eeprom.c + + + eeprom_address.c + 1 + ..\Application\eeprom\eeprom_address.c + + + diff --git a/Project/Compiler/Listings/AKM_Temperature_Demo.map b/Project/Compiler/Listings/AKM_Temperature_Demo.map index 8956662..6b2e115 100644 --- a/Project/Compiler/Listings/AKM_Temperature_Demo.map +++ b/Project/Compiler/Listings/AKM_Temperature_Demo.map @@ -14,6 +14,7 @@ Section Cross References main.o(i.main) refers to app_cli.o(i.App_CLI_Initialization) for App_CLI_Initialization main.o(i.main) refers to app_oled.o(i.Oled_Initialization) for Oled_Initialization main.o(i.main) refers to ak9757w.o(i.AK9757W_Initialization) for AK9757W_Initialization + main.o(i.main) refers to eeprom_address.o(i.Eeprom_Initialization) for Eeprom_Initialization main.o(i.main) refers to app_gpio_led.o(i.App_Led_OutputSet) for App_Led_OutputSet main.o(i.main) refers to sw_timer.o(i.SW_Timer_Callback_Register) for SW_Timer_Callback_Register main.o(i.main) refers to sw_timer.o(i.SW_Timer_Callback_Process) for SW_Timer_Callback_Process @@ -87,7 +88,7 @@ Section Cross References app_gpio_i2c.o(i.App_Gpio_I2C_WriteData) refers to app_gpio_i2c.o(i.App_Gpio_I2C_Delay) for App_Gpio_I2C_Delay app_gpio_i2c.o(i.App_Gpio_I2C_WriteData) refers to app_gpio_i2c.o(i.App_Gpio_I2C_Port_Input) for App_Gpio_I2C_Port_Input app_gpio_i2c.o(i.App_Gpio_I2C_WriteData) refers to app_gpio_i2c.o(i.App_Gpio_I2C_Port_Read) for App_Gpio_I2C_Port_Read - app_i2c_master.o(i.I2C_Master_Handler) refers to uart.o(i.UART_Handler) for UART_Handler + app_i2c_master.o(i.I2C_Master_Handler) refers to i2c.o(i.I2C_Handler) for I2C_Handler app_i2c_master.o(i.I2C_Master_Handler) refers to app_i2c_master.o(.data) for pI2C_Master app_i2c_master.o(i.I2C_Master_Initialization) refers to i2c.o(i.I2C_Shutdown) for I2C_Shutdown app_i2c_master.o(i.I2C_Master_Initialization) refers to i2c.o(i.I2C_Init) for I2C_Init @@ -180,6 +181,7 @@ Section Cross References app_cli.o(i.cliInit) refers to app_cli.o(i.cliArgsIsStr) for cliArgsIsStr app_cli.o(i.cliInit) refers to app_cli.o(i.cliShowList) for cliShowList app_cli.o(i.cliInit) refers to app_cli.o(i.cliMemoryDump) for cliMemoryDump + app_cli.o(i.cliInit) refers to app_cli.o(i.cli_AKM_Cmd) for cli_AKM_Cmd app_cli.o(i.cliKeepLoop) refers to app_cli.o(.bss) for cli_node app_cli.o(i.cliLineAdd) refers to memcpya.o(.text) for __aeabi_memcpy app_cli.o(i.cliLineChange) refers to app_cli.o(i.uartPrintf) for uartPrintf @@ -209,6 +211,17 @@ Section Cross References app_cli.o(i.cliUpdate) refers to app_cli.o(i.uartPrintf) for uartPrintf app_cli.o(i.cliUpdate) refers to app_cli.o(i.uartWrite) for uartWrite app_cli.o(i.cliUpdate) refers to app_cli.o(i.cliLineChange) for cliLineChange + app_cli.o(i.cli_AKM_Cmd) refers to app_cli.o(i.cliPrintf) for cliPrintf + app_cli.o(i.cli_AKM_Cmd) refers to strcmp.o(.text) for strcmp + app_cli.o(i.cli_AKM_Cmd) refers to ak9757w.o(i.AK9757W_Start_Stop) for AK9757W_Start_Stop + app_cli.o(i.cli_AKM_Cmd) refers to ak9757w.o(i.AK9757W_GetID) for AK9757W_GetID + app_cli.o(i.cli_AKM_Cmd) refers to ak9757w.o(i.AK9757W_SaveParameter) for AK9757W_SaveParameter + app_cli.o(i.cli_AKM_Cmd) refers to ak9757w.o(i.AK9757W_DeleteParameter) for AK9757W_DeleteParameter + app_cli.o(i.cli_AKM_Cmd) refers to ak9757w.o(i.AK9757W_DispalyParameter) for AK9757W_DispalyParameter + app_cli.o(i.cli_AKM_Cmd) refers to strtoul.o(.text) for strtoul + app_cli.o(i.cli_AKM_Cmd) refers to ak9757w.o(i.AK9757W_UpdateTime) for AK9757W_UpdateTime + app_cli.o(i.cli_AKM_Cmd) refers to ak9757w.o(i.AK9757W_ReadReg) for AK9757W_ReadReg + app_cli.o(i.cli_AKM_Cmd) refers to ak9757w.o(i.AK9757W_WriteReg) for AK9757W_WriteReg app_cli.o(i.uartPrintf) refers to printfa.o(i.__0vsnprintf) for vsnprintf app_cli.o(i.uartPrintf) refers to app_cli.o(i.uartWrite) for uartWrite app_cli.o(i.uartWrite) refers to app_uart.o(i.App_Uart_Transmit_Len) for App_Uart_Transmit_Len @@ -637,6 +650,12 @@ Section Cross References ak9757w.o(i.AK9757W_Check_CompanyCode) refers to app_log.o(i.App_Log_Prinf) for App_Log_Prinf ak9757w.o(i.AK9757W_Check_CompanyCode) refers to app_i2c_master.o(i.I2C_Master_Read) for I2C_Master_Read ak9757w.o(i.AK9757W_Check_CompanyCode) refers to ak9757w.o(.constdata) for __FUNCTION__ + ak9757w.o(i.AK9757W_DeleteParameter) refers to eeprom_address.o(i.Eeprom_Save_Parameter) for Eeprom_Save_Parameter + ak9757w.o(i.AK9757W_DeleteParameter) refers to ak9757w.o(.bss) for ParameterInfo + ak9757w.o(i.AK9757W_DispalyParameter) refers to eeprom_address.o(i.Eeprom_Get_Parameter) for Eeprom_Get_Parameter + ak9757w.o(i.AK9757W_DispalyParameter) refers to printfa.o(i.__0printf) for __2printf + ak9757w.o(i.AK9757W_DispalyParameter) refers to ak9757w.o(.bss) for ParameterInfo + ak9757w.o(i.AK9757W_GetID) refers to ak9757w.o(.data) for pHandler ak9757w.o(i.AK9757W_Get_SensorID) refers to app_i2c_master.o(i.I2C_Master_WriteRead) for I2C_Master_WriteRead ak9757w.o(i.AK9757W_Get_SensorID) refers to app_log.o(i.App_Log_Prinf) for App_Log_Prinf ak9757w.o(i.AK9757W_Get_SensorID) refers to ak9757w.o(.constdata) for __FUNCTION__ @@ -665,6 +684,8 @@ Section Cross References ak9757w.o(i.AK9757W_Process) refers to ak9757w.o(.data) for pHandler ak9757w.o(i.AK9757W_Process) refers to ak9757w.o(.bss) for AK9757W_Handler ak9757w.o(i.AK9757W_Process) refers to ak9757w.o(.constdata) for __FUNCTION__ + ak9757w.o(i.AK9757W_ReadReg) refers to app_i2c_master.o(i.I2C_Master_WriteRead) for I2C_Master_WriteRead + ak9757w.o(i.AK9757W_ReadReg) refers to ak9757w.o(.data) for pHandler ak9757w.o(i.AK9757W_Read_RawData) refers to app_i2c_master.o(i.I2C_Master_WriteRead) for I2C_Master_WriteRead ak9757w.o(i.AK9757W_Read_RawData) refers to app_log.o(i.App_Log_Prinf) for App_Log_Prinf ak9757w.o(i.AK9757W_Read_RawData) refers to ak9757w.o(i.AK9757W_Get_Tout) for AK9757W_Get_Tout @@ -678,6 +699,10 @@ Section Cross References ak9757w.o(i.AK9757W_Read_RawData) refers to app_oled.o(i.Oled_SetTemperature) for Oled_SetTemperature ak9757w.o(i.AK9757W_Read_RawData) refers to ak9757w.o(.constdata) for __FUNCTION__ ak9757w.o(i.AK9757W_Read_RawData) refers to ak9757w.o(.data) for pHandler + ak9757w.o(i.AK9757W_SaveParameter) refers to app_i2c_master.o(i.I2C_Master_WriteRead) for I2C_Master_WriteRead + ak9757w.o(i.AK9757W_SaveParameter) refers to eeprom_address.o(i.Eeprom_Save_Parameter) for Eeprom_Save_Parameter + ak9757w.o(i.AK9757W_SaveParameter) refers to ak9757w.o(.data) for pHandler + ak9757w.o(i.AK9757W_SaveParameter) refers to ak9757w.o(.bss) for ParameterInfo ak9757w.o(i.AK9757W_Set_CNTL1_9_Parameter) refers to app_i2c_master.o(i.I2C_Master_Write) for I2C_Master_Write ak9757w.o(i.AK9757W_Set_CNTL1_9_Parameter) refers to app_log.o(i.App_Log_Prinf) for App_Log_Prinf ak9757w.o(i.AK9757W_Set_CNTL1_9_Parameter) refers to ak9757w.o(.data) for pHandler @@ -692,10 +717,12 @@ Section Cross References ak9757w.o(i.AK9757W_Set_GCOEF4_0_Parameter) refers to app_log.o(i.App_Log_Prinf) for App_Log_Prinf ak9757w.o(i.AK9757W_Set_GCOEF4_0_Parameter) refers to ak9757w.o(.constdata) for default_gcoef_reg_data ak9757w.o(i.AK9757W_Set_GCOEF4_0_Parameter) refers to ak9757w.o(.data) for pHandler - ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) refers to app_i2c_master.o(i.I2C_Master_Write) for I2C_Master_Write + ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) refers to eeprom_address.o(i.Eeprom_Get_Parameter) for Eeprom_Get_Parameter ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) refers to app_log.o(i.App_Log_Prinf) for App_Log_Prinf + ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) refers to app_i2c_master.o(i.I2C_Master_Write) for I2C_Master_Write + ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) refers to ak9757w.o(.bss) for ParameterInfo ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) refers to ak9757w.o(.data) for pHandler - ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) refers to ak9757w.o(.constdata) for default_gir_oir_gts_ots_git_reg_data + ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) refers to ak9757w.o(.constdata) for __FUNCTION__ ak9757w.o(i.AK9757W_Set_Mode) refers to app_i2c_master.o(i.I2C_Master_WriteRead) for I2C_Master_WriteRead ak9757w.o(i.AK9757W_Set_Mode) refers to app_log.o(i.App_Log_Prinf) for App_Log_Prinf ak9757w.o(i.AK9757W_Set_Mode) refers to app_i2c_master.o(i.I2C_Master_Write) for I2C_Master_Write @@ -705,7 +732,51 @@ Section Cross References ak9757w.o(i.AK9757W_Set_XCOEF4_0_Parameter) refers to app_log.o(i.App_Log_Prinf) for App_Log_Prinf ak9757w.o(i.AK9757W_Set_XCOEF4_0_Parameter) refers to ak9757w.o(.constdata) for default_xcoef_reg_data ak9757w.o(i.AK9757W_Set_XCOEF4_0_Parameter) refers to ak9757w.o(.data) for pHandler + ak9757w.o(i.AK9757W_Start_Stop) refers to ak9757w.o(i.AK9757W_Next_Step) for AK9757W_Next_Step + ak9757w.o(i.AK9757W_Start_Stop) refers to ak9757w.o(.data) for pHandler + ak9757w.o(i.AK9757W_UpdateTime) refers to ak9757w.o(.data) for pHandler + ak9757w.o(i.AK9757W_WriteReg) refers to app_i2c_master.o(i.I2C_Master_Write) for I2C_Master_Write + ak9757w.o(i.AK9757W_WriteReg) refers to ak9757w.o(.data) for pHandler ak9757w.o(.data) refers to ak9757w.o(.bss) for AK9757W_Handler + cammsys_flash.o(i.Flash_Erase) refers to cammsys_flash.o(i.flashInPage) for flashInPage + cammsys_flash.o(i.Flash_Erase) refers to cammsys_flash.o(i.flash_erase_page) for flash_erase_page + cammsys_flash.o(i.Flash_Erase) refers to cammsys_flash.o(i.flash_uninit) for flash_uninit + cammsys_flash.o(i.Flash_Erase) refers to cammsys_flash.o(i.Flash_Check_Mem) for Flash_Check_Mem + cammsys_flash.o(i.Flash_Initialization) refers to flc.o(.flashprog) for FLC_Init + cammsys_flash.o(i.Flash_Write) refers to cammsys_flash.o(i.flash_program_page) for flash_program_page + cammsys_flash.o(i.flash_erase_chip) refers to flc.o(.flashprog) for FLC_MassErase + cammsys_flash.o(i.flash_erase_page) refers to flc.o(.flashprog) for FLC_PageErase + cammsys_flash.o(i.flash_program_page) refers to flc.o(.flashprog) for FLC_Write32 + cammsys_flash.o(i.flash_program_page) refers to cammsys_flash.o(i.flash_verify) for flash_verify + cammsys_flash.o(i.flash_uninit) refers to flc.o(i.FLC_ClearFlags) for FLC_ClearFlags + eeprom.o(i.EE_EraseAll) refers to cammsys_flash.o(i.flash_erase_page) for flash_erase_page + eeprom.o(i.EE_Format) refers to eeprom.o(i.EE_VerifyPageFullyErased) for EE_VerifyPageFullyErased + eeprom.o(i.EE_Format) refers to cammsys_flash.o(i.flash_erase_page) for flash_erase_page + eeprom.o(i.EE_Format) refers to eeprom.o(i.EE_WriteData) for EE_WriteData + eeprom.o(i.EE_Init) refers to cammsys_flash.o(i.Flash_Initialization) for Flash_Initialization + eeprom.o(i.EE_Init) refers to eeprom.o(i.EE_VerifyPageFullyErased) for EE_VerifyPageFullyErased + eeprom.o(i.EE_Init) refers to cammsys_flash.o(i.flash_erase_page) for flash_erase_page + eeprom.o(i.EE_Init) refers to eeprom.o(i.EE_WriteData) for EE_WriteData + eeprom.o(i.EE_Init) refers to eeprom.o(i.EE_Format) for EE_Format + eeprom.o(i.EE_Init) refers to eeprom.o(i.EE_ReadVariable) for EE_ReadVariable + eeprom.o(i.EE_Init) refers to eeprom.o(i.EE_VerifyPageFullWriteVariable) for EE_VerifyPageFullWriteVariable + eeprom.o(i.EE_Init) refers to eeprom.o(.data) for DataVar + eeprom.o(i.EE_PageTransfer) refers to eeprom.o(i.EE_FindValidPage) for EE_FindValidPage + eeprom.o(i.EE_PageTransfer) refers to eeprom.o(i.EE_WriteData) for EE_WriteData + eeprom.o(i.EE_PageTransfer) refers to eeprom.o(i.EE_Transfer_Write_Variable) for EE_Transfer_Write_Variable + eeprom.o(i.EE_PageTransfer) refers to eeprom.o(i.EE_Transfer_ReadVariable) for EE_Transfer_ReadVariable + eeprom.o(i.EE_PageTransfer) refers to cammsys_flash.o(i.flash_erase_page) for flash_erase_page + eeprom.o(i.EE_PageTransfer) refers to eeprom.o(.data) for DataVar + eeprom.o(i.EE_ReadVariable) refers to eeprom.o(i.EE_FindValidPage) for EE_FindValidPage + eeprom.o(i.EE_Transfer_Write_Variable) refers to eeprom.o(i.EE_WriteData) for EE_WriteData + eeprom.o(i.EE_VerifyPageFullWriteVariable) refers to eeprom.o(i.EE_FindValidPage) for EE_FindValidPage + eeprom.o(i.EE_VerifyPageFullWriteVariable) refers to eeprom.o(i.EE_WriteData) for EE_WriteData + eeprom.o(i.EE_WriteData) refers to cammsys_flash.o(i.Flash_Write) for Flash_Write + eeprom.o(i.EE_WriteVariable) refers to eeprom.o(i.EE_VerifyPageFullWriteVariable) for EE_VerifyPageFullWriteVariable + eeprom.o(i.EE_WriteVariable) refers to eeprom.o(i.EE_PageTransfer) for EE_PageTransfer + eeprom_address.o(i.Eeprom_Get_Parameter) refers to eeprom.o(i.EE_ReadVariable) for EE_ReadVariable + eeprom_address.o(i.Eeprom_Initialization) refers to eeprom.o(i.EE_Init) for EE_Init + eeprom_address.o(i.Eeprom_Save_Parameter) refers to eeprom.o(i.EE_WriteVariable) for EE_WriteVariable pow.o(i.__hardfp_pow) refers (Special) to iusefp.o(.text) for __I$use$fp pow.o(i.__hardfp_pow) refers to dunder.o(i.__mathlib_dbl_infnan2) for __mathlib_dbl_infnan2 pow.o(i.__hardfp_pow) refers to errno.o(i.__set_errno) for __set_errno @@ -1155,7 +1226,7 @@ Removing Unused input sections from the image. Removing app_uart.o(.rev16_text), (4 bytes). Removing app_uart.o(.revsh_text), (4 bytes). Removing app_uart.o(i.App_Uart_Get_Last_Error), (12 bytes). - Removing app_uart.o(i.App_Uart_Print), (24 bytes). + Removing app_uart.o(i.App_Uart_Print), (26 bytes). Removing app_uart.o(i.printf_none), (8 bytes). Removing app_log.o(.rev16_text), (4 bytes). Removing app_log.o(.revsh_text), (4 bytes). @@ -1204,7 +1275,6 @@ Removing Unused input sections from the image. Removing dma.o(.data), (8 bytes). Removing flc.o(.rev16_text), (4 bytes). Removing flc.o(.revsh_text), (4 bytes). - Removing flc.o(.flashprog), (1256 bytes). Removing flc.o(i.FLC_ClearFlags), (32 bytes). Removing flc.o(i.FLC_DisableInt), (44 bytes). Removing flc.o(i.FLC_EnableInt), (44 bytes). @@ -1232,12 +1302,9 @@ Removing Unused input sections from the image. Removing i2c.o(i.I2C_ClearTimeout), (6 bytes). Removing i2c.o(i.I2C_DrainRX), (10 bytes). Removing i2c.o(i.I2C_DrainTX), (10 bytes). - Removing i2c.o(i.I2C_Handler), (40 bytes). Removing i2c.o(i.I2C_MasterAsync), (172 bytes). - Removing i2c.o(i.I2C_MasterHandler), (540 bytes). Removing i2c.o(i.I2C_Slave), (628 bytes). Removing i2c.o(i.I2C_SlaveAsync), (120 bytes). - Removing i2c.o(i.I2C_SlaveHandler), (540 bytes). Removing i2s.o(.rev16_text), (4 bytes). Removing i2s.o(.revsh_text), (4 bytes). Removing i2s.o(i.I2S_DMA_ClearFlags), (16 bytes). @@ -1326,9 +1393,7 @@ Removing Unused input sections from the image. Removing mxc_sys.o(i.SYS_ClockEnable_X32K), (22 bytes). Removing mxc_sys.o(i.SYS_DMA_Init), (12 bytes). Removing mxc_sys.o(i.SYS_DMA_Shutdown), (12 bytes). - Removing mxc_sys.o(i.SYS_FLC_Init), (6 bytes). Removing mxc_sys.o(i.SYS_FLC_Shutdown), (4 bytes). - Removing mxc_sys.o(i.SYS_Flash_Operation), (56 bytes). Removing mxc_sys.o(i.SYS_I2S_GetFreq), (16 bytes). Removing mxc_sys.o(i.SYS_I2S_Init), (56 bytes). Removing mxc_sys.o(i.SYS_I2S_Shutdown), (12 bytes). @@ -1487,10 +1552,21 @@ Removing Unused input sections from the image. Removing ak9757w.o(.revsh_text), (4 bytes). Removing ak9757w.o(i.AK9757W_6BitTo8it), (28 bytes). Removing ak9757w.o(i.AK9757W_Set_AD_OutputDataTyte), (4 bytes). - Removing ak9757w.o(i.AK9757W_Start_Stop), (4 bytes). + Removing cammsys_flash.o(.rev16_text), (4 bytes). + Removing cammsys_flash.o(.revsh_text), (4 bytes). + Removing cammsys_flash.o(i.Flash_Check_Mem), (32 bytes). + Removing cammsys_flash.o(i.Flash_Erase), (126 bytes). + Removing cammsys_flash.o(i.flashInPage), (76 bytes). + Removing cammsys_flash.o(i.flash_erase_chip), (8 bytes). + Removing cammsys_flash.o(i.flash_uninit), (12 bytes). + Removing eeprom.o(.rev16_text), (4 bytes). + Removing eeprom.o(.revsh_text), (4 bytes). + Removing eeprom.o(i.EE_EraseAll), (34 bytes). + Removing eeprom_address.o(.rev16_text), (4 bytes). + Removing eeprom_address.o(.revsh_text), (4 bytes). Removing dneg.o(.text), (6 bytes). -358 unused section(s) (total 22236 bytes) removed from the image. +363 unused section(s) (total 20108 bytes) removed from the image. ============================================================================== @@ -1501,53 +1577,53 @@ Image Symbol Table Symbol Name Value Ov Type Size Object(Section) RESET 0x00000000 Section 284 startup_max32660.o(RESET) - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isspace_c.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalpha_o.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isdigit_o.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ctype_c.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isblank_o.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 iscntrl_o.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isupper_o.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isgraph_o.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 islower_o.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isxdigit_o.o ABSOLUTE ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isprint_o.o ABSOLUTE - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ispunct_o.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalpha_o.o ABSOLUTE ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isspace_o.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isgraph_o.o ABSOLUTE ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ctype_o.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isxdigit_o.o ABSOLUTE ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isalnum_o.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isblank_o.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isupper_o.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ispunct_o.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 iscntrl_o.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 islower_o.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ctype_c.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isspace_c.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isdigit_o.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE ../clib/microlib/errno.c 0x00000000 Number 0 errno.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE ../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE ../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE ../clib/microlib/stdio/streams.c 0x00000000 Number 0 stderr.o ABSOLUTE @@ -1558,24 +1634,24 @@ Image Symbol Table ../clib/microlib/string/strcpy.c 0x00000000 Number 0 strcpy.o ABSOLUTE ../clib/microlib/string/strtok.c 0x00000000 Number 0 strtok_r.o ABSOLUTE ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 strtof.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 _strtoul.o ABSOLUTE ../clib/scanf.c 0x00000000 Number 0 strtod.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 scanf_fp.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 _sgetc.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 strtoul.o ABSOLUTE ../clib/scanf.c 0x00000000 Number 0 _chval.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 strtoul.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 strtof.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 _sgetc.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 scanf_fp.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 _strtoul.o ABSOLUTE ../fplib/microlib/d2f.c 0x00000000 Number 0 d2f.o ABSOLUTE ../fplib/microlib/f2d.c 0x00000000 Number 0 f2d.o ABSOLUTE ../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE ../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE - ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 fepilogue.o ABSOLUTE ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 fepilogue.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixui.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixul.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE ../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.o ABSOLUTE ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltul.o ABSOLUTE - ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE ../fplib/microlib/fpneg.c 0x00000000 Number 0 dneg.o ABSOLUTE ../fplib/microlib/fpscalb.c 0x00000000 Number 0 dscalb.o ABSOLUTE @@ -1587,11 +1663,11 @@ Image Symbol Table ../mathlib/frexp.c 0x00000000 Number 0 frexp.o ABSOLUTE ../mathlib/narrow.c 0x00000000 Number 0 narrow.o ABSOLUTE ../mathlib/poly.c 0x00000000 Number 0 poly.o ABSOLUTE - ../mathlib/pow.c 0x00000000 Number 0 pow.o ABSOLUTE ../mathlib/pow.c 0x00000000 Number 0 pow_x.o ABSOLUTE + ../mathlib/pow.c 0x00000000 Number 0 pow.o ABSOLUTE ../mathlib/qnan.c 0x00000000 Number 0 qnan.o ABSOLUTE - ../mathlib/sqrt.c 0x00000000 Number 0 sqrt_x.o ABSOLUTE ../mathlib/sqrt.c 0x00000000 Number 0 sqrt.o ABSOLUTE + ../mathlib/sqrt.c 0x00000000 Number 0 sqrt_x.o ABSOLUTE ../mathlib/strtof.c 0x00000000 Number 0 strtof.o ABSOLUTE ..\Application\app_cli.c 0x00000000 Number 0 app_cli.o ABSOLUTE ..\Application\app_gpio.c 0x00000000 Number 0 app_gpio.o ABSOLUTE @@ -1602,6 +1678,9 @@ Image Symbol Table ..\Application\app_oled.c 0x00000000 Number 0 app_oled.o ABSOLUTE ..\Application\app_ring_buffer.c 0x00000000 Number 0 app_ring_buffer.o ABSOLUTE ..\Application\app_uart.c 0x00000000 Number 0 app_uart.o ABSOLUTE + ..\Application\eeprom\cammsys_flash.c 0x00000000 Number 0 cammsys_flash.o ABSOLUTE + ..\Application\eeprom\eeprom.c 0x00000000 Number 0 eeprom.o ABSOLUTE + ..\Application\eeprom\eeprom_address.c 0x00000000 Number 0 eeprom_address.o ABSOLUTE ..\Application\interrput_handler.c 0x00000000 Number 0 interrput_handler.o ABSOLUTE ..\Application\main.c 0x00000000 Number 0 main.o ABSOLUTE ..\Application\oled_ssd1306\ssd1306.c 0x00000000 Number 0 ssd1306.o ABSOLUTE @@ -1644,6 +1723,9 @@ Image Symbol Table ..\\Application\\app_oled.c 0x00000000 Number 0 app_oled.o ABSOLUTE ..\\Application\\app_ring_buffer.c 0x00000000 Number 0 app_ring_buffer.o ABSOLUTE ..\\Application\\app_uart.c 0x00000000 Number 0 app_uart.o ABSOLUTE + ..\\Application\\eeprom\\cammsys_flash.c 0x00000000 Number 0 cammsys_flash.o ABSOLUTE + ..\\Application\\eeprom\\eeprom.c 0x00000000 Number 0 eeprom.o ABSOLUTE + ..\\Application\\eeprom\\eeprom_address.c 0x00000000 Number 0 eeprom_address.o ABSOLUTE ..\\Application\\interrput_handler.c 0x00000000 Number 0 interrput_handler.o ABSOLUTE ..\\Application\\main.c 0x00000000 Number 0 main.o ABSOLUTE ..\\Application\\oled_ssd1306\\ssd1306.c 0x00000000 Number 0 ssd1306.o ABSOLUTE @@ -1689,341 +1771,387 @@ Image Symbol Table .ARM.Collect$$$$00000011 0x00000130 Section 0 entry11a.o(.ARM.Collect$$$$00000011) .ARM.Collect$$$$00002712 0x00000130 Section 4 entry2.o(.ARM.Collect$$$$00002712) __lit__00000000 0x00000130 Data 4 entry2.o(.ARM.Collect$$$$00002712) - .text 0x00000134 Section 40 startup_max32660.o(.text) - $v0 0x00000134 Number 0 startup_max32660.o(.text) - .text 0x0000015c Section 0 uldiv.o(.text) - .text 0x000001be Section 0 memcpya.o(.text) - .text 0x000001e2 Section 0 memseta.o(.text) - .text 0x00000206 Section 0 strcmp.o(.text) - .text 0x00000222 Section 0 strcpy.o(.text) - .text 0x00000234 Section 0 strtok_r.o(.text) - .text 0x00000278 Section 0 strtoul.o(.text) - .text 0x000002ea Section 0 dadd.o(.text) - .text 0x00000438 Section 0 dmul.o(.text) - .text 0x0000051c Section 0 ddiv.o(.text) - .text 0x000005fa Section 0 dflti.o(.text) - .text 0x0000061c Section 0 dfltui.o(.text) - .text 0x00000636 Section 0 dfixui.o(.text) - .text 0x00000668 Section 0 f2d.o(.text) - .text 0x0000068e Section 0 d2f.o(.text) - .text 0x000006c8 Section 36 init.o(.text) - .text 0x000006ec Section 0 uidiv.o(.text) - .text 0x00000718 Section 0 llshl.o(.text) - .text 0x00000736 Section 0 llushr.o(.text) - .text 0x00000756 Section 0 llsshr.o(.text) - .text 0x0000077c Section 0 ctype_o.o(.text) - .text 0x00000784 Section 0 isspace_o.o(.text) - .text 0x00000796 Section 0 _strtoul.o(.text) - .text 0x00000834 Section 0 strtof.o(.text) - .text 0x0000084e Section 0 iusefp.o(.text) - .text 0x0000084e Section 0 fepilogue.o(.text) - .text 0x000008bc Section 0 depilogue.o(.text) - .text 0x00000976 Section 0 dscalb.o(.text) - .text 0x000009a4 Section 0 dfixul.o(.text) - .text 0x000009d4 Section 48 cdrcmple.o(.text) - .text 0x00000a04 Section 0 _chval.o(.text) - .text 0x00000a20 Section 0 strtod.o(.text) - _local_sscanf 0x00000a21 Thumb Code 54 strtod.o(.text) - .text 0x00000abc Section 0 dsqrt.o(.text) - .text 0x00000b60 Section 48 cdcmple.o(.text) - .text 0x00000b90 Section 0 scanf_fp.o(.text) - _fp_value 0x00000b91 Thumb Code 296 scanf_fp.o(.text) - .text 0x00000ef0 Section 0 _sgetc.o(.text) - .text 0x00000f30 Section 0 fpstat.o(.text) - .text 0x00000f34 Section 0 dfltul.o(.text) - i.$Sub$$__main_after_scatterload 0x00000f4c Section 0 system_max32660.o(i.$Sub$$__main_after_scatterload) - i.AK9757W_12BitTo16Bit 0x00000f58 Section 0 ak9757w.o(i.AK9757W_12BitTo16Bit) - AK9757W_12BitTo16Bit 0x00000f59 Thumb Code 26 ak9757w.o(i.AK9757W_12BitTo16Bit) - i.AK9757W_14BitTo16Bit 0x00000f72 Section 0 ak9757w.o(i.AK9757W_14BitTo16Bit) - AK9757W_14BitTo16Bit 0x00000f73 Thumb Code 26 ak9757w.o(i.AK9757W_14BitTo16Bit) - i.AK9757W_Calc_Parameter 0x00000f8c Section 0 ak9757w.o(i.AK9757W_Calc_Parameter) - AK9757W_Calc_Parameter 0x00000f8d Thumb Code 1688 ak9757w.o(i.AK9757W_Calc_Parameter) - i.AK9757W_Check_CompanyCode 0x00001628 Section 0 ak9757w.o(i.AK9757W_Check_CompanyCode) - AK9757W_Check_CompanyCode 0x00001629 Thumb Code 150 ak9757w.o(i.AK9757W_Check_CompanyCode) - i.AK9757W_Get_SensorID 0x00001718 Section 0 ak9757w.o(i.AK9757W_Get_SensorID) - i.AK9757W_Get_Tout 0x000017b0 Section 0 ak9757w.o(i.AK9757W_Get_Tout) - AK9757W_Get_Tout 0x000017b1 Thumb Code 76 ak9757w.o(i.AK9757W_Get_Tout) - i.AK9757W_Initialization 0x0000180c Section 0 ak9757w.o(i.AK9757W_Initialization) - i.AK9757W_Next_Step 0x00001838 Section 0 ak9757w.o(i.AK9757W_Next_Step) - AK9757W_Next_Step 0x00001839 Thumb Code 20 ak9757w.o(i.AK9757W_Next_Step) - i.AK9757W_Process 0x00001850 Section 0 ak9757w.o(i.AK9757W_Process) - AK9757W_Process 0x00001851 Thumb Code 480 ak9757w.o(i.AK9757W_Process) - i.AK9757W_Read_RawData 0x00001a58 Section 0 ak9757w.o(i.AK9757W_Read_RawData) - AK9757W_Read_RawData 0x00001a59 Thumb Code 406 ak9757w.o(i.AK9757W_Read_RawData) - i.AK9757W_Set_CNTL1_9_Parameter 0x00001c64 Section 0 ak9757w.o(i.AK9757W_Set_CNTL1_9_Parameter) - AK9757W_Set_CNTL1_9_Parameter 0x00001c65 Thumb Code 60 ak9757w.o(i.AK9757W_Set_CNTL1_9_Parameter) - i.AK9757W_Set_FCOEF4_0_Parameter 0x00001cc8 Section 0 ak9757w.o(i.AK9757W_Set_FCOEF4_0_Parameter) - AK9757W_Set_FCOEF4_0_Parameter 0x00001cc9 Thumb Code 70 ak9757w.o(i.AK9757W_Set_FCOEF4_0_Parameter) - i.AK9757W_Set_GCOEF4_0_Parameter 0x00001d5c Section 0 ak9757w.o(i.AK9757W_Set_GCOEF4_0_Parameter) - AK9757W_Set_GCOEF4_0_Parameter 0x00001d5d Thumb Code 70 ak9757w.o(i.AK9757W_Set_GCOEF4_0_Parameter) - i.AK9757W_Set_IR_TS_IT_Parameter 0x00001df0 Section 0 ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) - AK9757W_Set_IR_TS_IT_Parameter 0x00001df1 Thumb Code 76 ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) - i.AK9757W_Set_Mode 0x00001e88 Section 0 ak9757w.o(i.AK9757W_Set_Mode) - i.AK9757W_Set_XCOEF4_0_Parameter 0x00001f70 Section 0 ak9757w.o(i.AK9757W_Set_XCOEF4_0_Parameter) - AK9757W_Set_XCOEF4_0_Parameter 0x00001f71 Thumb Code 70 ak9757w.o(i.AK9757W_Set_XCOEF4_0_Parameter) - i.App_CLI_Initialization 0x00002004 Section 0 app_cli.o(i.App_CLI_Initialization) - i.App_Gpio_I2C_Delay 0x0000201c Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Delay) - App_Gpio_I2C_Delay 0x0000201d Thumb Code 18 app_gpio_i2c.o(i.App_Gpio_I2C_Delay) - i.App_Gpio_I2C_Initialization 0x00002034 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Initialization) - i.App_Gpio_I2C_Port_H 0x00002078 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_H) - App_Gpio_I2C_Port_H 0x00002079 Thumb Code 14 app_gpio_i2c.o(i.App_Gpio_I2C_Port_H) - i.App_Gpio_I2C_Port_Input 0x0000208c Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Input) - App_Gpio_I2C_Port_Input 0x0000208d Thumb Code 28 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Input) - i.App_Gpio_I2C_Port_L 0x000020a8 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_L) - App_Gpio_I2C_Port_L 0x000020a9 Thumb Code 14 app_gpio_i2c.o(i.App_Gpio_I2C_Port_L) - i.App_Gpio_I2C_Port_Output 0x000020bc Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Output) - App_Gpio_I2C_Port_Output 0x000020bd Thumb Code 30 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Output) - i.App_Gpio_I2C_Port_Read 0x000020dc Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Read) - App_Gpio_I2C_Port_Read 0x000020dd Thumb Code 26 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Read) - i.App_Gpio_I2C_Start 0x000020fc Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Start) - i.App_Gpio_I2C_Stop 0x00002130 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Stop) - i.App_Gpio_I2C_WriteData 0x00002164 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_WriteData) - i.App_Led_Initialization 0x000021e8 Section 0 app_gpio_led.o(i.App_Led_Initialization) - i.App_Led_Off 0x00002244 Section 0 app_gpio_led.o(i.App_Led_Off) - App_Led_Off 0x00002245 Thumb Code 30 app_gpio_led.o(i.App_Led_Off) - i.App_Led_On 0x0000226c Section 0 app_gpio_led.o(i.App_Led_On) - App_Led_On 0x0000226d Thumb Code 30 app_gpio_led.o(i.App_Led_On) - i.App_Led_OutputSet 0x00002294 Section 0 app_gpio_led.o(i.App_Led_OutputSet) - i.App_Led_Output_Process 0x000022d8 Section 0 app_gpio_led.o(i.App_Led_Output_Process) - App_Led_Output_Process 0x000022d9 Thumb Code 124 app_gpio_led.o(i.App_Led_Output_Process) - i.App_Log_Prinf 0x00002358 Section 0 app_log.o(i.App_Log_Prinf) - i.App_Uart_Data_Transmit_Check 0x000023a4 Section 0 app_uart.o(i.App_Uart_Data_Transmit_Check) - App_Uart_Data_Transmit_Check 0x000023a5 Thumb Code 48 app_uart.o(i.App_Uart_Data_Transmit_Check) - i.App_Uart_Get_Recv_Data 0x000023dc Section 0 app_uart.o(i.App_Uart_Get_Recv_Data) - i.App_Uart_Initialization 0x000023fc Section 0 app_uart.o(i.App_Uart_Initialization) - i.App_Uart_Interrupt_Handler 0x000024e8 Section 0 app_uart.o(i.App_Uart_Interrupt_Handler) - App_Uart_Interrupt_Handler 0x000024e9 Thumb Code 10 app_uart.o(i.App_Uart_Interrupt_Handler) - i.App_Uart_Read_Callback 0x000024f8 Section 0 app_uart.o(i.App_Uart_Read_Callback) - App_Uart_Read_Callback 0x000024f9 Thumb Code 22 app_uart.o(i.App_Uart_Read_Callback) - i.App_Uart_Read_Callback_Initialization 0x00002518 Section 0 app_uart.o(i.App_Uart_Read_Callback_Initialization) - App_Uart_Read_Callback_Initialization 0x00002519 Thumb Code 24 app_uart.o(i.App_Uart_Read_Callback_Initialization) - i.App_Uart_Transmit 0x00002540 Section 0 app_uart.o(i.App_Uart_Transmit) - i.App_Uart_Transmit_Len 0x00002554 Section 0 app_uart.o(i.App_Uart_Transmit_Len) - i.Board_Init 0x0000256e Section 0 system_max32660.o(i.Board_Init) - i.GPIO0_IRQHandler 0x00002572 Section 0 app_gpio.o(i.GPIO0_IRQHandler) - i.GPIO_Config 0x0000257c Section 0 gpio.o(i.GPIO_Config) - i.GPIO_Handler 0x00002674 Section 0 gpio.o(i.GPIO_Handler) - i.Gpio_Output_Clear 0x000026d8 Section 0 app_gpio.o(i.Gpio_Output_Clear) - i.Gpio_Output_Set 0x000026ec Section 0 app_gpio.o(i.Gpio_Output_Set) - i.Gpio_Port_Initialization 0x00002700 Section 0 app_gpio.o(i.Gpio_Port_Initialization) - i.Gpio_Set_Port_Output 0x0000270a Section 0 app_gpio.o(i.Gpio_Set_Port_Output) - i.I2C_FreeCallback 0x00002728 Section 0 i2c.o(i.I2C_FreeCallback) - I2C_FreeCallback 0x00002729 Thumb Code 36 i2c.o(i.I2C_FreeCallback) - i.I2C_Init 0x00002750 Section 0 i2c.o(i.I2C_Init) - i.I2C_MasterRead 0x000028d0 Section 0 i2c.o(i.I2C_MasterRead) - i.I2C_MasterWrite 0x000029b4 Section 0 i2c.o(i.I2C_MasterWrite) - i.I2C_Master_Handler 0x00002aa8 Section 0 app_i2c_master.o(i.I2C_Master_Handler) - I2C_Master_Handler 0x00002aa9 Thumb Code 12 app_i2c_master.o(i.I2C_Master_Handler) - i.I2C_Master_Initialization 0x00002ab8 Section 0 app_i2c_master.o(i.I2C_Master_Initialization) - i.I2C_Master_Read 0x00002b4c Section 0 app_i2c_master.o(i.I2C_Master_Read) - i.I2C_Master_Write 0x00002ba0 Section 0 app_i2c_master.o(i.I2C_Master_Write) - i.I2C_Master_WriteRead 0x00002bf0 Section 0 app_i2c_master.o(i.I2C_Master_WriteRead) - i.I2C_Recover 0x00002c84 Section 0 i2c.o(i.I2C_Recover) - I2C_Recover 0x00002c85 Thumb Code 24 i2c.o(i.I2C_Recover) - i.I2C_SetTimeout 0x00002c9c Section 0 i2c.o(i.I2C_SetTimeout) - i.I2C_Setspeed 0x00002ccc Section 0 i2c.o(i.I2C_Setspeed) - I2C_Setspeed 0x00002ccd Thumb Code 234 i2c.o(i.I2C_Setspeed) - i.I2C_Shutdown 0x00002dc4 Section 0 i2c.o(i.I2C_Shutdown) - i.ICC_Enable 0x00002e3c Section 0 icc.o(i.ICC_Enable) - i.ICC_Ready 0x00002e6c Section 0 icc.o(i.ICC_Ready) - ICC_Ready 0x00002e6d Thumb Code 10 icc.o(i.ICC_Ready) - i.LP_SetOperatingVoltage 0x00002e7c Section 0 lp.o(i.LP_SetOperatingVoltage) - i.NVIC_ClearPendingIRQ 0x00002f6c Section 0 app_i2c_master.o(i.NVIC_ClearPendingIRQ) - NVIC_ClearPendingIRQ 0x00002f6d Thumb Code 18 app_i2c_master.o(i.NVIC_ClearPendingIRQ) - i.NVIC_ClearPendingIRQ 0x00002f84 Section 0 app_uart.o(i.NVIC_ClearPendingIRQ) - NVIC_ClearPendingIRQ 0x00002f85 Thumb Code 18 app_uart.o(i.NVIC_ClearPendingIRQ) - i.NVIC_DisableIRQ 0x00002f9c Section 0 app_i2c_master.o(i.NVIC_DisableIRQ) - NVIC_DisableIRQ 0x00002f9d Thumb Code 18 app_i2c_master.o(i.NVIC_DisableIRQ) - i.NVIC_DisableIRQ 0x00002fb4 Section 0 app_uart.o(i.NVIC_DisableIRQ) - NVIC_DisableIRQ 0x00002fb5 Thumb Code 18 app_uart.o(i.NVIC_DisableIRQ) - i.NVIC_EnableIRQ 0x00002fcc Section 0 system_func.o(i.NVIC_EnableIRQ) - NVIC_EnableIRQ 0x00002fcd Thumb Code 22 system_func.o(i.NVIC_EnableIRQ) - i.NVIC_EnableIRQ 0x00002fe2 Section 0 app_i2c_master.o(i.NVIC_EnableIRQ) - NVIC_EnableIRQ 0x00002fe3 Thumb Code 22 app_i2c_master.o(i.NVIC_EnableIRQ) - i.NVIC_EnableIRQ 0x00002ff8 Section 0 app_uart.o(i.NVIC_EnableIRQ) - NVIC_EnableIRQ 0x00002ff9 Thumb Code 22 app_uart.o(i.NVIC_EnableIRQ) - i.NVIC_SetRAM 0x00003010 Section 0 nvic_table.o(i.NVIC_SetRAM) - i.NVIC_SetVector 0x00003034 Section 0 nvic_table.o(i.NVIC_SetVector) - i.Oled_Initialization 0x00003074 Section 0 app_oled.o(i.Oled_Initialization) - i.Oled_Next_Step 0x00003098 Section 0 app_oled.o(i.Oled_Next_Step) - Oled_Next_Step 0x00003099 Thumb Code 14 app_oled.o(i.Oled_Next_Step) - i.Oled_Process 0x000030b0 Section 0 app_oled.o(i.Oled_Process) - Oled_Process 0x000030b1 Thumb Code 464 app_oled.o(i.Oled_Process) - i.Oled_SetTemperature 0x000032b4 Section 0 app_oled.o(i.Oled_SetTemperature) - i.PreInit 0x000032e0 Section 0 system_max32660.o(i.PreInit) - i.RingBuffer_Dequeue 0x000032e4 Section 0 app_ring_buffer.o(i.RingBuffer_Dequeue) - i.RingBuffer_Enqueue 0x00003324 Section 0 app_ring_buffer.o(i.RingBuffer_Enqueue) - i.RingBuffer_GetData 0x00003366 Section 0 app_ring_buffer.o(i.RingBuffer_GetData) - i.RingBuffer_Get_DataSize 0x00003374 Section 0 app_ring_buffer.o(i.RingBuffer_Get_DataSize) - i.RingBuffer_Initialization 0x000033a4 Section 0 app_ring_buffer.o(i.RingBuffer_Initialization) - i.RingBuffer_PopData 0x000033c4 Section 0 app_ring_buffer.o(i.RingBuffer_PopData) - i.RingBuffer_isEmpty 0x000033ec Section 0 app_ring_buffer.o(i.RingBuffer_isEmpty) - i.RingBuffer_isFull 0x000033fc Section 0 app_ring_buffer.o(i.RingBuffer_isFull) - i.SSD1306_ClearScreen 0x00003420 Section 0 ssd1306.o(i.SSD1306_ClearScreen) - i.SSD1306_DrawBackGround 0x00003434 Section 0 ssd1306.o(i.SSD1306_DrawBackGround) - i.SSD1306_DrawBackGround_LeftShift 0x00003450 Section 0 ssd1306.o(i.SSD1306_DrawBackGround_LeftShift) - i.SSD1306_DrawBackGround_Log 0x0000349c Section 0 ssd1306.o(i.SSD1306_DrawBackGround_Log) - i.SSD1306_Draw_Temperature 0x000034b8 Section 0 ssd1306.o(i.SSD1306_Draw_Temperature) - i.SSD1306_Init 0x0000371c Section 0 ssd1306.o(i.SSD1306_Init) - i.SSD1306_InverseScreen 0x0000378c Section 0 ssd1306.o(i.SSD1306_InverseScreen) - i.SSD1306_NormalScreen 0x000037be Section 0 ssd1306.o(i.SSD1306_NormalScreen) - i.SSD1306_Send_Command 0x000037f0 Section 0 ssd1306.o(i.SSD1306_Send_Command) - i.SSD1306_Send_StartAndSLAW 0x0000381e Section 0 ssd1306.o(i.SSD1306_Send_StartAndSLAW) - i.SSD1306_UpdateScreen 0x0000384c Section 0 ssd1306.o(i.SSD1306_UpdateScreen) - i.SW_Timer_Callback_Process 0x000038dc Section 0 sw_timer.o(i.SW_Timer_Callback_Process) - i.SW_Timer_Callback_Register 0x00003984 Section 0 sw_timer.o(i.SW_Timer_Callback_Register) - i.SYS_ClockDisable 0x000039ec Section 0 mxc_sys.o(i.SYS_ClockDisable) - i.SYS_ClockEnable 0x00003a16 Section 0 mxc_sys.o(i.SYS_ClockEnable) - i.SYS_Clock_Select 0x00003a40 Section 0 mxc_sys.o(i.SYS_Clock_Select) - i.SYS_Clock_Timeout 0x00003c74 Section 0 mxc_sys.o(i.SYS_Clock_Timeout) - SYS_Clock_Timeout 0x00003c75 Thumb Code 46 mxc_sys.o(i.SYS_Clock_Timeout) - i.SYS_I2C_GetFreq 0x00003ca4 Section 0 mxc_sys.o(i.SYS_I2C_GetFreq) - i.SYS_I2C_Init 0x00003cb4 Section 0 mxc_sys.o(i.SYS_I2C_Init) - i.SYS_I2C_Shutdown 0x00003d00 Section 0 mxc_sys.o(i.SYS_I2C_Shutdown) - i.SYS_TMR_Init 0x00003d74 Section 0 mxc_sys.o(i.SYS_TMR_Init) - i.SYS_UART_Init 0x00003dd0 Section 0 mxc_sys.o(i.SYS_UART_Init) - i.SysTick_Handler 0x00003e6c Section 0 mxc_delay.o(i.SysTick_Handler) - i.SystemCoreClockSet 0x00003e74 Section 0 system_func.o(i.SystemCoreClockSet) - i.SystemCoreClockUpdate 0x00003ec8 Section 0 system_max32660.o(i.SystemCoreClockUpdate) - i.SystemInit 0x00003f2c Section 0 system_max32660.o(i.SystemInit) - i.SystemTimerInitialization 0x00003fc0 Section 0 system_func.o(i.SystemTimerInitialization) - SystemTimerInitialization 0x00003fc1 Thumb Code 124 system_func.o(i.SystemTimerInitialization) - i.SystemTimer_GetPeriodCount 0x00004048 Section 0 system_func.o(i.SystemTimer_GetPeriodCount) - SystemTimer_GetPeriodCount 0x00004049 Thumb Code 20 system_func.o(i.SystemTimer_GetPeriodCount) - i.SystemTimer_Get_TickCount 0x00004060 Section 0 system_func.o(i.SystemTimer_Get_TickCount) - i.SystemTimer_Interrput_Handler 0x0000406c Section 0 system_func.o(i.SystemTimer_Interrput_Handler) - SystemTimer_Interrput_Handler 0x0000406d Thumb Code 20 system_func.o(i.SystemTimer_Interrput_Handler) - i.TMR_Config 0x00004088 Section 0 tmr.o(i.TMR_Config) - i.TMR_Disable 0x000040b2 Section 0 tmr.o(i.TMR_Disable) - i.TMR_Enable 0x000040bc Section 0 tmr.o(i.TMR_Enable) - i.TMR_Init 0x000040c6 Section 0 tmr.o(i.TMR_Init) - i.TMR_IntClear 0x000040f0 Section 0 tmr.o(i.TMR_IntClear) - i.TWI_MT_Send_Data 0x000040f6 Section 0 ssd1306_i2c.o(i.TWI_MT_Send_Data) - i.TWI_MT_Send_SLAW 0x0000410c Section 0 ssd1306_i2c.o(i.TWI_MT_Send_SLAW) - i.TWI_MT_Start 0x00004124 Section 0 ssd1306_i2c.o(i.TWI_MT_Start) - i.TWI_Stop 0x0000412e Section 0 ssd1306_i2c.o(i.TWI_Stop) - i.Test_Process 0x00004136 Section 0 main.o(i.Test_Process) - i.UART_Busy 0x00004138 Section 0 uart.o(i.UART_Busy) - i.UART_ClearFlags 0x00004190 Section 0 uart.o(i.UART_ClearFlags) - i.UART_Handler 0x00004194 Section 0 uart.o(i.UART_Handler) - i.UART_Init 0x000041fc Section 0 uart.o(i.UART_Init) - i.UART_NumReadAvail 0x000042d8 Section 0 uart.o(i.UART_NumReadAvail) - i.UART_NumWriteAvail 0x000042e2 Section 0 uart.o(i.UART_NumWriteAvail) - i.UART_ReadAsync 0x000042f0 Section 0 uart.o(i.UART_ReadAsync) - i.UART_ReadHandler 0x00004394 Section 0 uart.o(i.UART_ReadHandler) - UART_ReadHandler 0x00004395 Thumb Code 202 uart.o(i.UART_ReadHandler) - i.UART_WriteByte 0x00004464 Section 0 uart.o(i.UART_WriteByte) - i.UART_WriteHandler 0x00004474 Section 0 uart.o(i.UART_WriteHandler) - UART_WriteHandler 0x00004475 Thumb Code 130 uart.o(i.UART_WriteHandler) - i.__0fprintf 0x000044fc Section 0 printfa.o(i.__0fprintf) - i.__0vfprintf 0x00004518 Section 0 printfa.o(i.__0vfprintf) - i.__0vsnprintf 0x00004530 Section 0 printfa.o(i.__0vsnprintf) - i.__ARM_fpclassify 0x00004564 Section 0 fpclassify.o(i.__ARM_fpclassify) - i.__aeabi_errno_addr 0x00004594 Section 0 errno.o(i.__aeabi_errno_addr) - i.__hardfp___mathlib_tofloat 0x000045a0 Section 0 narrow.o(i.__hardfp___mathlib_tofloat) - i.__hardfp_pow 0x00004698 Section 0 pow.o(i.__hardfp_pow) - i.__hardfp_strtof 0x000052e8 Section 0 strtof.o(i.__hardfp_strtof) - i.__kernel_poly 0x00005308 Section 0 poly.o(i.__kernel_poly) - i.__mathlib_dbl_divzero 0x00005400 Section 0 dunder.o(i.__mathlib_dbl_divzero) - i.__mathlib_dbl_infnan2 0x00005430 Section 0 dunder.o(i.__mathlib_dbl_infnan2) - i.__mathlib_dbl_invalid 0x00005448 Section 0 dunder.o(i.__mathlib_dbl_invalid) - i.__mathlib_dbl_overflow 0x00005468 Section 0 dunder.o(i.__mathlib_dbl_overflow) - i.__mathlib_dbl_underflow 0x00005488 Section 0 dunder.o(i.__mathlib_dbl_underflow) - i.__mathlib_narrow 0x000054a8 Section 0 narrow.o(i.__mathlib_narrow) - i.__scatterload_copy 0x000054ba Section 14 handlers.o(i.__scatterload_copy) - i.__scatterload_null 0x000054c8 Section 2 handlers.o(i.__scatterload_null) - i.__scatterload_zeroinit 0x000054ca Section 14 handlers.o(i.__scatterload_zeroinit) - i.__set_errno 0x000054d8 Section 0 errno.o(i.__set_errno) - i._fp_digits 0x000054e4 Section 0 printfa.o(i._fp_digits) - _fp_digits 0x000054e5 Thumb Code 366 printfa.o(i._fp_digits) - i._is_digit 0x00005668 Section 0 scanf_fp.o(i._is_digit) - i._printf_core 0x00005678 Section 0 printfa.o(i._printf_core) - _printf_core 0x00005679 Thumb Code 1704 printfa.o(i._printf_core) - i._printf_post_padding 0x00005d2c Section 0 printfa.o(i._printf_post_padding) - _printf_post_padding 0x00005d2d Thumb Code 36 printfa.o(i._printf_post_padding) - i._printf_pre_padding 0x00005d50 Section 0 printfa.o(i._printf_pre_padding) - _printf_pre_padding 0x00005d51 Thumb Code 46 printfa.o(i._printf_pre_padding) - i._snputc 0x00005d7e Section 0 printfa.o(i._snputc) - _snputc 0x00005d7f Thumb Code 22 printfa.o(i._snputc) - i.cliAdd 0x00005d94 Section 0 app_cli.o(i.cliAdd) - i.cliArgsGetData 0x00005df8 Section 0 app_cli.o(i.cliArgsGetData) - cliArgsGetData 0x00005df9 Thumb Code 44 app_cli.o(i.cliArgsGetData) - i.cliArgsGetFloat 0x00005e28 Section 0 app_cli.o(i.cliArgsGetFloat) - cliArgsGetFloat 0x00005e29 Thumb Code 62 app_cli.o(i.cliArgsGetFloat) - i.cliArgsGetStr 0x00005e70 Section 0 app_cli.o(i.cliArgsGetStr) - cliArgsGetStr 0x00005e71 Thumb Code 32 app_cli.o(i.cliArgsGetStr) - i.cliArgsIsStr 0x00005e94 Section 0 app_cli.o(i.cliArgsIsStr) - cliArgsIsStr 0x00005e95 Thumb Code 50 app_cli.o(i.cliArgsIsStr) - i.cliInit 0x00005ecc Section 0 app_cli.o(i.cliInit) - i.cliLineAdd 0x00005f44 Section 0 app_cli.o(i.cliLineAdd) - cliLineAdd 0x00005f45 Thumb Code 88 app_cli.o(i.cliLineAdd) - i.cliLineChange 0x00005f9c Section 0 app_cli.o(i.cliLineChange) - cliLineChange 0x00005f9d Thumb Code 178 app_cli.o(i.cliLineChange) - i.cliLineClean 0x00006060 Section 0 app_cli.o(i.cliLineClean) - cliLineClean 0x00006061 Thumb Code 24 app_cli.o(i.cliLineClean) - i.cliMain 0x00006078 Section 0 app_cli.o(i.cliMain) - i.cliMemoryDump 0x00006094 Section 0 app_cli.o(i.cliMemoryDump) - i.cliParseArgs 0x000061b4 Section 0 app_cli.o(i.cliParseArgs) - cliParseArgs 0x000061b5 Thumb Code 92 app_cli.o(i.cliParseArgs) - i.cliPrintf 0x00006214 Section 0 app_cli.o(i.cliPrintf) - i.cliRunCmd 0x00006248 Section 0 app_cli.o(i.cliRunCmd) - cliRunCmd 0x00006249 Thumb Code 112 app_cli.o(i.cliRunCmd) - i.cliShowList 0x000062bc Section 0 app_cli.o(i.cliShowList) - i.cliShowPrompt 0x00006344 Section 0 app_cli.o(i.cliShowPrompt) - cliShowPrompt 0x00006345 Thumb Code 18 app_cli.o(i.cliShowPrompt) - i.cliToUpper 0x00006364 Section 0 app_cli.o(i.cliToUpper) - cliToUpper 0x00006365 Thumb Code 52 app_cli.o(i.cliToUpper) - i.cliUpdate 0x00006398 Section 0 app_cli.o(i.cliUpdate) - cliUpdate 0x00006399 Thumb Code 802 app_cli.o(i.cliUpdate) - i.fabs 0x000066e8 Section 0 fabs.o(i.fabs) - i.fputc 0x00006700 Section 0 app_uart.o(i.fputc) - i.frexp 0x00006718 Section 0 frexp.o(i.frexp) - i.main 0x000067a4 Section 0 main.o(i.main) - i.mxc_delay 0x00006808 Section 0 mxc_delay.o(i.mxc_delay) - i.mxc_delay_check 0x00006888 Section 0 mxc_delay.o(i.mxc_delay_check) - i.mxc_delay_handler 0x000068dc Section 0 mxc_delay.o(i.mxc_delay_handler) - i.mxc_delay_init 0x00006934 Section 0 mxc_delay.o(i.mxc_delay_init) - mxc_delay_init 0x00006935 Thumb Code 154 mxc_delay.o(i.mxc_delay_init) - i.mxc_delay_start 0x000069e8 Section 0 mxc_delay.o(i.mxc_delay_start) - i.mxc_delay_stop 0x00006a34 Section 0 mxc_delay.o(i.mxc_delay_stop) - i.mxc_free_lock 0x00006a50 Section 0 mxc_lock.o(i.mxc_free_lock) - i.mxc_get_lock 0x00006a5a Section 0 mxc_lock.o(i.mxc_get_lock) - i.reverse_bits 0x00006a7a Section 0 ssd1306.o(i.reverse_bits) - reverse_bits 0x00006a7b Thumb Code 38 ssd1306.o(i.reverse_bits) - i.sqrt 0x00006aa0 Section 0 sqrt.o(i.sqrt) - i.uartPrintf 0x00006b0e Section 0 app_cli.o(i.uartPrintf) - uartPrintf 0x00006b0f Thumb Code 48 app_cli.o(i.uartPrintf) - i.uartWrite 0x00006b3e Section 0 app_cli.o(i.uartWrite) - uartWrite 0x00006b3f Thumb Code 18 app_cli.o(i.uartWrite) - .constdata 0x00006b50 Section 13 app_oled.o(.constdata) - __FUNCTION__ 0x00006b50 Data 13 app_oled.o(.constdata) - .constdata 0x00006b60 Section 192 mxc_pins.o(.constdata) - .constdata 0x00006c20 Section 570 ssd1306.o(.constdata) - .constdata 0x00006e5a Section 320 ak9757w.o(.constdata) - __FUNCTION__ 0x00006e9b Data 16 ak9757w.o(.constdata) - __FUNCTION__ 0x00006eab Data 26 ak9757w.o(.constdata) - __FUNCTION__ 0x00006ec5 Data 17 ak9757w.o(.constdata) - __FUNCTION__ 0x00006ed6 Data 30 ak9757w.o(.constdata) - __FUNCTION__ 0x00006ef4 Data 31 ak9757w.o(.constdata) - __FUNCTION__ 0x00006f13 Data 31 ak9757w.o(.constdata) - __FUNCTION__ 0x00006f32 Data 31 ak9757w.o(.constdata) - __FUNCTION__ 0x00006f51 Data 31 ak9757w.o(.constdata) - __FUNCTION__ 0x00006f70 Data 21 ak9757w.o(.constdata) - __FUNCTION__ 0x00006f85 Data 21 ak9757w.o(.constdata) - .constdata 0x00006f9a Section 512 background.o(.constdata) - .constdata 0x0000719a Section 1056 number.o(.constdata) - .constdata 0x000075ba Section 512 cammsys_log.o(.constdata) - .constdata 0x000077c0 Section 136 pow.o(.constdata) - bp 0x000077c0 Data 16 pow.o(.constdata) - dp_h 0x000077d0 Data 16 pow.o(.constdata) - dp_l 0x000077e0 Data 16 pow.o(.constdata) - L 0x000077f0 Data 48 pow.o(.constdata) - P 0x00007820 Data 40 pow.o(.constdata) - .constdata 0x00007848 Section 8 qnan.o(.constdata) - .constdata 0x00007850 Section 129 ctype_o.o(.constdata) - .constdata 0x000078d4 Section 4 ctype_o.o(.constdata) - table 0x000078d4 Data 4 ctype_o.o(.constdata) - .conststring 0x000078d8 Section 7 app_cli.o(.conststring) + .flashprog 0x00000134 Section 0 flc.o(.flashprog) + prepare_flc 0x0000013f Thumb Code 70 flc.o(.flashprog) + .text 0x0000061c Section 40 startup_max32660.o(.text) + $v0 0x0000061c Number 0 startup_max32660.o(.text) + .text 0x00000644 Section 0 uldiv.o(.text) + .text 0x000006a6 Section 0 memcpya.o(.text) + .text 0x000006ca Section 0 memseta.o(.text) + .text 0x000006ee Section 0 strcmp.o(.text) + .text 0x0000070a Section 0 strcpy.o(.text) + .text 0x0000071c Section 0 strtok_r.o(.text) + .text 0x00000760 Section 0 strtoul.o(.text) + .text 0x000007d2 Section 0 dadd.o(.text) + .text 0x00000920 Section 0 dmul.o(.text) + .text 0x00000a04 Section 0 ddiv.o(.text) + .text 0x00000ae2 Section 0 dflti.o(.text) + .text 0x00000b04 Section 0 dfltui.o(.text) + .text 0x00000b1e Section 0 dfixui.o(.text) + .text 0x00000b50 Section 0 f2d.o(.text) + .text 0x00000b76 Section 0 d2f.o(.text) + .text 0x00000bb0 Section 36 init.o(.text) + .text 0x00000bd4 Section 0 uidiv.o(.text) + .text 0x00000c00 Section 0 llshl.o(.text) + .text 0x00000c1e Section 0 llushr.o(.text) + .text 0x00000c3e Section 0 llsshr.o(.text) + .text 0x00000c64 Section 0 ctype_o.o(.text) + .text 0x00000c6c Section 0 isspace_o.o(.text) + .text 0x00000c7e Section 0 _strtoul.o(.text) + .text 0x00000d1c Section 0 strtof.o(.text) + .text 0x00000d36 Section 0 iusefp.o(.text) + .text 0x00000d36 Section 0 fepilogue.o(.text) + .text 0x00000da4 Section 0 depilogue.o(.text) + .text 0x00000e5e Section 0 dscalb.o(.text) + .text 0x00000e8c Section 0 dfixul.o(.text) + .text 0x00000ebc Section 48 cdrcmple.o(.text) + .text 0x00000eec Section 0 _chval.o(.text) + .text 0x00000f08 Section 0 strtod.o(.text) + _local_sscanf 0x00000f09 Thumb Code 54 strtod.o(.text) + .text 0x00000fa4 Section 0 dsqrt.o(.text) + .text 0x00001048 Section 48 cdcmple.o(.text) + .text 0x00001078 Section 0 scanf_fp.o(.text) + _fp_value 0x00001079 Thumb Code 296 scanf_fp.o(.text) + .text 0x000013d8 Section 0 _sgetc.o(.text) + .text 0x00001418 Section 0 fpstat.o(.text) + .text 0x0000141c Section 0 dfltul.o(.text) + i.$Sub$$__main_after_scatterload 0x00001434 Section 0 system_max32660.o(i.$Sub$$__main_after_scatterload) + i.AK9757W_12BitTo16Bit 0x00001440 Section 0 ak9757w.o(i.AK9757W_12BitTo16Bit) + AK9757W_12BitTo16Bit 0x00001441 Thumb Code 26 ak9757w.o(i.AK9757W_12BitTo16Bit) + i.AK9757W_14BitTo16Bit 0x0000145a Section 0 ak9757w.o(i.AK9757W_14BitTo16Bit) + AK9757W_14BitTo16Bit 0x0000145b Thumb Code 26 ak9757w.o(i.AK9757W_14BitTo16Bit) + i.AK9757W_Calc_Parameter 0x00001474 Section 0 ak9757w.o(i.AK9757W_Calc_Parameter) + AK9757W_Calc_Parameter 0x00001475 Thumb Code 1688 ak9757w.o(i.AK9757W_Calc_Parameter) + i.AK9757W_Check_CompanyCode 0x00001b10 Section 0 ak9757w.o(i.AK9757W_Check_CompanyCode) + AK9757W_Check_CompanyCode 0x00001b11 Thumb Code 150 ak9757w.o(i.AK9757W_Check_CompanyCode) + i.AK9757W_DeleteParameter 0x00001c00 Section 0 ak9757w.o(i.AK9757W_DeleteParameter) + i.AK9757W_DispalyParameter 0x00001c24 Section 0 ak9757w.o(i.AK9757W_DispalyParameter) + i.AK9757W_GetID 0x00001cc4 Section 0 ak9757w.o(i.AK9757W_GetID) + i.AK9757W_Get_SensorID 0x00001cd0 Section 0 ak9757w.o(i.AK9757W_Get_SensorID) + i.AK9757W_Get_Tout 0x00001d68 Section 0 ak9757w.o(i.AK9757W_Get_Tout) + AK9757W_Get_Tout 0x00001d69 Thumb Code 76 ak9757w.o(i.AK9757W_Get_Tout) + i.AK9757W_Initialization 0x00001dc4 Section 0 ak9757w.o(i.AK9757W_Initialization) + i.AK9757W_Next_Step 0x00001df8 Section 0 ak9757w.o(i.AK9757W_Next_Step) + AK9757W_Next_Step 0x00001df9 Thumb Code 20 ak9757w.o(i.AK9757W_Next_Step) + i.AK9757W_Process 0x00001e10 Section 0 ak9757w.o(i.AK9757W_Process) + AK9757W_Process 0x00001e11 Thumb Code 496 ak9757w.o(i.AK9757W_Process) + i.AK9757W_ReadReg 0x00002028 Section 0 ak9757w.o(i.AK9757W_ReadReg) + i.AK9757W_Read_RawData 0x00002060 Section 0 ak9757w.o(i.AK9757W_Read_RawData) + AK9757W_Read_RawData 0x00002061 Thumb Code 406 ak9757w.o(i.AK9757W_Read_RawData) + i.AK9757W_SaveParameter 0x0000226c Section 0 ak9757w.o(i.AK9757W_SaveParameter) + i.AK9757W_Set_CNTL1_9_Parameter 0x00002324 Section 0 ak9757w.o(i.AK9757W_Set_CNTL1_9_Parameter) + AK9757W_Set_CNTL1_9_Parameter 0x00002325 Thumb Code 60 ak9757w.o(i.AK9757W_Set_CNTL1_9_Parameter) + i.AK9757W_Set_FCOEF4_0_Parameter 0x00002388 Section 0 ak9757w.o(i.AK9757W_Set_FCOEF4_0_Parameter) + AK9757W_Set_FCOEF4_0_Parameter 0x00002389 Thumb Code 70 ak9757w.o(i.AK9757W_Set_FCOEF4_0_Parameter) + i.AK9757W_Set_GCOEF4_0_Parameter 0x0000241c Section 0 ak9757w.o(i.AK9757W_Set_GCOEF4_0_Parameter) + AK9757W_Set_GCOEF4_0_Parameter 0x0000241d Thumb Code 70 ak9757w.o(i.AK9757W_Set_GCOEF4_0_Parameter) + i.AK9757W_Set_IR_TS_IT_Parameter 0x000024b0 Section 0 ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) + AK9757W_Set_IR_TS_IT_Parameter 0x000024b1 Thumb Code 216 ak9757w.o(i.AK9757W_Set_IR_TS_IT_Parameter) + i.AK9757W_Set_Mode 0x000025f4 Section 0 ak9757w.o(i.AK9757W_Set_Mode) + i.AK9757W_Set_XCOEF4_0_Parameter 0x000026dc Section 0 ak9757w.o(i.AK9757W_Set_XCOEF4_0_Parameter) + AK9757W_Set_XCOEF4_0_Parameter 0x000026dd Thumb Code 70 ak9757w.o(i.AK9757W_Set_XCOEF4_0_Parameter) + i.AK9757W_Start_Stop 0x00002770 Section 0 ak9757w.o(i.AK9757W_Start_Stop) + i.AK9757W_UpdateTime 0x000027b0 Section 0 ak9757w.o(i.AK9757W_UpdateTime) + i.AK9757W_WriteReg 0x000027d4 Section 0 ak9757w.o(i.AK9757W_WriteReg) + i.App_CLI_Initialization 0x0000280c Section 0 app_cli.o(i.App_CLI_Initialization) + i.App_Gpio_I2C_Delay 0x00002824 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Delay) + App_Gpio_I2C_Delay 0x00002825 Thumb Code 18 app_gpio_i2c.o(i.App_Gpio_I2C_Delay) + i.App_Gpio_I2C_Initialization 0x0000283c Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Initialization) + i.App_Gpio_I2C_Port_H 0x00002880 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_H) + App_Gpio_I2C_Port_H 0x00002881 Thumb Code 14 app_gpio_i2c.o(i.App_Gpio_I2C_Port_H) + i.App_Gpio_I2C_Port_Input 0x00002894 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Input) + App_Gpio_I2C_Port_Input 0x00002895 Thumb Code 28 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Input) + i.App_Gpio_I2C_Port_L 0x000028b0 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_L) + App_Gpio_I2C_Port_L 0x000028b1 Thumb Code 14 app_gpio_i2c.o(i.App_Gpio_I2C_Port_L) + i.App_Gpio_I2C_Port_Output 0x000028c4 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Output) + App_Gpio_I2C_Port_Output 0x000028c5 Thumb Code 30 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Output) + i.App_Gpio_I2C_Port_Read 0x000028e4 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Read) + App_Gpio_I2C_Port_Read 0x000028e5 Thumb Code 26 app_gpio_i2c.o(i.App_Gpio_I2C_Port_Read) + i.App_Gpio_I2C_Start 0x00002904 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Start) + i.App_Gpio_I2C_Stop 0x00002938 Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_Stop) + i.App_Gpio_I2C_WriteData 0x0000296c Section 0 app_gpio_i2c.o(i.App_Gpio_I2C_WriteData) + i.App_Led_Initialization 0x000029f0 Section 0 app_gpio_led.o(i.App_Led_Initialization) + i.App_Led_Off 0x00002a4c Section 0 app_gpio_led.o(i.App_Led_Off) + App_Led_Off 0x00002a4d Thumb Code 30 app_gpio_led.o(i.App_Led_Off) + i.App_Led_On 0x00002a74 Section 0 app_gpio_led.o(i.App_Led_On) + App_Led_On 0x00002a75 Thumb Code 30 app_gpio_led.o(i.App_Led_On) + i.App_Led_OutputSet 0x00002a9c Section 0 app_gpio_led.o(i.App_Led_OutputSet) + i.App_Led_Output_Process 0x00002ae0 Section 0 app_gpio_led.o(i.App_Led_Output_Process) + App_Led_Output_Process 0x00002ae1 Thumb Code 124 app_gpio_led.o(i.App_Led_Output_Process) + i.App_Log_Prinf 0x00002b60 Section 0 app_log.o(i.App_Log_Prinf) + i.App_Uart_Data_Transmit_Check 0x00002bac Section 0 app_uart.o(i.App_Uart_Data_Transmit_Check) + App_Uart_Data_Transmit_Check 0x00002bad Thumb Code 48 app_uart.o(i.App_Uart_Data_Transmit_Check) + i.App_Uart_Get_Recv_Data 0x00002be4 Section 0 app_uart.o(i.App_Uart_Get_Recv_Data) + i.App_Uart_Initialization 0x00002c04 Section 0 app_uart.o(i.App_Uart_Initialization) + i.App_Uart_Interrupt_Handler 0x00002cf0 Section 0 app_uart.o(i.App_Uart_Interrupt_Handler) + App_Uart_Interrupt_Handler 0x00002cf1 Thumb Code 10 app_uart.o(i.App_Uart_Interrupt_Handler) + i.App_Uart_Read_Callback 0x00002d00 Section 0 app_uart.o(i.App_Uart_Read_Callback) + App_Uart_Read_Callback 0x00002d01 Thumb Code 22 app_uart.o(i.App_Uart_Read_Callback) + i.App_Uart_Read_Callback_Initialization 0x00002d20 Section 0 app_uart.o(i.App_Uart_Read_Callback_Initialization) + App_Uart_Read_Callback_Initialization 0x00002d21 Thumb Code 24 app_uart.o(i.App_Uart_Read_Callback_Initialization) + i.App_Uart_Transmit 0x00002d48 Section 0 app_uart.o(i.App_Uart_Transmit) + i.App_Uart_Transmit_Len 0x00002d5c Section 0 app_uart.o(i.App_Uart_Transmit_Len) + i.Board_Init 0x00002d76 Section 0 system_max32660.o(i.Board_Init) + i.EE_FindValidPage 0x00002d7a Section 0 eeprom.o(i.EE_FindValidPage) + EE_FindValidPage 0x00002d7b Thumb Code 80 eeprom.o(i.EE_FindValidPage) + i.EE_Format 0x00002dca Section 0 eeprom.o(i.EE_Format) + EE_Format 0x00002dcb Thumb Code 76 eeprom.o(i.EE_Format) + i.EE_Init 0x00002e18 Section 0 eeprom.o(i.EE_Init) + i.EE_PageTransfer 0x0000301c Section 0 eeprom.o(i.EE_PageTransfer) + EE_PageTransfer 0x0000301d Thumb Code 192 eeprom.o(i.EE_PageTransfer) + i.EE_ReadVariable 0x000030e0 Section 0 eeprom.o(i.EE_ReadVariable) + i.EE_Transfer_ReadVariable 0x00003148 Section 0 eeprom.o(i.EE_Transfer_ReadVariable) + EE_Transfer_ReadVariable 0x00003149 Thumb Code 74 eeprom.o(i.EE_Transfer_ReadVariable) + i.EE_Transfer_Write_Variable 0x00003192 Section 0 eeprom.o(i.EE_Transfer_Write_Variable) + EE_Transfer_Write_Variable 0x00003193 Thumb Code 64 eeprom.o(i.EE_Transfer_Write_Variable) + i.EE_VerifyPageFullWriteVariable 0x000031d4 Section 0 eeprom.o(i.EE_VerifyPageFullWriteVariable) + EE_VerifyPageFullWriteVariable 0x000031d5 Thumb Code 96 eeprom.o(i.EE_VerifyPageFullWriteVariable) + i.EE_VerifyPageFullyErased 0x00003238 Section 0 eeprom.o(i.EE_VerifyPageFullyErased) + EE_VerifyPageFullyErased 0x00003239 Thumb Code 52 eeprom.o(i.EE_VerifyPageFullyErased) + i.EE_WriteData 0x00003274 Section 0 eeprom.o(i.EE_WriteData) + EE_WriteData 0x00003275 Thumb Code 20 eeprom.o(i.EE_WriteData) + i.EE_WriteVariable 0x00003288 Section 0 eeprom.o(i.EE_WriteVariable) + i.Eeprom_Get_Parameter 0x000032ac Section 0 eeprom_address.o(i.Eeprom_Get_Parameter) + i.Eeprom_Initialization 0x000032d2 Section 0 eeprom_address.o(i.Eeprom_Initialization) + i.Eeprom_Save_Parameter 0x000032da Section 0 eeprom_address.o(i.Eeprom_Save_Parameter) + i.Flash_Initialization 0x000032fa Section 0 cammsys_flash.o(i.Flash_Initialization) + i.Flash_Write 0x00003308 Section 0 cammsys_flash.o(i.Flash_Write) + i.GPIO0_IRQHandler 0x00003334 Section 0 app_gpio.o(i.GPIO0_IRQHandler) + i.GPIO_Config 0x00003340 Section 0 gpio.o(i.GPIO_Config) + i.GPIO_Handler 0x00003438 Section 0 gpio.o(i.GPIO_Handler) + i.Gpio_Output_Clear 0x0000349c Section 0 app_gpio.o(i.Gpio_Output_Clear) + i.Gpio_Output_Set 0x000034b0 Section 0 app_gpio.o(i.Gpio_Output_Set) + i.Gpio_Port_Initialization 0x000034c4 Section 0 app_gpio.o(i.Gpio_Port_Initialization) + i.Gpio_Set_Port_Output 0x000034ce Section 0 app_gpio.o(i.Gpio_Set_Port_Output) + i.I2C_FreeCallback 0x000034ec Section 0 i2c.o(i.I2C_FreeCallback) + I2C_FreeCallback 0x000034ed Thumb Code 36 i2c.o(i.I2C_FreeCallback) + i.I2C_Handler 0x00003514 Section 0 i2c.o(i.I2C_Handler) + i.I2C_Init 0x0000353c Section 0 i2c.o(i.I2C_Init) + i.I2C_MasterHandler 0x000036bc Section 0 i2c.o(i.I2C_MasterHandler) + I2C_MasterHandler 0x000036bd Thumb Code 526 i2c.o(i.I2C_MasterHandler) + i.I2C_MasterRead 0x000038d8 Section 0 i2c.o(i.I2C_MasterRead) + i.I2C_MasterWrite 0x000039bc Section 0 i2c.o(i.I2C_MasterWrite) + i.I2C_Master_Handler 0x00003ab0 Section 0 app_i2c_master.o(i.I2C_Master_Handler) + I2C_Master_Handler 0x00003ab1 Thumb Code 12 app_i2c_master.o(i.I2C_Master_Handler) + i.I2C_Master_Initialization 0x00003ac0 Section 0 app_i2c_master.o(i.I2C_Master_Initialization) + i.I2C_Master_Read 0x00003b58 Section 0 app_i2c_master.o(i.I2C_Master_Read) + i.I2C_Master_Write 0x00003ba4 Section 0 app_i2c_master.o(i.I2C_Master_Write) + i.I2C_Master_WriteRead 0x00003bf4 Section 0 app_i2c_master.o(i.I2C_Master_WriteRead) + i.I2C_Recover 0x00003c74 Section 0 i2c.o(i.I2C_Recover) + I2C_Recover 0x00003c75 Thumb Code 24 i2c.o(i.I2C_Recover) + i.I2C_SetTimeout 0x00003c8c Section 0 i2c.o(i.I2C_SetTimeout) + i.I2C_Setspeed 0x00003cbc Section 0 i2c.o(i.I2C_Setspeed) + I2C_Setspeed 0x00003cbd Thumb Code 234 i2c.o(i.I2C_Setspeed) + i.I2C_Shutdown 0x00003db4 Section 0 i2c.o(i.I2C_Shutdown) + i.I2C_SlaveHandler 0x00003e2c Section 0 i2c.o(i.I2C_SlaveHandler) + I2C_SlaveHandler 0x00003e2d Thumb Code 526 i2c.o(i.I2C_SlaveHandler) + i.ICC_Enable 0x00004048 Section 0 icc.o(i.ICC_Enable) + i.ICC_Ready 0x00004078 Section 0 icc.o(i.ICC_Ready) + ICC_Ready 0x00004079 Thumb Code 10 icc.o(i.ICC_Ready) + i.LP_SetOperatingVoltage 0x00004088 Section 0 lp.o(i.LP_SetOperatingVoltage) + i.NVIC_ClearPendingIRQ 0x00004178 Section 0 app_i2c_master.o(i.NVIC_ClearPendingIRQ) + NVIC_ClearPendingIRQ 0x00004179 Thumb Code 18 app_i2c_master.o(i.NVIC_ClearPendingIRQ) + i.NVIC_ClearPendingIRQ 0x00004190 Section 0 app_uart.o(i.NVIC_ClearPendingIRQ) + NVIC_ClearPendingIRQ 0x00004191 Thumb Code 18 app_uart.o(i.NVIC_ClearPendingIRQ) + i.NVIC_DisableIRQ 0x000041a8 Section 0 app_i2c_master.o(i.NVIC_DisableIRQ) + NVIC_DisableIRQ 0x000041a9 Thumb Code 18 app_i2c_master.o(i.NVIC_DisableIRQ) + i.NVIC_DisableIRQ 0x000041c0 Section 0 app_uart.o(i.NVIC_DisableIRQ) + NVIC_DisableIRQ 0x000041c1 Thumb Code 18 app_uart.o(i.NVIC_DisableIRQ) + i.NVIC_EnableIRQ 0x000041d8 Section 0 system_func.o(i.NVIC_EnableIRQ) + NVIC_EnableIRQ 0x000041d9 Thumb Code 22 system_func.o(i.NVIC_EnableIRQ) + i.NVIC_EnableIRQ 0x000041ee Section 0 app_i2c_master.o(i.NVIC_EnableIRQ) + NVIC_EnableIRQ 0x000041ef Thumb Code 22 app_i2c_master.o(i.NVIC_EnableIRQ) + i.NVIC_EnableIRQ 0x00004204 Section 0 app_uart.o(i.NVIC_EnableIRQ) + NVIC_EnableIRQ 0x00004205 Thumb Code 22 app_uart.o(i.NVIC_EnableIRQ) + i.NVIC_SetRAM 0x0000421c Section 0 nvic_table.o(i.NVIC_SetRAM) + i.NVIC_SetVector 0x00004240 Section 0 nvic_table.o(i.NVIC_SetVector) + i.Oled_Initialization 0x00004280 Section 0 app_oled.o(i.Oled_Initialization) + i.Oled_Next_Step 0x000042a8 Section 0 app_oled.o(i.Oled_Next_Step) + Oled_Next_Step 0x000042a9 Thumb Code 14 app_oled.o(i.Oled_Next_Step) + i.Oled_Process 0x000042c0 Section 0 app_oled.o(i.Oled_Process) + Oled_Process 0x000042c1 Thumb Code 464 app_oled.o(i.Oled_Process) + i.Oled_SetTemperature 0x000044c4 Section 0 app_oled.o(i.Oled_SetTemperature) + i.PreInit 0x000044f0 Section 0 system_max32660.o(i.PreInit) + i.RingBuffer_Dequeue 0x000044f4 Section 0 app_ring_buffer.o(i.RingBuffer_Dequeue) + i.RingBuffer_Enqueue 0x00004534 Section 0 app_ring_buffer.o(i.RingBuffer_Enqueue) + i.RingBuffer_GetData 0x00004576 Section 0 app_ring_buffer.o(i.RingBuffer_GetData) + i.RingBuffer_Get_DataSize 0x00004584 Section 0 app_ring_buffer.o(i.RingBuffer_Get_DataSize) + i.RingBuffer_Initialization 0x000045b4 Section 0 app_ring_buffer.o(i.RingBuffer_Initialization) + i.RingBuffer_PopData 0x000045d4 Section 0 app_ring_buffer.o(i.RingBuffer_PopData) + i.RingBuffer_isEmpty 0x000045fc Section 0 app_ring_buffer.o(i.RingBuffer_isEmpty) + i.RingBuffer_isFull 0x0000460c Section 0 app_ring_buffer.o(i.RingBuffer_isFull) + i.SSD1306_ClearScreen 0x00004630 Section 0 ssd1306.o(i.SSD1306_ClearScreen) + i.SSD1306_DrawBackGround 0x00004644 Section 0 ssd1306.o(i.SSD1306_DrawBackGround) + i.SSD1306_DrawBackGround_LeftShift 0x00004660 Section 0 ssd1306.o(i.SSD1306_DrawBackGround_LeftShift) + i.SSD1306_DrawBackGround_Log 0x000046ac Section 0 ssd1306.o(i.SSD1306_DrawBackGround_Log) + i.SSD1306_Draw_Temperature 0x000046c8 Section 0 ssd1306.o(i.SSD1306_Draw_Temperature) + i.SSD1306_Init 0x0000492c Section 0 ssd1306.o(i.SSD1306_Init) + i.SSD1306_InverseScreen 0x0000499c Section 0 ssd1306.o(i.SSD1306_InverseScreen) + i.SSD1306_NormalScreen 0x000049ce Section 0 ssd1306.o(i.SSD1306_NormalScreen) + i.SSD1306_Send_Command 0x00004a00 Section 0 ssd1306.o(i.SSD1306_Send_Command) + i.SSD1306_Send_StartAndSLAW 0x00004a2e Section 0 ssd1306.o(i.SSD1306_Send_StartAndSLAW) + i.SSD1306_UpdateScreen 0x00004a5c Section 0 ssd1306.o(i.SSD1306_UpdateScreen) + i.SW_Timer_Callback_Process 0x00004aec Section 0 sw_timer.o(i.SW_Timer_Callback_Process) + i.SW_Timer_Callback_Register 0x00004b94 Section 0 sw_timer.o(i.SW_Timer_Callback_Register) + i.SYS_ClockDisable 0x00004bfc Section 0 mxc_sys.o(i.SYS_ClockDisable) + i.SYS_ClockEnable 0x00004c26 Section 0 mxc_sys.o(i.SYS_ClockEnable) + i.SYS_Clock_Select 0x00004c50 Section 0 mxc_sys.o(i.SYS_Clock_Select) + i.SYS_Clock_Timeout 0x00004e84 Section 0 mxc_sys.o(i.SYS_Clock_Timeout) + SYS_Clock_Timeout 0x00004e85 Thumb Code 46 mxc_sys.o(i.SYS_Clock_Timeout) + i.SYS_FLC_Init 0x00004eb2 Section 0 mxc_sys.o(i.SYS_FLC_Init) + i.SYS_Flash_Operation 0x00004eb8 Section 0 mxc_sys.o(i.SYS_Flash_Operation) + i.SYS_I2C_GetFreq 0x00004ef0 Section 0 mxc_sys.o(i.SYS_I2C_GetFreq) + i.SYS_I2C_Init 0x00004f00 Section 0 mxc_sys.o(i.SYS_I2C_Init) + i.SYS_I2C_Shutdown 0x00004f4c Section 0 mxc_sys.o(i.SYS_I2C_Shutdown) + i.SYS_TMR_Init 0x00004fc0 Section 0 mxc_sys.o(i.SYS_TMR_Init) + i.SYS_UART_Init 0x0000501c Section 0 mxc_sys.o(i.SYS_UART_Init) + i.SysTick_Handler 0x000050b8 Section 0 mxc_delay.o(i.SysTick_Handler) + i.SystemCoreClockSet 0x000050c0 Section 0 system_func.o(i.SystemCoreClockSet) + i.SystemCoreClockUpdate 0x00005114 Section 0 system_max32660.o(i.SystemCoreClockUpdate) + i.SystemInit 0x00005178 Section 0 system_max32660.o(i.SystemInit) + i.SystemTimerInitialization 0x0000520c Section 0 system_func.o(i.SystemTimerInitialization) + SystemTimerInitialization 0x0000520d Thumb Code 124 system_func.o(i.SystemTimerInitialization) + i.SystemTimer_GetPeriodCount 0x00005294 Section 0 system_func.o(i.SystemTimer_GetPeriodCount) + SystemTimer_GetPeriodCount 0x00005295 Thumb Code 20 system_func.o(i.SystemTimer_GetPeriodCount) + i.SystemTimer_Get_TickCount 0x000052ac Section 0 system_func.o(i.SystemTimer_Get_TickCount) + i.SystemTimer_Interrput_Handler 0x000052b8 Section 0 system_func.o(i.SystemTimer_Interrput_Handler) + SystemTimer_Interrput_Handler 0x000052b9 Thumb Code 20 system_func.o(i.SystemTimer_Interrput_Handler) + i.TMR_Config 0x000052d4 Section 0 tmr.o(i.TMR_Config) + i.TMR_Disable 0x000052fe Section 0 tmr.o(i.TMR_Disable) + i.TMR_Enable 0x00005308 Section 0 tmr.o(i.TMR_Enable) + i.TMR_Init 0x00005312 Section 0 tmr.o(i.TMR_Init) + i.TMR_IntClear 0x0000533c Section 0 tmr.o(i.TMR_IntClear) + i.TWI_MT_Send_Data 0x00005342 Section 0 ssd1306_i2c.o(i.TWI_MT_Send_Data) + i.TWI_MT_Send_SLAW 0x00005358 Section 0 ssd1306_i2c.o(i.TWI_MT_Send_SLAW) + i.TWI_MT_Start 0x00005370 Section 0 ssd1306_i2c.o(i.TWI_MT_Start) + i.TWI_Stop 0x0000537a Section 0 ssd1306_i2c.o(i.TWI_Stop) + i.Test_Process 0x00005382 Section 0 main.o(i.Test_Process) + i.UART_Busy 0x00005384 Section 0 uart.o(i.UART_Busy) + i.UART_ClearFlags 0x000053dc Section 0 uart.o(i.UART_ClearFlags) + i.UART_Handler 0x000053e0 Section 0 uart.o(i.UART_Handler) + i.UART_Init 0x00005448 Section 0 uart.o(i.UART_Init) + i.UART_NumReadAvail 0x00005524 Section 0 uart.o(i.UART_NumReadAvail) + i.UART_NumWriteAvail 0x0000552e Section 0 uart.o(i.UART_NumWriteAvail) + i.UART_ReadAsync 0x0000553c Section 0 uart.o(i.UART_ReadAsync) + i.UART_ReadHandler 0x000055e0 Section 0 uart.o(i.UART_ReadHandler) + UART_ReadHandler 0x000055e1 Thumb Code 202 uart.o(i.UART_ReadHandler) + i.UART_WriteByte 0x000056b0 Section 0 uart.o(i.UART_WriteByte) + i.UART_WriteHandler 0x000056c0 Section 0 uart.o(i.UART_WriteHandler) + UART_WriteHandler 0x000056c1 Thumb Code 130 uart.o(i.UART_WriteHandler) + i.__0fprintf 0x00005748 Section 0 printfa.o(i.__0fprintf) + i.__0printf 0x00005764 Section 0 printfa.o(i.__0printf) + i.__0vfprintf 0x00005784 Section 0 printfa.o(i.__0vfprintf) + i.__0vsnprintf 0x0000579c Section 0 printfa.o(i.__0vsnprintf) + i.__ARM_fpclassify 0x000057d0 Section 0 fpclassify.o(i.__ARM_fpclassify) + i.__aeabi_errno_addr 0x00005800 Section 0 errno.o(i.__aeabi_errno_addr) + i.__hardfp___mathlib_tofloat 0x00005808 Section 0 narrow.o(i.__hardfp___mathlib_tofloat) + i.__hardfp_pow 0x00005900 Section 0 pow.o(i.__hardfp_pow) + i.__hardfp_strtof 0x00006550 Section 0 strtof.o(i.__hardfp_strtof) + i.__kernel_poly 0x00006570 Section 0 poly.o(i.__kernel_poly) + i.__mathlib_dbl_divzero 0x00006668 Section 0 dunder.o(i.__mathlib_dbl_divzero) + i.__mathlib_dbl_infnan2 0x00006698 Section 0 dunder.o(i.__mathlib_dbl_infnan2) + i.__mathlib_dbl_invalid 0x000066b0 Section 0 dunder.o(i.__mathlib_dbl_invalid) + i.__mathlib_dbl_overflow 0x000066d0 Section 0 dunder.o(i.__mathlib_dbl_overflow) + i.__mathlib_dbl_underflow 0x000066f0 Section 0 dunder.o(i.__mathlib_dbl_underflow) + i.__mathlib_narrow 0x00006710 Section 0 narrow.o(i.__mathlib_narrow) + i.__scatterload_copy 0x00006722 Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x00006730 Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x00006732 Section 14 handlers.o(i.__scatterload_zeroinit) + i.__set_errno 0x00006740 Section 0 errno.o(i.__set_errno) + i._fp_digits 0x0000674c Section 0 printfa.o(i._fp_digits) + _fp_digits 0x0000674d Thumb Code 366 printfa.o(i._fp_digits) + i._is_digit 0x000068d0 Section 0 scanf_fp.o(i._is_digit) + i._printf_core 0x000068e0 Section 0 printfa.o(i._printf_core) + _printf_core 0x000068e1 Thumb Code 1704 printfa.o(i._printf_core) + i._printf_post_padding 0x00006f94 Section 0 printfa.o(i._printf_post_padding) + _printf_post_padding 0x00006f95 Thumb Code 36 printfa.o(i._printf_post_padding) + i._printf_pre_padding 0x00006fb8 Section 0 printfa.o(i._printf_pre_padding) + _printf_pre_padding 0x00006fb9 Thumb Code 46 printfa.o(i._printf_pre_padding) + i._snputc 0x00006fe6 Section 0 printfa.o(i._snputc) + _snputc 0x00006fe7 Thumb Code 22 printfa.o(i._snputc) + i.cliAdd 0x00006ffc Section 0 app_cli.o(i.cliAdd) + i.cliArgsGetData 0x00007060 Section 0 app_cli.o(i.cliArgsGetData) + cliArgsGetData 0x00007061 Thumb Code 44 app_cli.o(i.cliArgsGetData) + i.cliArgsGetFloat 0x00007090 Section 0 app_cli.o(i.cliArgsGetFloat) + cliArgsGetFloat 0x00007091 Thumb Code 62 app_cli.o(i.cliArgsGetFloat) + i.cliArgsGetStr 0x000070d8 Section 0 app_cli.o(i.cliArgsGetStr) + cliArgsGetStr 0x000070d9 Thumb Code 32 app_cli.o(i.cliArgsGetStr) + i.cliArgsIsStr 0x000070fc Section 0 app_cli.o(i.cliArgsIsStr) + cliArgsIsStr 0x000070fd Thumb Code 50 app_cli.o(i.cliArgsIsStr) + i.cliInit 0x00007134 Section 0 app_cli.o(i.cliInit) + i.cliLineAdd 0x000071bc Section 0 app_cli.o(i.cliLineAdd) + cliLineAdd 0x000071bd Thumb Code 88 app_cli.o(i.cliLineAdd) + i.cliLineChange 0x00007214 Section 0 app_cli.o(i.cliLineChange) + cliLineChange 0x00007215 Thumb Code 178 app_cli.o(i.cliLineChange) + i.cliLineClean 0x000072d8 Section 0 app_cli.o(i.cliLineClean) + cliLineClean 0x000072d9 Thumb Code 24 app_cli.o(i.cliLineClean) + i.cliMain 0x000072f0 Section 0 app_cli.o(i.cliMain) + i.cliMemoryDump 0x0000730c Section 0 app_cli.o(i.cliMemoryDump) + i.cliParseArgs 0x0000742c Section 0 app_cli.o(i.cliParseArgs) + cliParseArgs 0x0000742d Thumb Code 92 app_cli.o(i.cliParseArgs) + i.cliPrintf 0x0000748c Section 0 app_cli.o(i.cliPrintf) + i.cliRunCmd 0x000074c0 Section 0 app_cli.o(i.cliRunCmd) + cliRunCmd 0x000074c1 Thumb Code 112 app_cli.o(i.cliRunCmd) + i.cliShowList 0x00007534 Section 0 app_cli.o(i.cliShowList) + i.cliShowPrompt 0x000075bc Section 0 app_cli.o(i.cliShowPrompt) + cliShowPrompt 0x000075bd Thumb Code 18 app_cli.o(i.cliShowPrompt) + i.cliToUpper 0x000075dc Section 0 app_cli.o(i.cliToUpper) + cliToUpper 0x000075dd Thumb Code 52 app_cli.o(i.cliToUpper) + i.cliUpdate 0x00007610 Section 0 app_cli.o(i.cliUpdate) + cliUpdate 0x00007611 Thumb Code 802 app_cli.o(i.cliUpdate) + i.cli_AKM_Cmd 0x00007960 Section 0 app_cli.o(i.cli_AKM_Cmd) + i.fabs 0x00007c60 Section 0 fabs.o(i.fabs) + i.flash_erase_page 0x00007c78 Section 0 cammsys_flash.o(i.flash_erase_page) + i.flash_program_page 0x00007c84 Section 0 cammsys_flash.o(i.flash_program_page) + i.flash_verify 0x00007ccc Section 0 cammsys_flash.o(i.flash_verify) + i.fputc 0x00007cf4 Section 0 app_uart.o(i.fputc) + i.frexp 0x00007d10 Section 0 frexp.o(i.frexp) + i.main 0x00007d9c Section 0 main.o(i.main) + i.mxc_delay 0x00007e04 Section 0 mxc_delay.o(i.mxc_delay) + i.mxc_delay_check 0x00007e84 Section 0 mxc_delay.o(i.mxc_delay_check) + i.mxc_delay_handler 0x00007ed8 Section 0 mxc_delay.o(i.mxc_delay_handler) + i.mxc_delay_init 0x00007f30 Section 0 mxc_delay.o(i.mxc_delay_init) + mxc_delay_init 0x00007f31 Thumb Code 154 mxc_delay.o(i.mxc_delay_init) + i.mxc_delay_start 0x00007fe4 Section 0 mxc_delay.o(i.mxc_delay_start) + i.mxc_delay_stop 0x00008030 Section 0 mxc_delay.o(i.mxc_delay_stop) + i.mxc_free_lock 0x0000804c Section 0 mxc_lock.o(i.mxc_free_lock) + i.mxc_get_lock 0x00008056 Section 0 mxc_lock.o(i.mxc_get_lock) + i.reverse_bits 0x00008076 Section 0 ssd1306.o(i.reverse_bits) + reverse_bits 0x00008077 Thumb Code 38 ssd1306.o(i.reverse_bits) + i.sqrt 0x0000809c Section 0 sqrt.o(i.sqrt) + i.uartPrintf 0x0000810a Section 0 app_cli.o(i.uartPrintf) + uartPrintf 0x0000810b Thumb Code 48 app_cli.o(i.uartPrintf) + i.uartWrite 0x0000813a Section 0 app_cli.o(i.uartWrite) + uartWrite 0x0000813b Thumb Code 18 app_cli.o(i.uartWrite) + .constdata 0x0000814c Section 13 app_oled.o(.constdata) + __FUNCTION__ 0x0000814c Data 13 app_oled.o(.constdata) + .constdata 0x0000815c Section 192 mxc_pins.o(.constdata) + .constdata 0x0000821c Section 570 ssd1306.o(.constdata) + .constdata 0x00008456 Section 320 ak9757w.o(.constdata) + __FUNCTION__ 0x00008497 Data 16 ak9757w.o(.constdata) + __FUNCTION__ 0x000084a7 Data 26 ak9757w.o(.constdata) + __FUNCTION__ 0x000084c1 Data 17 ak9757w.o(.constdata) + __FUNCTION__ 0x000084d2 Data 30 ak9757w.o(.constdata) + __FUNCTION__ 0x000084f0 Data 31 ak9757w.o(.constdata) + __FUNCTION__ 0x0000850f Data 31 ak9757w.o(.constdata) + __FUNCTION__ 0x0000852e Data 31 ak9757w.o(.constdata) + __FUNCTION__ 0x0000854d Data 31 ak9757w.o(.constdata) + __FUNCTION__ 0x0000856c Data 21 ak9757w.o(.constdata) + __FUNCTION__ 0x00008581 Data 21 ak9757w.o(.constdata) + .constdata 0x00008596 Section 512 background.o(.constdata) + .constdata 0x00008796 Section 1056 number.o(.constdata) + .constdata 0x00008bb6 Section 512 cammsys_log.o(.constdata) + .constdata 0x00008db8 Section 136 pow.o(.constdata) + bp 0x00008db8 Data 16 pow.o(.constdata) + dp_h 0x00008dc8 Data 16 pow.o(.constdata) + dp_l 0x00008dd8 Data 16 pow.o(.constdata) + L 0x00008de8 Data 48 pow.o(.constdata) + P 0x00008e18 Data 40 pow.o(.constdata) + .constdata 0x00008e40 Section 8 qnan.o(.constdata) + .constdata 0x00008e48 Section 129 ctype_o.o(.constdata) + .constdata 0x00008ecc Section 4 ctype_o.o(.constdata) + table 0x00008ecc Data 4 ctype_o.o(.constdata) + .conststring 0x00008ed0 Section 7 app_cli.o(.conststring) .data 0x20000000 Section 8 system_func.o(.data) usTickCountDiv 0x20000000 Data 1 system_func.o(.data) msTickCount 0x20000004 Data 4 system_func.o(.data) @@ -2059,32 +2187,35 @@ Image Symbol Table tx_states 0x20000084 Data 8 uart.o(.data) .data 0x2000008c Section 4 ak9757w.o(.data) pHandler 0x2000008c Data 4 ak9757w.o(.data) - .data 0x20000090 Section 4 stderr.o(.data) - .data 0x20000094 Section 4 strtok_r.o(.data) - state 0x20000094 Data 4 strtok_r.o(.data) - .data 0x20000098 Section 4 errno.o(.data) - _errno 0x20000098 Data 4 errno.o(.data) - .bss 0x2000009c Section 200 sw_timer.o(.bss) - SW_Timer_Info 0x2000009c Data 200 sw_timer.o(.bss) - .bss 0x20000164 Section 1208 app_uart.o(.bss) - App_Uart_Read_Req 0x20000164 Data 16 app_uart.o(.bss) - TxBuffer 0x20000174 Data 1024 app_uart.o(.bss) - RxBuffer 0x20000574 Data 128 app_uart.o(.bss) - Tx_RingBuffer 0x200005f4 Data 20 app_uart.o(.bss) - Rx_RingBuffer 0x20000608 Data 20 app_uart.o(.bss) - .bss 0x2000061c Section 1084 app_cli.o(.bss) - .bss 0x20000a58 Section 112 gpio.o(.bss) - callback 0x20000a58 Data 56 gpio.o(.bss) - cbparam 0x20000a90 Data 56 gpio.o(.bss) - .bss 0x20000ac8 Section 16 i2c.o(.bss) - states 0x20000ac8 Data 16 i2c.o(.bss) + .data 0x20000090 Section 2 eeprom.o(.data) + .data 0x20000094 Section 4 stderr.o(.data) + .data 0x20000098 Section 4 strtok_r.o(.data) + state 0x20000098 Data 4 strtok_r.o(.data) + .data 0x2000009c Section 4 stdout.o(.data) + .data 0x200000a0 Section 4 errno.o(.data) + _errno 0x200000a0 Data 4 errno.o(.data) + .bss 0x200000a4 Section 200 sw_timer.o(.bss) + SW_Timer_Info 0x200000a4 Data 200 sw_timer.o(.bss) + .bss 0x2000016c Section 1208 app_uart.o(.bss) + App_Uart_Read_Req 0x2000016c Data 16 app_uart.o(.bss) + TxBuffer 0x2000017c Data 1024 app_uart.o(.bss) + RxBuffer 0x2000057c Data 128 app_uart.o(.bss) + Tx_RingBuffer 0x200005fc Data 20 app_uart.o(.bss) + Rx_RingBuffer 0x20000610 Data 20 app_uart.o(.bss) + .bss 0x20000624 Section 1084 app_cli.o(.bss) + .bss 0x20000a60 Section 112 gpio.o(.bss) + callback 0x20000a60 Data 56 gpio.o(.bss) + cbparam 0x20000a98 Data 56 gpio.o(.bss) + .bss 0x20000ad0 Section 16 i2c.o(.bss) + states 0x20000ad0 Data 16 i2c.o(.bss) .bss 0x20000c00 Section 284 nvic_table.o(.bss) ramVectorTable 0x20000c00 Data 284 nvic_table.o(.bss) .bss 0x20000d1c Section 512 ssd1306.o(.bss) cacheMemLcd 0x20000d1c Data 512 ssd1306.o(.bss) - .bss 0x20000f20 Section 280 ak9757w.o(.bss) + .bss 0x20000f20 Section 306 ak9757w.o(.bss) AK9757W_Handler 0x20000f20 Data 280 ak9757w.o(.bss) - STACK 0x20001038 Section 8192 startup_max32660.o(STACK) + ParameterInfo 0x20001038 Data 26 ak9757w.o(.bss) + STACK 0x20001058 Section 8192 startup_max32660.o(STACK) Global Symbols @@ -2153,309 +2284,348 @@ Image Symbol Table __rt_lib_shutdown_fini 0x0000012d Thumb Code 0 entry12b.o(.ARM.Collect$$$$0000000E) __rt_final_cpp 0x00000131 Thumb Code 0 entry10a.o(.ARM.Collect$$$$0000000F) __rt_final_exit 0x00000131 Thumb Code 0 entry11a.o(.ARM.Collect$$$$00000011) - Reset_Handler 0x00000135 Thumb Code 14 startup_max32660.o(.text) - NMI_Handler 0x00000143 Thumb Code 2 startup_max32660.o(.text) - HardFault_Handler 0x00000145 Thumb Code 2 startup_max32660.o(.text) - MemManage_Handler 0x00000147 Thumb Code 2 startup_max32660.o(.text) - BusFault_Handler 0x00000149 Thumb Code 2 startup_max32660.o(.text) - UsageFault_Handler 0x0000014b Thumb Code 2 startup_max32660.o(.text) - SVC_Handler 0x0000014d Thumb Code 2 startup_max32660.o(.text) - DebugMon_Handler 0x0000014f Thumb Code 2 startup_max32660.o(.text) - PendSV_Handler 0x00000151 Thumb Code 2 startup_max32660.o(.text) - DMA0_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - DMA1_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - DMA2_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - DMA3_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - FLC_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - GPIOWAKE_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - I2C0_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - I2C1_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - PF_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV00_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV01_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV02_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV03_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV04_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV05_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV06_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV07_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV08_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV09_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV10_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV11_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV12_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV13_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV14_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV15_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV16_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV17_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV18_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV19_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV20_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV21_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV22_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV23_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV24_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV25_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV26_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV27_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV28_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV29_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV30_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV31_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV32_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV33_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV34_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RSV35_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - RTC_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - SPI0_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - SPI1_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - TMR0_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - TMR1_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - TMR2_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - UART0_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - UART1_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - WDT0_IRQHandler 0x00000153 Thumb Code 0 startup_max32660.o(.text) - __aeabi_uldivmod 0x0000015d Thumb Code 98 uldiv.o(.text) - __aeabi_memcpy 0x000001bf Thumb Code 36 memcpya.o(.text) - __aeabi_memcpy4 0x000001bf Thumb Code 0 memcpya.o(.text) - __aeabi_memcpy8 0x000001bf Thumb Code 0 memcpya.o(.text) - __aeabi_memset 0x000001e3 Thumb Code 14 memseta.o(.text) - __aeabi_memset4 0x000001e3 Thumb Code 0 memseta.o(.text) - __aeabi_memset8 0x000001e3 Thumb Code 0 memseta.o(.text) - __aeabi_memclr 0x000001f1 Thumb Code 4 memseta.o(.text) - __aeabi_memclr4 0x000001f1 Thumb Code 0 memseta.o(.text) - __aeabi_memclr8 0x000001f1 Thumb Code 0 memseta.o(.text) - _memset$wrapper 0x000001f5 Thumb Code 18 memseta.o(.text) - strcmp 0x00000207 Thumb Code 28 strcmp.o(.text) - strcpy 0x00000223 Thumb Code 18 strcpy.o(.text) - strtok_r 0x00000235 Thumb Code 60 strtok_r.o(.text) - _strtok$wrapper 0x00000271 Thumb Code 4 strtok_r.o(.text) - strtoul 0x00000279 Thumb Code 114 strtoul.o(.text) - __aeabi_dadd 0x000002eb Thumb Code 322 dadd.o(.text) - __aeabi_dsub 0x0000042d Thumb Code 6 dadd.o(.text) - __aeabi_drsub 0x00000433 Thumb Code 6 dadd.o(.text) - __aeabi_dmul 0x00000439 Thumb Code 228 dmul.o(.text) - __aeabi_ddiv 0x0000051d Thumb Code 222 ddiv.o(.text) - __aeabi_i2d 0x000005fb Thumb Code 34 dflti.o(.text) - __aeabi_ui2d 0x0000061d Thumb Code 26 dfltui.o(.text) - __aeabi_d2uiz 0x00000637 Thumb Code 50 dfixui.o(.text) - __aeabi_f2d 0x00000669 Thumb Code 38 f2d.o(.text) - __aeabi_d2f 0x0000068f Thumb Code 56 d2f.o(.text) - __scatterload 0x000006c9 Thumb Code 28 init.o(.text) - __scatterload_rt2 0x000006c9 Thumb Code 0 init.o(.text) - __aeabi_uidiv 0x000006ed Thumb Code 0 uidiv.o(.text) - __aeabi_uidivmod 0x000006ed Thumb Code 44 uidiv.o(.text) - __aeabi_llsl 0x00000719 Thumb Code 30 llshl.o(.text) - _ll_shift_l 0x00000719 Thumb Code 0 llshl.o(.text) - __aeabi_llsr 0x00000737 Thumb Code 32 llushr.o(.text) - _ll_ushift_r 0x00000737 Thumb Code 0 llushr.o(.text) - __aeabi_lasr 0x00000757 Thumb Code 36 llsshr.o(.text) - _ll_sshift_r 0x00000757 Thumb Code 0 llsshr.o(.text) - __rt_ctype_table 0x0000077d Thumb Code 4 ctype_o.o(.text) - isspace 0x00000785 Thumb Code 18 isspace_o.o(.text) - _strtoul 0x00000797 Thumb Code 158 _strtoul.o(.text) - __strtof_int 0x00000835 Thumb Code 26 strtof.o(.text) - __I$use$fp 0x0000084f Thumb Code 0 iusefp.o(.text) - _float_round 0x0000084f Thumb Code 18 fepilogue.o(.text) - _float_epilogue 0x00000861 Thumb Code 92 fepilogue.o(.text) - _double_round 0x000008bd Thumb Code 30 depilogue.o(.text) - _double_epilogue 0x000008db Thumb Code 156 depilogue.o(.text) - __ARM_scalbn 0x00000977 Thumb Code 46 dscalb.o(.text) - scalbn 0x00000977 Thumb Code 0 dscalb.o(.text) - __aeabi_d2ulz 0x000009a5 Thumb Code 48 dfixul.o(.text) - __aeabi_cdrcmple 0x000009d5 Thumb Code 48 cdrcmple.o(.text) - _chval 0x00000a05 Thumb Code 28 _chval.o(.text) - __strtod_int 0x00000a57 Thumb Code 90 strtod.o(.text) - _dsqrt 0x00000abd Thumb Code 162 dsqrt.o(.text) - __aeabi_cdcmpeq 0x00000b61 Thumb Code 0 cdcmple.o(.text) - __aeabi_cdcmple 0x00000b61 Thumb Code 48 cdcmple.o(.text) - _scanf_real 0x00000cb9 Thumb Code 0 scanf_fp.o(.text) - _scanf_really_real 0x00000cb9 Thumb Code 556 scanf_fp.o(.text) - _sgetc 0x00000ef1 Thumb Code 30 _sgetc.o(.text) - _sbackspace 0x00000f0f Thumb Code 34 _sgetc.o(.text) - __fp_status 0x00000f31 Thumb Code 4 fpstat.o(.text) - __ieee_status 0x00000f31 Thumb Code 0 fpstat.o(.text) - __aeabi_ul2d 0x00000f35 Thumb Code 24 dfltul.o(.text) - __main_after_scatterload 0x00000f4d Thumb Code 12 system_max32660.o(i.$Sub$$__main_after_scatterload) - AK9757W_Get_SensorID 0x00001719 Thumb Code 104 ak9757w.o(i.AK9757W_Get_SensorID) - AK9757W_Initialization 0x0000180d Thumb Code 34 ak9757w.o(i.AK9757W_Initialization) - AK9757W_Set_Mode 0x00001e89 Thumb Code 150 ak9757w.o(i.AK9757W_Set_Mode) - App_CLI_Initialization 0x00002005 Thumb Code 18 app_cli.o(i.App_CLI_Initialization) - App_Gpio_I2C_Initialization 0x00002035 Thumb Code 60 app_gpio_i2c.o(i.App_Gpio_I2C_Initialization) - App_Gpio_I2C_Start 0x000020fd Thumb Code 52 app_gpio_i2c.o(i.App_Gpio_I2C_Start) - App_Gpio_I2C_Stop 0x00002131 Thumb Code 52 app_gpio_i2c.o(i.App_Gpio_I2C_Stop) - App_Gpio_I2C_WriteData 0x00002165 Thumb Code 130 app_gpio_i2c.o(i.App_Gpio_I2C_WriteData) - App_Led_Initialization 0x000021e9 Thumb Code 82 app_gpio_led.o(i.App_Led_Initialization) - App_Led_OutputSet 0x00002295 Thumb Code 62 app_gpio_led.o(i.App_Led_OutputSet) - App_Log_Prinf 0x00002359 Thumb Code 58 app_log.o(i.App_Log_Prinf) - App_Uart_Get_Recv_Data 0x000023dd Thumb Code 26 app_uart.o(i.App_Uart_Get_Recv_Data) - App_Uart_Initialization 0x000023fd Thumb Code 198 app_uart.o(i.App_Uart_Initialization) - App_Uart_Transmit 0x00002541 Thumb Code 16 app_uart.o(i.App_Uart_Transmit) - App_Uart_Transmit_Len 0x00002555 Thumb Code 26 app_uart.o(i.App_Uart_Transmit_Len) - Board_Init 0x0000256f Thumb Code 4 system_max32660.o(i.Board_Init) - GPIO0_IRQHandler 0x00002573 Thumb Code 10 app_gpio.o(i.GPIO0_IRQHandler) - GPIO_Config 0x0000257d Thumb Code 242 gpio.o(i.GPIO_Config) - GPIO_Handler 0x00002675 Thumb Code 88 gpio.o(i.GPIO_Handler) - Gpio_Output_Clear 0x000026d9 Thumb Code 14 app_gpio.o(i.Gpio_Output_Clear) - Gpio_Output_Set 0x000026ed Thumb Code 14 app_gpio.o(i.Gpio_Output_Set) - Gpio_Port_Initialization 0x00002701 Thumb Code 10 app_gpio.o(i.Gpio_Port_Initialization) - Gpio_Set_Port_Output 0x0000270b Thumb Code 30 app_gpio.o(i.Gpio_Set_Port_Output) - I2C_Init 0x00002751 Thumb Code 368 i2c.o(i.I2C_Init) - I2C_MasterRead 0x000028d1 Thumb Code 228 i2c.o(i.I2C_MasterRead) - I2C_MasterWrite 0x000029b5 Thumb Code 242 i2c.o(i.I2C_MasterWrite) - I2C_Master_Initialization 0x00002ab9 Thumb Code 126 app_i2c_master.o(i.I2C_Master_Initialization) - I2C_Master_Read 0x00002b4d Thumb Code 72 app_i2c_master.o(i.I2C_Master_Read) - I2C_Master_Write 0x00002ba1 Thumb Code 66 app_i2c_master.o(i.I2C_Master_Write) - I2C_Master_WriteRead 0x00002bf1 Thumb Code 134 app_i2c_master.o(i.I2C_Master_WriteRead) - I2C_SetTimeout 0x00002c9d Thumb Code 38 i2c.o(i.I2C_SetTimeout) - I2C_Shutdown 0x00002dc5 Thumb Code 106 i2c.o(i.I2C_Shutdown) - ICC_Enable 0x00002e3d Thumb Code 34 icc.o(i.ICC_Enable) - LP_SetOperatingVoltage 0x00002e7d Thumb Code 232 lp.o(i.LP_SetOperatingVoltage) - NVIC_SetRAM 0x00003011 Thumb Code 22 nvic_table.o(i.NVIC_SetRAM) - NVIC_SetVector 0x00003035 Thumb Code 56 nvic_table.o(i.NVIC_SetVector) - Oled_Initialization 0x00003075 Thumb Code 24 app_oled.o(i.Oled_Initialization) - Oled_SetTemperature 0x000032b5 Thumb Code 30 app_oled.o(i.Oled_SetTemperature) - PreInit 0x000032e1 Thumb Code 4 system_max32660.o(i.PreInit) - RingBuffer_Dequeue 0x000032e5 Thumb Code 64 app_ring_buffer.o(i.RingBuffer_Dequeue) - RingBuffer_Enqueue 0x00003325 Thumb Code 66 app_ring_buffer.o(i.RingBuffer_Enqueue) - RingBuffer_GetData 0x00003367 Thumb Code 14 app_ring_buffer.o(i.RingBuffer_GetData) - RingBuffer_Get_DataSize 0x00003375 Thumb Code 48 app_ring_buffer.o(i.RingBuffer_Get_DataSize) - RingBuffer_Initialization 0x000033a5 Thumb Code 32 app_ring_buffer.o(i.RingBuffer_Initialization) - RingBuffer_PopData 0x000033c5 Thumb Code 40 app_ring_buffer.o(i.RingBuffer_PopData) - RingBuffer_isEmpty 0x000033ed Thumb Code 16 app_ring_buffer.o(i.RingBuffer_isEmpty) - RingBuffer_isFull 0x000033fd Thumb Code 34 app_ring_buffer.o(i.RingBuffer_isFull) - SSD1306_ClearScreen 0x00003421 Thumb Code 14 ssd1306.o(i.SSD1306_ClearScreen) - SSD1306_DrawBackGround 0x00003435 Thumb Code 18 ssd1306.o(i.SSD1306_DrawBackGround) - SSD1306_DrawBackGround_LeftShift 0x00003451 Thumb Code 72 ssd1306.o(i.SSD1306_DrawBackGround_LeftShift) - SSD1306_DrawBackGround_Log 0x0000349d Thumb Code 18 ssd1306.o(i.SSD1306_DrawBackGround_Log) - SSD1306_Draw_Temperature 0x000034b9 Thumb Code 602 ssd1306.o(i.SSD1306_Draw_Temperature) - SSD1306_Init 0x0000371d Thumb Code 106 ssd1306.o(i.SSD1306_Init) - SSD1306_InverseScreen 0x0000378d Thumb Code 50 ssd1306.o(i.SSD1306_InverseScreen) - SSD1306_NormalScreen 0x000037bf Thumb Code 50 ssd1306.o(i.SSD1306_NormalScreen) - SSD1306_Send_Command 0x000037f1 Thumb Code 46 ssd1306.o(i.SSD1306_Send_Command) - SSD1306_Send_StartAndSLAW 0x0000381f Thumb Code 44 ssd1306.o(i.SSD1306_Send_StartAndSLAW) - SSD1306_UpdateScreen 0x0000384d Thumb Code 138 ssd1306.o(i.SSD1306_UpdateScreen) - SW_Timer_Callback_Process 0x000038dd Thumb Code 164 sw_timer.o(i.SW_Timer_Callback_Process) - SW_Timer_Callback_Register 0x00003985 Thumb Code 100 sw_timer.o(i.SW_Timer_Callback_Register) - SYS_ClockDisable 0x000039ed Thumb Code 42 mxc_sys.o(i.SYS_ClockDisable) - SYS_ClockEnable 0x00003a17 Thumb Code 42 mxc_sys.o(i.SYS_ClockEnable) - SYS_Clock_Select 0x00003a41 Thumb Code 556 mxc_sys.o(i.SYS_Clock_Select) - SYS_I2C_GetFreq 0x00003ca5 Thumb Code 10 mxc_sys.o(i.SYS_I2C_GetFreq) - SYS_I2C_Init 0x00003cb5 Thumb Code 58 mxc_sys.o(i.SYS_I2C_Init) - SYS_I2C_Shutdown 0x00003d01 Thumb Code 100 mxc_sys.o(i.SYS_I2C_Shutdown) - SYS_TMR_Init 0x00003d75 Thumb Code 74 mxc_sys.o(i.SYS_TMR_Init) - SYS_UART_Init 0x00003dd1 Thumb Code 122 mxc_sys.o(i.SYS_UART_Init) - SysTick_Handler 0x00003e6d Thumb Code 8 mxc_delay.o(i.SysTick_Handler) - SystemCoreClockSet 0x00003e75 Thumb Code 80 system_func.o(i.SystemCoreClockSet) - SystemCoreClockUpdate 0x00003ec9 Thumb Code 80 system_max32660.o(i.SystemCoreClockUpdate) - SystemInit 0x00003f2d Thumb Code 132 system_max32660.o(i.SystemInit) - SystemTimer_Get_TickCount 0x00004061 Thumb Code 6 system_func.o(i.SystemTimer_Get_TickCount) - TMR_Config 0x00004089 Thumb Code 42 tmr.o(i.TMR_Config) - TMR_Disable 0x000040b3 Thumb Code 10 tmr.o(i.TMR_Disable) - TMR_Enable 0x000040bd Thumb Code 10 tmr.o(i.TMR_Enable) - TMR_Init 0x000040c7 Thumb Code 42 tmr.o(i.TMR_Init) - TMR_IntClear 0x000040f1 Thumb Code 6 tmr.o(i.TMR_IntClear) - TWI_MT_Send_Data 0x000040f7 Thumb Code 22 ssd1306_i2c.o(i.TWI_MT_Send_Data) - TWI_MT_Send_SLAW 0x0000410d Thumb Code 24 ssd1306_i2c.o(i.TWI_MT_Send_SLAW) - TWI_MT_Start 0x00004125 Thumb Code 10 ssd1306_i2c.o(i.TWI_MT_Start) - TWI_Stop 0x0000412f Thumb Code 8 ssd1306_i2c.o(i.TWI_Stop) - Test_Process 0x00004137 Thumb Code 2 main.o(i.Test_Process) - UART_Busy 0x00004139 Thumb Code 76 uart.o(i.UART_Busy) - UART_ClearFlags 0x00004191 Thumb Code 4 uart.o(i.UART_ClearFlags) - UART_Handler 0x00004195 Thumb Code 86 uart.o(i.UART_Handler) - UART_Init 0x000041fd Thumb Code 198 uart.o(i.UART_Init) - UART_NumReadAvail 0x000042d9 Thumb Code 10 uart.o(i.UART_NumReadAvail) - UART_NumWriteAvail 0x000042e3 Thumb Code 14 uart.o(i.UART_NumWriteAvail) - UART_ReadAsync 0x000042f1 Thumb Code 150 uart.o(i.UART_ReadAsync) - UART_WriteByte 0x00004465 Thumb Code 16 uart.o(i.UART_WriteByte) - __0fprintf 0x000044fd Thumb Code 22 printfa.o(i.__0fprintf) - __1fprintf 0x000044fd Thumb Code 0 printfa.o(i.__0fprintf) - __2fprintf 0x000044fd Thumb Code 0 printfa.o(i.__0fprintf) - __c89fprintf 0x000044fd Thumb Code 0 printfa.o(i.__0fprintf) - fprintf 0x000044fd Thumb Code 0 printfa.o(i.__0fprintf) - __0vfprintf 0x00004519 Thumb Code 20 printfa.o(i.__0vfprintf) - __1vfprintf 0x00004519 Thumb Code 0 printfa.o(i.__0vfprintf) - __2vfprintf 0x00004519 Thumb Code 0 printfa.o(i.__0vfprintf) - __c89vfprintf 0x00004519 Thumb Code 0 printfa.o(i.__0vfprintf) - vfprintf 0x00004519 Thumb Code 0 printfa.o(i.__0vfprintf) - __0vsnprintf 0x00004531 Thumb Code 46 printfa.o(i.__0vsnprintf) - __1vsnprintf 0x00004531 Thumb Code 0 printfa.o(i.__0vsnprintf) - __2vsnprintf 0x00004531 Thumb Code 0 printfa.o(i.__0vsnprintf) - __c89vsnprintf 0x00004531 Thumb Code 0 printfa.o(i.__0vsnprintf) - vsnprintf 0x00004531 Thumb Code 0 printfa.o(i.__0vsnprintf) - __ARM_fpclassify 0x00004565 Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) - __aeabi_errno_addr 0x00004595 Thumb Code 4 errno.o(i.__aeabi_errno_addr) - __rt_errno_addr 0x00004595 Thumb Code 0 errno.o(i.__aeabi_errno_addr) - __hardfp___mathlib_tofloat 0x000045a1 Thumb Code 232 narrow.o(i.__hardfp___mathlib_tofloat) - __hardfp_pow 0x00004699 Thumb Code 3072 pow.o(i.__hardfp_pow) - __hardfp_strtof 0x000052e9 Thumb Code 26 strtof.o(i.__hardfp_strtof) - __kernel_poly 0x00005309 Thumb Code 248 poly.o(i.__kernel_poly) - __mathlib_dbl_divzero 0x00005401 Thumb Code 28 dunder.o(i.__mathlib_dbl_divzero) - __mathlib_dbl_infnan2 0x00005431 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan2) - __mathlib_dbl_invalid 0x00005449 Thumb Code 24 dunder.o(i.__mathlib_dbl_invalid) - __mathlib_dbl_overflow 0x00005469 Thumb Code 24 dunder.o(i.__mathlib_dbl_overflow) - __mathlib_dbl_underflow 0x00005489 Thumb Code 24 dunder.o(i.__mathlib_dbl_underflow) - __mathlib_narrow 0x000054a9 Thumb Code 18 narrow.o(i.__mathlib_narrow) - __scatterload_copy 0x000054bb Thumb Code 14 handlers.o(i.__scatterload_copy) - __scatterload_null 0x000054c9 Thumb Code 2 handlers.o(i.__scatterload_null) - __scatterload_zeroinit 0x000054cb Thumb Code 14 handlers.o(i.__scatterload_zeroinit) - __set_errno 0x000054d9 Thumb Code 6 errno.o(i.__set_errno) - _is_digit 0x00005669 Thumb Code 14 scanf_fp.o(i._is_digit) - cliAdd 0x00005d95 Thumb Code 94 app_cli.o(i.cliAdd) - cliInit 0x00005ecd Thumb Code 80 app_cli.o(i.cliInit) - cliMain 0x00006079 Thumb Code 22 app_cli.o(i.cliMain) - cliMemoryDump 0x00006095 Thumb Code 220 app_cli.o(i.cliMemoryDump) - cliPrintf 0x00006215 Thumb Code 48 app_cli.o(i.cliPrintf) - cliShowList 0x000062bd Thumb Code 62 app_cli.o(i.cliShowList) - fabs 0x000066e9 Thumb Code 24 fabs.o(i.fabs) - fputc 0x00006701 Thumb Code 18 app_uart.o(i.fputc) - frexp 0x00006719 Thumb Code 118 frexp.o(i.frexp) - main 0x000067a5 Thumb Code 84 main.o(i.main) - mxc_delay 0x00006809 Thumb Code 116 mxc_delay.o(i.mxc_delay) - mxc_delay_check 0x00006889 Thumb Code 72 mxc_delay.o(i.mxc_delay_check) - mxc_delay_handler 0x000068dd Thumb Code 76 mxc_delay.o(i.mxc_delay_handler) - mxc_delay_start 0x000069e9 Thumb Code 72 mxc_delay.o(i.mxc_delay_start) - mxc_delay_stop 0x00006a35 Thumb Code 20 mxc_delay.o(i.mxc_delay_stop) - mxc_free_lock 0x00006a51 Thumb Code 10 mxc_lock.o(i.mxc_free_lock) - mxc_get_lock 0x00006a5b Thumb Code 32 mxc_lock.o(i.mxc_get_lock) - sqrt 0x00006aa1 Thumb Code 110 sqrt.o(i.sqrt) - gpio_cfg_tmr0 0x00006b60 Data 12 mxc_pins.o(.constdata) - gpio_cfg_uart0rtscts 0x00006b6c Data 12 mxc_pins.o(.constdata) - gpio_cfg_uart0a 0x00006b78 Data 12 mxc_pins.o(.constdata) - gpio_cfg_uart1rtscts 0x00006b84 Data 12 mxc_pins.o(.constdata) - gpio_cfg_uart1a 0x00006b90 Data 12 mxc_pins.o(.constdata) - gpio_cfg_uart1b 0x00006b9c Data 12 mxc_pins.o(.constdata) - gpio_cfg_uart1c 0x00006ba8 Data 12 mxc_pins.o(.constdata) - gpio_cfg_i2c0 0x00006bb4 Data 12 mxc_pins.o(.constdata) - gpio_cfg_i2c1 0x00006bc0 Data 12 mxc_pins.o(.constdata) - gpio_cfg_spi17y 0x00006bcc Data 12 mxc_pins.o(.constdata) - gpio_cfg_spimss1a 0x00006bd8 Data 12 mxc_pins.o(.constdata) - gpio_cfg_spimss1b 0x00006be4 Data 12 mxc_pins.o(.constdata) - gpio_cfg_i2s1a 0x00006bf0 Data 12 mxc_pins.o(.constdata) - gpio_cfg_i2s1b 0x00006bfc Data 12 mxc_pins.o(.constdata) - gpio_cfg_swd 0x00006c08 Data 12 mxc_pins.o(.constdata) - gpio_cfg_rtc 0x00006c14 Data 12 mxc_pins.o(.constdata) - FONTS 0x00006c20 Data 480 ssd1306.o(.constdata) - INIT_SSD1306_ADAFRUIT 0x00006e00 Data 44 ssd1306.o(.constdata) - INIT_SSD1306 0x00006e2c Data 46 ssd1306.o(.constdata) - default_cntl_reg_data 0x00006e5a Data 10 ak9757w.o(.constdata) - default_fcoef_reg_data 0x00006e64 Data 15 ak9757w.o(.constdata) - default_gcoef_reg_data 0x00006e73 Data 15 ak9757w.o(.constdata) - default_xcoef_reg_data 0x00006e82 Data 15 ak9757w.o(.constdata) - default_gir_oir_gts_ots_git_reg_data 0x00006e91 Data 10 ak9757w.o(.constdata) - gImage_background 0x00006f9a Data 512 background.o(.constdata) - gImage_number 0x0000719a Data 1056 number.o(.constdata) - gImage_CAMMSYS_Log 0x000075ba Data 512 cammsys_log.o(.constdata) - __mathlib_zero 0x00007848 Data 8 qnan.o(.constdata) - __ctype_table 0x00007850 Data 129 ctype_o.o(.constdata) - Region$$Table$$Base 0x000078e0 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x00007900 Number 0 anon$$obj.o(Region$$Table) + FLC_Busy 0x00000135 Thumb Code 10 flc.o(.flashprog) + FLC_Init 0x00000185 Thumb Code 14 flc.o(.flashprog) + FLC_MassErase 0x00000193 Thumb Code 96 flc.o(.flashprog) + FLC_PageErase 0x000001f3 Thumb Code 106 flc.o(.flashprog) + FLC_Erase 0x0000025d Thumb Code 52 flc.o(.flashprog) + FLC_Write 0x00000291 Thumb Code 384 flc.o(.flashprog) + FLC_BufferErase 0x00000411 Thumb Code 272 flc.o(.flashprog) + FLC_Write32 0x00000521 Thumb Code 122 flc.o(.flashprog) + FLC_Write128 0x0000059b Thumb Code 126 flc.o(.flashprog) + Reset_Handler 0x0000061d Thumb Code 14 startup_max32660.o(.text) + NMI_Handler 0x0000062b Thumb Code 2 startup_max32660.o(.text) + HardFault_Handler 0x0000062d Thumb Code 2 startup_max32660.o(.text) + MemManage_Handler 0x0000062f Thumb Code 2 startup_max32660.o(.text) + BusFault_Handler 0x00000631 Thumb Code 2 startup_max32660.o(.text) + UsageFault_Handler 0x00000633 Thumb Code 2 startup_max32660.o(.text) + SVC_Handler 0x00000635 Thumb Code 2 startup_max32660.o(.text) + DebugMon_Handler 0x00000637 Thumb Code 2 startup_max32660.o(.text) + PendSV_Handler 0x00000639 Thumb Code 2 startup_max32660.o(.text) + DMA0_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + DMA1_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + DMA2_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + DMA3_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + FLC_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + GPIOWAKE_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + I2C0_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + I2C1_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + PF_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV00_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV01_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV02_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV03_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV04_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV05_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV06_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV07_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV08_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV09_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV10_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV11_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV12_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV13_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV14_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV15_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV16_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV17_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV18_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV19_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV20_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV21_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV22_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV23_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV24_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV25_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV26_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV27_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV28_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV29_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV30_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV31_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV32_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV33_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV34_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RSV35_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + RTC_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + SPI0_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + SPI1_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + TMR0_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + TMR1_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + TMR2_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + UART0_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + UART1_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + WDT0_IRQHandler 0x0000063b Thumb Code 0 startup_max32660.o(.text) + __aeabi_uldivmod 0x00000645 Thumb Code 98 uldiv.o(.text) + __aeabi_memcpy 0x000006a7 Thumb Code 36 memcpya.o(.text) + __aeabi_memcpy4 0x000006a7 Thumb Code 0 memcpya.o(.text) + __aeabi_memcpy8 0x000006a7 Thumb Code 0 memcpya.o(.text) + __aeabi_memset 0x000006cb Thumb Code 14 memseta.o(.text) + __aeabi_memset4 0x000006cb Thumb Code 0 memseta.o(.text) + __aeabi_memset8 0x000006cb Thumb Code 0 memseta.o(.text) + __aeabi_memclr 0x000006d9 Thumb Code 4 memseta.o(.text) + __aeabi_memclr4 0x000006d9 Thumb Code 0 memseta.o(.text) + __aeabi_memclr8 0x000006d9 Thumb Code 0 memseta.o(.text) + _memset$wrapper 0x000006dd Thumb Code 18 memseta.o(.text) + strcmp 0x000006ef Thumb Code 28 strcmp.o(.text) + strcpy 0x0000070b Thumb Code 18 strcpy.o(.text) + strtok_r 0x0000071d Thumb Code 60 strtok_r.o(.text) + _strtok$wrapper 0x00000759 Thumb Code 4 strtok_r.o(.text) + strtoul 0x00000761 Thumb Code 114 strtoul.o(.text) + __aeabi_dadd 0x000007d3 Thumb Code 322 dadd.o(.text) + __aeabi_dsub 0x00000915 Thumb Code 6 dadd.o(.text) + __aeabi_drsub 0x0000091b Thumb Code 6 dadd.o(.text) + __aeabi_dmul 0x00000921 Thumb Code 228 dmul.o(.text) + __aeabi_ddiv 0x00000a05 Thumb Code 222 ddiv.o(.text) + __aeabi_i2d 0x00000ae3 Thumb Code 34 dflti.o(.text) + __aeabi_ui2d 0x00000b05 Thumb Code 26 dfltui.o(.text) + __aeabi_d2uiz 0x00000b1f Thumb Code 50 dfixui.o(.text) + __aeabi_f2d 0x00000b51 Thumb Code 38 f2d.o(.text) + __aeabi_d2f 0x00000b77 Thumb Code 56 d2f.o(.text) + __scatterload 0x00000bb1 Thumb Code 28 init.o(.text) + __scatterload_rt2 0x00000bb1 Thumb Code 0 init.o(.text) + __aeabi_uidiv 0x00000bd5 Thumb Code 0 uidiv.o(.text) + __aeabi_uidivmod 0x00000bd5 Thumb Code 44 uidiv.o(.text) + __aeabi_llsl 0x00000c01 Thumb Code 30 llshl.o(.text) + _ll_shift_l 0x00000c01 Thumb Code 0 llshl.o(.text) + __aeabi_llsr 0x00000c1f Thumb Code 32 llushr.o(.text) + _ll_ushift_r 0x00000c1f Thumb Code 0 llushr.o(.text) + __aeabi_lasr 0x00000c3f Thumb Code 36 llsshr.o(.text) + _ll_sshift_r 0x00000c3f Thumb Code 0 llsshr.o(.text) + __rt_ctype_table 0x00000c65 Thumb Code 4 ctype_o.o(.text) + isspace 0x00000c6d Thumb Code 18 isspace_o.o(.text) + _strtoul 0x00000c7f Thumb Code 158 _strtoul.o(.text) + __strtof_int 0x00000d1d Thumb Code 26 strtof.o(.text) + __I$use$fp 0x00000d37 Thumb Code 0 iusefp.o(.text) + _float_round 0x00000d37 Thumb Code 18 fepilogue.o(.text) + _float_epilogue 0x00000d49 Thumb Code 92 fepilogue.o(.text) + _double_round 0x00000da5 Thumb Code 30 depilogue.o(.text) + _double_epilogue 0x00000dc3 Thumb Code 156 depilogue.o(.text) + __ARM_scalbn 0x00000e5f Thumb Code 46 dscalb.o(.text) + scalbn 0x00000e5f Thumb Code 0 dscalb.o(.text) + __aeabi_d2ulz 0x00000e8d Thumb Code 48 dfixul.o(.text) + __aeabi_cdrcmple 0x00000ebd Thumb Code 48 cdrcmple.o(.text) + _chval 0x00000eed Thumb Code 28 _chval.o(.text) + __strtod_int 0x00000f3f Thumb Code 90 strtod.o(.text) + _dsqrt 0x00000fa5 Thumb Code 162 dsqrt.o(.text) + __aeabi_cdcmpeq 0x00001049 Thumb Code 0 cdcmple.o(.text) + __aeabi_cdcmple 0x00001049 Thumb Code 48 cdcmple.o(.text) + _scanf_real 0x000011a1 Thumb Code 0 scanf_fp.o(.text) + _scanf_really_real 0x000011a1 Thumb Code 556 scanf_fp.o(.text) + _sgetc 0x000013d9 Thumb Code 30 _sgetc.o(.text) + _sbackspace 0x000013f7 Thumb Code 34 _sgetc.o(.text) + __fp_status 0x00001419 Thumb Code 4 fpstat.o(.text) + __ieee_status 0x00001419 Thumb Code 0 fpstat.o(.text) + __aeabi_ul2d 0x0000141d Thumb Code 24 dfltul.o(.text) + __main_after_scatterload 0x00001435 Thumb Code 12 system_max32660.o(i.$Sub$$__main_after_scatterload) + AK9757W_DeleteParameter 0x00001c01 Thumb Code 30 ak9757w.o(i.AK9757W_DeleteParameter) + AK9757W_DispalyParameter 0x00001c25 Thumb Code 72 ak9757w.o(i.AK9757W_DispalyParameter) + AK9757W_GetID 0x00001cc5 Thumb Code 8 ak9757w.o(i.AK9757W_GetID) + AK9757W_Get_SensorID 0x00001cd1 Thumb Code 104 ak9757w.o(i.AK9757W_Get_SensorID) + AK9757W_Initialization 0x00001dc5 Thumb Code 42 ak9757w.o(i.AK9757W_Initialization) + AK9757W_ReadReg 0x00002029 Thumb Code 52 ak9757w.o(i.AK9757W_ReadReg) + AK9757W_SaveParameter 0x0000226d Thumb Code 174 ak9757w.o(i.AK9757W_SaveParameter) + AK9757W_Set_Mode 0x000025f5 Thumb Code 150 ak9757w.o(i.AK9757W_Set_Mode) + AK9757W_Start_Stop 0x00002771 Thumb Code 58 ak9757w.o(i.AK9757W_Start_Stop) + AK9757W_UpdateTime 0x000027b1 Thumb Code 30 ak9757w.o(i.AK9757W_UpdateTime) + AK9757W_WriteReg 0x000027d5 Thumb Code 52 ak9757w.o(i.AK9757W_WriteReg) + App_CLI_Initialization 0x0000280d Thumb Code 18 app_cli.o(i.App_CLI_Initialization) + App_Gpio_I2C_Initialization 0x0000283d Thumb Code 60 app_gpio_i2c.o(i.App_Gpio_I2C_Initialization) + App_Gpio_I2C_Start 0x00002905 Thumb Code 52 app_gpio_i2c.o(i.App_Gpio_I2C_Start) + App_Gpio_I2C_Stop 0x00002939 Thumb Code 52 app_gpio_i2c.o(i.App_Gpio_I2C_Stop) + App_Gpio_I2C_WriteData 0x0000296d Thumb Code 130 app_gpio_i2c.o(i.App_Gpio_I2C_WriteData) + App_Led_Initialization 0x000029f1 Thumb Code 82 app_gpio_led.o(i.App_Led_Initialization) + App_Led_OutputSet 0x00002a9d Thumb Code 62 app_gpio_led.o(i.App_Led_OutputSet) + App_Log_Prinf 0x00002b61 Thumb Code 58 app_log.o(i.App_Log_Prinf) + App_Uart_Get_Recv_Data 0x00002be5 Thumb Code 26 app_uart.o(i.App_Uart_Get_Recv_Data) + App_Uart_Initialization 0x00002c05 Thumb Code 198 app_uart.o(i.App_Uart_Initialization) + App_Uart_Transmit 0x00002d49 Thumb Code 16 app_uart.o(i.App_Uart_Transmit) + App_Uart_Transmit_Len 0x00002d5d Thumb Code 26 app_uart.o(i.App_Uart_Transmit_Len) + Board_Init 0x00002d77 Thumb Code 4 system_max32660.o(i.Board_Init) + EE_Init 0x00002e19 Thumb Code 510 eeprom.o(i.EE_Init) + EE_ReadVariable 0x000030e1 Thumb Code 98 eeprom.o(i.EE_ReadVariable) + EE_WriteVariable 0x00003289 Thumb Code 36 eeprom.o(i.EE_WriteVariable) + Eeprom_Get_Parameter 0x000032ad Thumb Code 38 eeprom_address.o(i.Eeprom_Get_Parameter) + Eeprom_Initialization 0x000032d3 Thumb Code 8 eeprom_address.o(i.Eeprom_Initialization) + Eeprom_Save_Parameter 0x000032db Thumb Code 32 eeprom_address.o(i.Eeprom_Save_Parameter) + Flash_Initialization 0x000032fb Thumb Code 14 cammsys_flash.o(i.Flash_Initialization) + Flash_Write 0x00003309 Thumb Code 44 cammsys_flash.o(i.Flash_Write) + GPIO0_IRQHandler 0x00003335 Thumb Code 10 app_gpio.o(i.GPIO0_IRQHandler) + GPIO_Config 0x00003341 Thumb Code 242 gpio.o(i.GPIO_Config) + GPIO_Handler 0x00003439 Thumb Code 88 gpio.o(i.GPIO_Handler) + Gpio_Output_Clear 0x0000349d Thumb Code 14 app_gpio.o(i.Gpio_Output_Clear) + Gpio_Output_Set 0x000034b1 Thumb Code 14 app_gpio.o(i.Gpio_Output_Set) + Gpio_Port_Initialization 0x000034c5 Thumb Code 10 app_gpio.o(i.Gpio_Port_Initialization) + Gpio_Set_Port_Output 0x000034cf Thumb Code 30 app_gpio.o(i.Gpio_Set_Port_Output) + I2C_Handler 0x00003515 Thumb Code 40 i2c.o(i.I2C_Handler) + I2C_Init 0x0000353d Thumb Code 368 i2c.o(i.I2C_Init) + I2C_MasterRead 0x000038d9 Thumb Code 228 i2c.o(i.I2C_MasterRead) + I2C_MasterWrite 0x000039bd Thumb Code 242 i2c.o(i.I2C_MasterWrite) + I2C_Master_Initialization 0x00003ac1 Thumb Code 132 app_i2c_master.o(i.I2C_Master_Initialization) + I2C_Master_Read 0x00003b59 Thumb Code 64 app_i2c_master.o(i.I2C_Master_Read) + I2C_Master_Write 0x00003ba5 Thumb Code 66 app_i2c_master.o(i.I2C_Master_Write) + I2C_Master_WriteRead 0x00003bf5 Thumb Code 114 app_i2c_master.o(i.I2C_Master_WriteRead) + I2C_SetTimeout 0x00003c8d Thumb Code 38 i2c.o(i.I2C_SetTimeout) + I2C_Shutdown 0x00003db5 Thumb Code 106 i2c.o(i.I2C_Shutdown) + ICC_Enable 0x00004049 Thumb Code 34 icc.o(i.ICC_Enable) + LP_SetOperatingVoltage 0x00004089 Thumb Code 232 lp.o(i.LP_SetOperatingVoltage) + NVIC_SetRAM 0x0000421d Thumb Code 22 nvic_table.o(i.NVIC_SetRAM) + NVIC_SetVector 0x00004241 Thumb Code 56 nvic_table.o(i.NVIC_SetVector) + Oled_Initialization 0x00004281 Thumb Code 26 app_oled.o(i.Oled_Initialization) + Oled_SetTemperature 0x000044c5 Thumb Code 32 app_oled.o(i.Oled_SetTemperature) + PreInit 0x000044f1 Thumb Code 4 system_max32660.o(i.PreInit) + RingBuffer_Dequeue 0x000044f5 Thumb Code 64 app_ring_buffer.o(i.RingBuffer_Dequeue) + RingBuffer_Enqueue 0x00004535 Thumb Code 66 app_ring_buffer.o(i.RingBuffer_Enqueue) + RingBuffer_GetData 0x00004577 Thumb Code 14 app_ring_buffer.o(i.RingBuffer_GetData) + RingBuffer_Get_DataSize 0x00004585 Thumb Code 48 app_ring_buffer.o(i.RingBuffer_Get_DataSize) + RingBuffer_Initialization 0x000045b5 Thumb Code 32 app_ring_buffer.o(i.RingBuffer_Initialization) + RingBuffer_PopData 0x000045d5 Thumb Code 40 app_ring_buffer.o(i.RingBuffer_PopData) + RingBuffer_isEmpty 0x000045fd Thumb Code 16 app_ring_buffer.o(i.RingBuffer_isEmpty) + RingBuffer_isFull 0x0000460d Thumb Code 34 app_ring_buffer.o(i.RingBuffer_isFull) + SSD1306_ClearScreen 0x00004631 Thumb Code 14 ssd1306.o(i.SSD1306_ClearScreen) + SSD1306_DrawBackGround 0x00004645 Thumb Code 18 ssd1306.o(i.SSD1306_DrawBackGround) + SSD1306_DrawBackGround_LeftShift 0x00004661 Thumb Code 72 ssd1306.o(i.SSD1306_DrawBackGround_LeftShift) + SSD1306_DrawBackGround_Log 0x000046ad Thumb Code 18 ssd1306.o(i.SSD1306_DrawBackGround_Log) + SSD1306_Draw_Temperature 0x000046c9 Thumb Code 602 ssd1306.o(i.SSD1306_Draw_Temperature) + SSD1306_Init 0x0000492d Thumb Code 106 ssd1306.o(i.SSD1306_Init) + SSD1306_InverseScreen 0x0000499d Thumb Code 50 ssd1306.o(i.SSD1306_InverseScreen) + SSD1306_NormalScreen 0x000049cf Thumb Code 50 ssd1306.o(i.SSD1306_NormalScreen) + SSD1306_Send_Command 0x00004a01 Thumb Code 46 ssd1306.o(i.SSD1306_Send_Command) + SSD1306_Send_StartAndSLAW 0x00004a2f Thumb Code 44 ssd1306.o(i.SSD1306_Send_StartAndSLAW) + SSD1306_UpdateScreen 0x00004a5d Thumb Code 138 ssd1306.o(i.SSD1306_UpdateScreen) + SW_Timer_Callback_Process 0x00004aed Thumb Code 164 sw_timer.o(i.SW_Timer_Callback_Process) + SW_Timer_Callback_Register 0x00004b95 Thumb Code 100 sw_timer.o(i.SW_Timer_Callback_Register) + SYS_ClockDisable 0x00004bfd Thumb Code 42 mxc_sys.o(i.SYS_ClockDisable) + SYS_ClockEnable 0x00004c27 Thumb Code 42 mxc_sys.o(i.SYS_ClockEnable) + SYS_Clock_Select 0x00004c51 Thumb Code 556 mxc_sys.o(i.SYS_Clock_Select) + SYS_FLC_Init 0x00004eb3 Thumb Code 6 mxc_sys.o(i.SYS_FLC_Init) + SYS_Flash_Operation 0x00004eb9 Thumb Code 46 mxc_sys.o(i.SYS_Flash_Operation) + SYS_I2C_GetFreq 0x00004ef1 Thumb Code 10 mxc_sys.o(i.SYS_I2C_GetFreq) + SYS_I2C_Init 0x00004f01 Thumb Code 58 mxc_sys.o(i.SYS_I2C_Init) + SYS_I2C_Shutdown 0x00004f4d Thumb Code 100 mxc_sys.o(i.SYS_I2C_Shutdown) + SYS_TMR_Init 0x00004fc1 Thumb Code 74 mxc_sys.o(i.SYS_TMR_Init) + SYS_UART_Init 0x0000501d Thumb Code 122 mxc_sys.o(i.SYS_UART_Init) + SysTick_Handler 0x000050b9 Thumb Code 8 mxc_delay.o(i.SysTick_Handler) + SystemCoreClockSet 0x000050c1 Thumb Code 80 system_func.o(i.SystemCoreClockSet) + SystemCoreClockUpdate 0x00005115 Thumb Code 80 system_max32660.o(i.SystemCoreClockUpdate) + SystemInit 0x00005179 Thumb Code 132 system_max32660.o(i.SystemInit) + SystemTimer_Get_TickCount 0x000052ad Thumb Code 6 system_func.o(i.SystemTimer_Get_TickCount) + TMR_Config 0x000052d5 Thumb Code 42 tmr.o(i.TMR_Config) + TMR_Disable 0x000052ff Thumb Code 10 tmr.o(i.TMR_Disable) + TMR_Enable 0x00005309 Thumb Code 10 tmr.o(i.TMR_Enable) + TMR_Init 0x00005313 Thumb Code 42 tmr.o(i.TMR_Init) + TMR_IntClear 0x0000533d Thumb Code 6 tmr.o(i.TMR_IntClear) + TWI_MT_Send_Data 0x00005343 Thumb Code 22 ssd1306_i2c.o(i.TWI_MT_Send_Data) + TWI_MT_Send_SLAW 0x00005359 Thumb Code 24 ssd1306_i2c.o(i.TWI_MT_Send_SLAW) + TWI_MT_Start 0x00005371 Thumb Code 10 ssd1306_i2c.o(i.TWI_MT_Start) + TWI_Stop 0x0000537b Thumb Code 8 ssd1306_i2c.o(i.TWI_Stop) + Test_Process 0x00005383 Thumb Code 2 main.o(i.Test_Process) + UART_Busy 0x00005385 Thumb Code 76 uart.o(i.UART_Busy) + UART_ClearFlags 0x000053dd Thumb Code 4 uart.o(i.UART_ClearFlags) + UART_Handler 0x000053e1 Thumb Code 86 uart.o(i.UART_Handler) + UART_Init 0x00005449 Thumb Code 198 uart.o(i.UART_Init) + UART_NumReadAvail 0x00005525 Thumb Code 10 uart.o(i.UART_NumReadAvail) + UART_NumWriteAvail 0x0000552f Thumb Code 14 uart.o(i.UART_NumWriteAvail) + UART_ReadAsync 0x0000553d Thumb Code 150 uart.o(i.UART_ReadAsync) + UART_WriteByte 0x000056b1 Thumb Code 16 uart.o(i.UART_WriteByte) + __0fprintf 0x00005749 Thumb Code 22 printfa.o(i.__0fprintf) + __1fprintf 0x00005749 Thumb Code 0 printfa.o(i.__0fprintf) + __2fprintf 0x00005749 Thumb Code 0 printfa.o(i.__0fprintf) + __c89fprintf 0x00005749 Thumb Code 0 printfa.o(i.__0fprintf) + fprintf 0x00005749 Thumb Code 0 printfa.o(i.__0fprintf) + __0printf 0x00005765 Thumb Code 22 printfa.o(i.__0printf) + __1printf 0x00005765 Thumb Code 0 printfa.o(i.__0printf) + __2printf 0x00005765 Thumb Code 0 printfa.o(i.__0printf) + __c89printf 0x00005765 Thumb Code 0 printfa.o(i.__0printf) + printf 0x00005765 Thumb Code 0 printfa.o(i.__0printf) + __0vfprintf 0x00005785 Thumb Code 20 printfa.o(i.__0vfprintf) + __1vfprintf 0x00005785 Thumb Code 0 printfa.o(i.__0vfprintf) + __2vfprintf 0x00005785 Thumb Code 0 printfa.o(i.__0vfprintf) + __c89vfprintf 0x00005785 Thumb Code 0 printfa.o(i.__0vfprintf) + vfprintf 0x00005785 Thumb Code 0 printfa.o(i.__0vfprintf) + __0vsnprintf 0x0000579d Thumb Code 46 printfa.o(i.__0vsnprintf) + __1vsnprintf 0x0000579d Thumb Code 0 printfa.o(i.__0vsnprintf) + __2vsnprintf 0x0000579d Thumb Code 0 printfa.o(i.__0vsnprintf) + __c89vsnprintf 0x0000579d Thumb Code 0 printfa.o(i.__0vsnprintf) + vsnprintf 0x0000579d Thumb Code 0 printfa.o(i.__0vsnprintf) + __ARM_fpclassify 0x000057d1 Thumb Code 48 fpclassify.o(i.__ARM_fpclassify) + __aeabi_errno_addr 0x00005801 Thumb Code 4 errno.o(i.__aeabi_errno_addr) + __rt_errno_addr 0x00005801 Thumb Code 0 errno.o(i.__aeabi_errno_addr) + __hardfp___mathlib_tofloat 0x00005809 Thumb Code 232 narrow.o(i.__hardfp___mathlib_tofloat) + __hardfp_pow 0x00005901 Thumb Code 3072 pow.o(i.__hardfp_pow) + __hardfp_strtof 0x00006551 Thumb Code 26 strtof.o(i.__hardfp_strtof) + __kernel_poly 0x00006571 Thumb Code 248 poly.o(i.__kernel_poly) + __mathlib_dbl_divzero 0x00006669 Thumb Code 28 dunder.o(i.__mathlib_dbl_divzero) + __mathlib_dbl_infnan2 0x00006699 Thumb Code 20 dunder.o(i.__mathlib_dbl_infnan2) + __mathlib_dbl_invalid 0x000066b1 Thumb Code 24 dunder.o(i.__mathlib_dbl_invalid) + __mathlib_dbl_overflow 0x000066d1 Thumb Code 24 dunder.o(i.__mathlib_dbl_overflow) + __mathlib_dbl_underflow 0x000066f1 Thumb Code 24 dunder.o(i.__mathlib_dbl_underflow) + __mathlib_narrow 0x00006711 Thumb Code 18 narrow.o(i.__mathlib_narrow) + __scatterload_copy 0x00006723 Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x00006731 Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x00006733 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + __set_errno 0x00006741 Thumb Code 6 errno.o(i.__set_errno) + _is_digit 0x000068d1 Thumb Code 14 scanf_fp.o(i._is_digit) + cliAdd 0x00006ffd Thumb Code 94 app_cli.o(i.cliAdd) + cliInit 0x00007135 Thumb Code 88 app_cli.o(i.cliInit) + cliMain 0x000072f1 Thumb Code 22 app_cli.o(i.cliMain) + cliMemoryDump 0x0000730d Thumb Code 220 app_cli.o(i.cliMemoryDump) + cliPrintf 0x0000748d Thumb Code 48 app_cli.o(i.cliPrintf) + cliShowList 0x00007535 Thumb Code 62 app_cli.o(i.cliShowList) + cli_AKM_Cmd 0x00007961 Thumb Code 444 app_cli.o(i.cli_AKM_Cmd) + fabs 0x00007c61 Thumb Code 24 fabs.o(i.fabs) + flash_erase_page 0x00007c79 Thumb Code 12 cammsys_flash.o(i.flash_erase_page) + flash_program_page 0x00007c85 Thumb Code 72 cammsys_flash.o(i.flash_program_page) + flash_verify 0x00007ccd Thumb Code 38 cammsys_flash.o(i.flash_verify) + fputc 0x00007cf5 Thumb Code 18 app_uart.o(i.fputc) + frexp 0x00007d11 Thumb Code 118 frexp.o(i.frexp) + main 0x00007d9d Thumb Code 88 main.o(i.main) + mxc_delay 0x00007e05 Thumb Code 116 mxc_delay.o(i.mxc_delay) + mxc_delay_check 0x00007e85 Thumb Code 72 mxc_delay.o(i.mxc_delay_check) + mxc_delay_handler 0x00007ed9 Thumb Code 76 mxc_delay.o(i.mxc_delay_handler) + mxc_delay_start 0x00007fe5 Thumb Code 72 mxc_delay.o(i.mxc_delay_start) + mxc_delay_stop 0x00008031 Thumb Code 20 mxc_delay.o(i.mxc_delay_stop) + mxc_free_lock 0x0000804d Thumb Code 10 mxc_lock.o(i.mxc_free_lock) + mxc_get_lock 0x00008057 Thumb Code 32 mxc_lock.o(i.mxc_get_lock) + sqrt 0x0000809d Thumb Code 110 sqrt.o(i.sqrt) + gpio_cfg_tmr0 0x0000815c Data 12 mxc_pins.o(.constdata) + gpio_cfg_uart0rtscts 0x00008168 Data 12 mxc_pins.o(.constdata) + gpio_cfg_uart0a 0x00008174 Data 12 mxc_pins.o(.constdata) + gpio_cfg_uart1rtscts 0x00008180 Data 12 mxc_pins.o(.constdata) + gpio_cfg_uart1a 0x0000818c Data 12 mxc_pins.o(.constdata) + gpio_cfg_uart1b 0x00008198 Data 12 mxc_pins.o(.constdata) + gpio_cfg_uart1c 0x000081a4 Data 12 mxc_pins.o(.constdata) + gpio_cfg_i2c0 0x000081b0 Data 12 mxc_pins.o(.constdata) + gpio_cfg_i2c1 0x000081bc Data 12 mxc_pins.o(.constdata) + gpio_cfg_spi17y 0x000081c8 Data 12 mxc_pins.o(.constdata) + gpio_cfg_spimss1a 0x000081d4 Data 12 mxc_pins.o(.constdata) + gpio_cfg_spimss1b 0x000081e0 Data 12 mxc_pins.o(.constdata) + gpio_cfg_i2s1a 0x000081ec Data 12 mxc_pins.o(.constdata) + gpio_cfg_i2s1b 0x000081f8 Data 12 mxc_pins.o(.constdata) + gpio_cfg_swd 0x00008204 Data 12 mxc_pins.o(.constdata) + gpio_cfg_rtc 0x00008210 Data 12 mxc_pins.o(.constdata) + FONTS 0x0000821c Data 480 ssd1306.o(.constdata) + INIT_SSD1306_ADAFRUIT 0x000083fc Data 44 ssd1306.o(.constdata) + INIT_SSD1306 0x00008428 Data 46 ssd1306.o(.constdata) + default_cntl_reg_data 0x00008456 Data 10 ak9757w.o(.constdata) + default_fcoef_reg_data 0x00008460 Data 15 ak9757w.o(.constdata) + default_gcoef_reg_data 0x0000846f Data 15 ak9757w.o(.constdata) + default_xcoef_reg_data 0x0000847e Data 15 ak9757w.o(.constdata) + default_gir_oir_gts_ots_git_reg_data 0x0000848d Data 10 ak9757w.o(.constdata) + gImage_background 0x00008596 Data 512 background.o(.constdata) + gImage_number 0x00008796 Data 1056 number.o(.constdata) + gImage_CAMMSYS_Log 0x00008bb6 Data 512 cammsys_log.o(.constdata) + __mathlib_zero 0x00008e40 Data 8 qnan.o(.constdata) + __ctype_table 0x00008e48 Data 129 ctype_o.o(.constdata) + Region$$Table$$Base 0x00008ed8 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x00008ef8 Number 0 anon$$obj.o(Region$$Table) oled_draw_before_temp 0x20000050 Data 2 app_oled.o(.data) SystemCoreClock 0x20000058 Data 4 system_max32660.o(.data) - __stderr 0x20000090 Data 4 stderr.o(.data) - cli_node 0x2000061c Data 1084 app_cli.o(.bss) - __initial_sp 0x20003038 Data 0 startup_max32660.o(STACK) + DataVar 0x20000090 Data 2 eeprom.o(.data) + __stderr 0x20000094 Data 4 stderr.o(.data) + __stdout 0x2000009c Data 4 stdout.o(.data) + cli_node 0x20000624 Data 1084 app_cli.o(.bss) + __initial_sp 0x20003058 Data 0 startup_max32660.o(STACK) @@ -2465,324 +2635,366 @@ Memory Map of the image Image Entry point : 0x0000011d - Load Region LR_IROM1 (Base: 0x00000000, Size: 0x0000799c, Max: 0x00080000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x00000000, Size: 0x00008f9c, Max: 0x00080000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x00000000, Load base: 0x00000000, Size: 0x00007900, Max: 0x00080000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x00000000, Load base: 0x00000000, Size: 0x00008ef8, Max: 0x00080000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x00000000 0x00000000 0x0000011c Data RO 1159 RESET startup_max32660.o - 0x0000011c 0x0000011c 0x00000000 Code RO 3616 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) - 0x0000011c 0x0000011c 0x00000004 Code RO 3952 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) - 0x00000120 0x00000120 0x00000004 Code RO 3617 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) - 0x00000124 0x00000124 0x00000000 Code RO 3956 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) - 0x00000124 0x00000124 0x00000000 Code RO 3958 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) - 0x00000124 0x00000124 0x00000008 Code RO 3959 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) - 0x0000012c 0x0000012c 0x00000004 Code RO 3966 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o) - 0x00000130 0x00000130 0x00000000 Code RO 3961 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o) - 0x00000130 0x00000130 0x00000000 Code RO 3963 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o) - 0x00000130 0x00000130 0x00000004 Code RO 3953 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) - 0x00000134 0x00000134 0x00000028 Code RO 1160 .text startup_max32660.o - 0x0000015c 0x0000015c 0x00000062 Code RO 3621 .text mc_w.l(uldiv.o) - 0x000001be 0x000001be 0x00000024 Code RO 3623 .text mc_w.l(memcpya.o) - 0x000001e2 0x000001e2 0x00000024 Code RO 3625 .text mc_w.l(memseta.o) - 0x00000206 0x00000206 0x0000001c Code RO 3627 .text mc_w.l(strcmp.o) - 0x00000222 0x00000222 0x00000012 Code RO 3629 .text mc_w.l(strcpy.o) - 0x00000234 0x00000234 0x00000044 Code RO 3631 .text mc_w.l(strtok_r.o) - 0x00000278 0x00000278 0x00000072 Code RO 3897 .text mc_w.l(strtoul.o) - 0x000002ea 0x000002ea 0x0000014e Code RO 3899 .text mf_w.l(dadd.o) - 0x00000438 0x00000438 0x000000e4 Code RO 3901 .text mf_w.l(dmul.o) - 0x0000051c 0x0000051c 0x000000de Code RO 3903 .text mf_w.l(ddiv.o) - 0x000005fa 0x000005fa 0x00000022 Code RO 3905 .text mf_w.l(dflti.o) - 0x0000061c 0x0000061c 0x0000001a Code RO 3907 .text mf_w.l(dfltui.o) - 0x00000636 0x00000636 0x00000032 Code RO 3909 .text mf_w.l(dfixui.o) - 0x00000668 0x00000668 0x00000026 Code RO 3911 .text mf_w.l(f2d.o) - 0x0000068e 0x0000068e 0x00000038 Code RO 3913 .text mf_w.l(d2f.o) - 0x000006c6 0x000006c6 0x00000002 PAD - 0x000006c8 0x000006c8 0x00000024 Code RO 3967 .text mc_w.l(init.o) - 0x000006ec 0x000006ec 0x0000002c Code RO 3970 .text mc_w.l(uidiv.o) - 0x00000718 0x00000718 0x0000001e Code RO 3972 .text mc_w.l(llshl.o) - 0x00000736 0x00000736 0x00000020 Code RO 3974 .text mc_w.l(llushr.o) - 0x00000756 0x00000756 0x00000024 Code RO 3976 .text mc_w.l(llsshr.o) - 0x0000077a 0x0000077a 0x00000002 PAD - 0x0000077c 0x0000077c 0x00000008 Code RO 3978 .text mc_w.l(ctype_o.o) - 0x00000784 0x00000784 0x00000012 Code RO 4000 .text mc_w.l(isspace_o.o) - 0x00000796 0x00000796 0x0000009e Code RO 4013 .text mc_w.l(_strtoul.o) - 0x00000834 0x00000834 0x0000001a Code RO 4015 .text mc_w.l(strtof.o) - 0x0000084e 0x0000084e 0x00000000 Code RO 4017 .text mc_w.l(iusefp.o) - 0x0000084e 0x0000084e 0x0000006e Code RO 4018 .text mf_w.l(fepilogue.o) - 0x000008bc 0x000008bc 0x000000ba Code RO 4020 .text mf_w.l(depilogue.o) - 0x00000976 0x00000976 0x0000002e Code RO 4024 .text mf_w.l(dscalb.o) - 0x000009a4 0x000009a4 0x00000030 Code RO 4026 .text mf_w.l(dfixul.o) - 0x000009d4 0x000009d4 0x00000030 Code RO 4028 .text mf_w.l(cdrcmple.o) - 0x00000a04 0x00000a04 0x0000001c Code RO 4038 .text mc_w.l(_chval.o) - 0x00000a20 0x00000a20 0x0000009c Code RO 4040 .text mc_w.l(strtod.o) - 0x00000abc 0x00000abc 0x000000a2 Code RO 4042 .text mf_w.l(dsqrt.o) - 0x00000b5e 0x00000b5e 0x00000002 PAD - 0x00000b60 0x00000b60 0x00000030 Code RO 4044 .text mf_w.l(cdcmple.o) - 0x00000b90 0x00000b90 0x00000360 Code RO 4054 .text mc_w.l(scanf_fp.o) - 0x00000ef0 0x00000ef0 0x00000040 Code RO 4058 .text mc_w.l(_sgetc.o) - 0x00000f30 0x00000f30 0x00000004 Code RO 4060 .text mf_w.l(fpstat.o) - 0x00000f34 0x00000f34 0x00000018 Code RO 4065 .text mf_w.l(dfltul.o) - 0x00000f4c 0x00000f4c 0x0000000c Code RO 1092 i.$Sub$$__main_after_scatterload system_max32660.o - 0x00000f58 0x00000f58 0x0000001a Code RO 3452 i.AK9757W_12BitTo16Bit ak9757w.o - 0x00000f72 0x00000f72 0x0000001a Code RO 3453 i.AK9757W_14BitTo16Bit ak9757w.o - 0x00000f8c 0x00000f8c 0x0000069c Code RO 3455 i.AK9757W_Calc_Parameter ak9757w.o - 0x00001628 0x00001628 0x000000f0 Code RO 3456 i.AK9757W_Check_CompanyCode ak9757w.o - 0x00001718 0x00001718 0x00000098 Code RO 3457 i.AK9757W_Get_SensorID ak9757w.o - 0x000017b0 0x000017b0 0x0000005c Code RO 3458 i.AK9757W_Get_Tout ak9757w.o - 0x0000180c 0x0000180c 0x0000002c Code RO 3459 i.AK9757W_Initialization ak9757w.o - 0x00001838 0x00001838 0x00000018 Code RO 3460 i.AK9757W_Next_Step ak9757w.o - 0x00001850 0x00001850 0x00000208 Code RO 3461 i.AK9757W_Process ak9757w.o - 0x00001a58 0x00001a58 0x0000020c Code RO 3462 i.AK9757W_Read_RawData ak9757w.o - 0x00001c64 0x00001c64 0x00000064 Code RO 3464 i.AK9757W_Set_CNTL1_9_Parameter ak9757w.o - 0x00001cc8 0x00001cc8 0x00000094 Code RO 3465 i.AK9757W_Set_FCOEF4_0_Parameter ak9757w.o - 0x00001d5c 0x00001d5c 0x00000094 Code RO 3466 i.AK9757W_Set_GCOEF4_0_Parameter ak9757w.o - 0x00001df0 0x00001df0 0x00000098 Code RO 3467 i.AK9757W_Set_IR_TS_IT_Parameter ak9757w.o - 0x00001e88 0x00001e88 0x000000e8 Code RO 3468 i.AK9757W_Set_Mode ak9757w.o - 0x00001f70 0x00001f70 0x00000094 Code RO 3469 i.AK9757W_Set_XCOEF4_0_Parameter ak9757w.o - 0x00002004 0x00002004 0x00000018 Code RO 808 i.App_CLI_Initialization app_cli.o - 0x0000201c 0x0000201c 0x00000018 Code RO 433 i.App_Gpio_I2C_Delay app_gpio_i2c.o - 0x00002034 0x00002034 0x00000044 Code RO 434 i.App_Gpio_I2C_Initialization app_gpio_i2c.o - 0x00002078 0x00002078 0x00000014 Code RO 435 i.App_Gpio_I2C_Port_H app_gpio_i2c.o - 0x0000208c 0x0000208c 0x0000001c Code RO 436 i.App_Gpio_I2C_Port_Input app_gpio_i2c.o - 0x000020a8 0x000020a8 0x00000014 Code RO 437 i.App_Gpio_I2C_Port_L app_gpio_i2c.o - 0x000020bc 0x000020bc 0x0000001e Code RO 438 i.App_Gpio_I2C_Port_Output app_gpio_i2c.o - 0x000020da 0x000020da 0x00000002 PAD - 0x000020dc 0x000020dc 0x00000020 Code RO 439 i.App_Gpio_I2C_Port_Read app_gpio_i2c.o - 0x000020fc 0x000020fc 0x00000034 Code RO 442 i.App_Gpio_I2C_Start app_gpio_i2c.o - 0x00002130 0x00002130 0x00000034 Code RO 443 i.App_Gpio_I2C_Stop app_gpio_i2c.o - 0x00002164 0x00002164 0x00000082 Code RO 445 i.App_Gpio_I2C_WriteData app_gpio_i2c.o - 0x000021e6 0x000021e6 0x00000002 PAD - 0x000021e8 0x000021e8 0x0000005c Code RO 390 i.App_Led_Initialization app_gpio_led.o - 0x00002244 0x00002244 0x00000028 Code RO 391 i.App_Led_Off app_gpio_led.o - 0x0000226c 0x0000226c 0x00000028 Code RO 392 i.App_Led_On app_gpio_led.o - 0x00002294 0x00002294 0x00000044 Code RO 393 i.App_Led_OutputSet app_gpio_led.o - 0x000022d8 0x000022d8 0x00000080 Code RO 394 i.App_Led_Output_Process app_gpio_led.o - 0x00002358 0x00002358 0x0000004c Code RO 770 i.App_Log_Prinf app_log.o - 0x000023a4 0x000023a4 0x00000038 Code RO 665 i.App_Uart_Data_Transmit_Check app_uart.o - 0x000023dc 0x000023dc 0x00000020 Code RO 667 i.App_Uart_Get_Recv_Data app_uart.o - 0x000023fc 0x000023fc 0x000000ec Code RO 668 i.App_Uart_Initialization app_uart.o - 0x000024e8 0x000024e8 0x00000010 Code RO 669 i.App_Uart_Interrupt_Handler app_uart.o - 0x000024f8 0x000024f8 0x00000020 Code RO 671 i.App_Uart_Read_Callback app_uart.o - 0x00002518 0x00002518 0x00000028 Code RO 672 i.App_Uart_Read_Callback_Initialization app_uart.o - 0x00002540 0x00002540 0x00000014 Code RO 673 i.App_Uart_Transmit app_uart.o - 0x00002554 0x00002554 0x0000001a Code RO 674 i.App_Uart_Transmit_Len app_uart.o - 0x0000256e 0x0000256e 0x00000004 Code RO 1093 i.Board_Init system_max32660.o - 0x00002572 0x00002572 0x0000000a Code RO 1018 i.GPIO0_IRQHandler app_gpio.o - 0x0000257c 0x0000257c 0x000000f8 Code RO 1344 i.GPIO_Config gpio.o - 0x00002674 0x00002674 0x00000064 Code RO 1345 i.GPIO_Handler gpio.o - 0x000026d8 0x000026d8 0x00000014 Code RO 1020 i.Gpio_Output_Clear app_gpio.o - 0x000026ec 0x000026ec 0x00000014 Code RO 1021 i.Gpio_Output_Set app_gpio.o - 0x00002700 0x00002700 0x0000000a Code RO 1023 i.Gpio_Port_Initialization app_gpio.o - 0x0000270a 0x0000270a 0x0000001e Code RO 1026 i.Gpio_Set_Port_Output app_gpio.o - 0x00002728 0x00002728 0x00000028 Code RO 1454 i.I2C_FreeCallback i2c.o - 0x00002750 0x00002750 0x00000180 Code RO 1456 i.I2C_Init i2c.o - 0x000028d0 0x000028d0 0x000000e4 Code RO 1459 i.I2C_MasterRead i2c.o - 0x000029b4 0x000029b4 0x000000f2 Code RO 1460 i.I2C_MasterWrite i2c.o - 0x00002aa6 0x00002aa6 0x00000002 PAD - 0x00002aa8 0x00002aa8 0x00000010 Code RO 530 i.I2C_Master_Handler app_i2c_master.o - 0x00002ab8 0x00002ab8 0x00000094 Code RO 531 i.I2C_Master_Initialization app_i2c_master.o - 0x00002b4c 0x00002b4c 0x00000054 Code RO 532 i.I2C_Master_Read app_i2c_master.o - 0x00002ba0 0x00002ba0 0x00000050 Code RO 533 i.I2C_Master_Write app_i2c_master.o - 0x00002bf0 0x00002bf0 0x00000094 Code RO 534 i.I2C_Master_WriteRead app_i2c_master.o - 0x00002c84 0x00002c84 0x00000018 Code RO 1461 i.I2C_Recover i2c.o - 0x00002c9c 0x00002c9c 0x00000030 Code RO 1462 i.I2C_SetTimeout i2c.o - 0x00002ccc 0x00002ccc 0x000000f8 Code RO 1463 i.I2C_Setspeed i2c.o - 0x00002dc4 0x00002dc4 0x00000078 Code RO 1464 i.I2C_Shutdown i2c.o - 0x00002e3c 0x00002e3c 0x00000030 Code RO 1660 i.ICC_Enable icc.o - 0x00002e6c 0x00002e6c 0x00000010 Code RO 1663 i.ICC_Ready icc.o - 0x00002e7c 0x00002e7c 0x000000f0 Code RO 1757 i.LP_SetOperatingVoltage lp.o - 0x00002f6c 0x00002f6c 0x00000018 Code RO 535 i.NVIC_ClearPendingIRQ app_i2c_master.o - 0x00002f84 0x00002f84 0x00000018 Code RO 675 i.NVIC_ClearPendingIRQ app_uart.o - 0x00002f9c 0x00002f9c 0x00000018 Code RO 536 i.NVIC_DisableIRQ app_i2c_master.o - 0x00002fb4 0x00002fb4 0x00000018 Code RO 676 i.NVIC_DisableIRQ app_uart.o - 0x00002fcc 0x00002fcc 0x00000016 Code RO 232 i.NVIC_EnableIRQ system_func.o - 0x00002fe2 0x00002fe2 0x00000016 Code RO 537 i.NVIC_EnableIRQ app_i2c_master.o - 0x00002ff8 0x00002ff8 0x00000016 Code RO 677 i.NVIC_EnableIRQ app_uart.o - 0x0000300e 0x0000300e 0x00000002 PAD - 0x00003010 0x00003010 0x00000024 Code RO 2411 i.NVIC_SetRAM nvic_table.o - 0x00003034 0x00003034 0x00000040 Code RO 2412 i.NVIC_SetVector nvic_table.o - 0x00003074 0x00003074 0x00000024 Code RO 972 i.Oled_Initialization app_oled.o - 0x00003098 0x00003098 0x00000018 Code RO 973 i.Oled_Next_Step app_oled.o - 0x000030b0 0x000030b0 0x00000204 Code RO 974 i.Oled_Process app_oled.o - 0x000032b4 0x000032b4 0x0000002c Code RO 975 i.Oled_SetTemperature app_oled.o - 0x000032e0 0x000032e0 0x00000004 Code RO 1094 i.PreInit system_max32660.o - 0x000032e4 0x000032e4 0x00000040 Code RO 595 i.RingBuffer_Dequeue app_ring_buffer.o - 0x00003324 0x00003324 0x00000042 Code RO 596 i.RingBuffer_Enqueue app_ring_buffer.o - 0x00003366 0x00003366 0x0000000e Code RO 597 i.RingBuffer_GetData app_ring_buffer.o - 0x00003374 0x00003374 0x00000030 Code RO 598 i.RingBuffer_Get_DataSize app_ring_buffer.o - 0x000033a4 0x000033a4 0x00000020 Code RO 599 i.RingBuffer_Initialization app_ring_buffer.o - 0x000033c4 0x000033c4 0x00000028 Code RO 600 i.RingBuffer_PopData app_ring_buffer.o - 0x000033ec 0x000033ec 0x00000010 Code RO 601 i.RingBuffer_isEmpty app_ring_buffer.o - 0x000033fc 0x000033fc 0x00000022 Code RO 602 i.RingBuffer_isFull app_ring_buffer.o - 0x0000341e 0x0000341e 0x00000002 PAD - 0x00003420 0x00003420 0x00000014 Code RO 3269 i.SSD1306_ClearScreen ssd1306.o - 0x00003434 0x00003434 0x0000001c Code RO 3270 i.SSD1306_DrawBackGround ssd1306.o - 0x00003450 0x00003450 0x0000004c Code RO 3271 i.SSD1306_DrawBackGround_LeftShift ssd1306.o - 0x0000349c 0x0000349c 0x0000001c Code RO 3272 i.SSD1306_DrawBackGround_Log ssd1306.o - 0x000034b8 0x000034b8 0x00000264 Code RO 3277 i.SSD1306_Draw_Temperature ssd1306.o - 0x0000371c 0x0000371c 0x00000070 Code RO 3278 i.SSD1306_Init ssd1306.o - 0x0000378c 0x0000378c 0x00000032 Code RO 3279 i.SSD1306_InverseScreen ssd1306.o - 0x000037be 0x000037be 0x00000032 Code RO 3280 i.SSD1306_NormalScreen ssd1306.o - 0x000037f0 0x000037f0 0x0000002e Code RO 3281 i.SSD1306_Send_Command ssd1306.o - 0x0000381e 0x0000381e 0x0000002c Code RO 3282 i.SSD1306_Send_StartAndSLAW ssd1306.o - 0x0000384a 0x0000384a 0x00000002 PAD - 0x0000384c 0x0000384c 0x00000090 Code RO 3285 i.SSD1306_UpdateScreen ssd1306.o - 0x000038dc 0x000038dc 0x000000a8 Code RO 284 i.SW_Timer_Callback_Process sw_timer.o - 0x00003984 0x00003984 0x00000068 Code RO 285 i.SW_Timer_Callback_Register sw_timer.o - 0x000039ec 0x000039ec 0x0000002a Code RO 2163 i.SYS_ClockDisable mxc_sys.o - 0x00003a16 0x00003a16 0x0000002a Code RO 2165 i.SYS_ClockEnable mxc_sys.o - 0x00003a40 0x00003a40 0x00000234 Code RO 2167 i.SYS_Clock_Select mxc_sys.o - 0x00003c74 0x00003c74 0x0000002e Code RO 2168 i.SYS_Clock_Timeout mxc_sys.o - 0x00003ca2 0x00003ca2 0x00000002 PAD - 0x00003ca4 0x00003ca4 0x00000010 Code RO 2174 i.SYS_I2C_GetFreq mxc_sys.o - 0x00003cb4 0x00003cb4 0x0000004c Code RO 2175 i.SYS_I2C_Init mxc_sys.o - 0x00003d00 0x00003d00 0x00000074 Code RO 2176 i.SYS_I2C_Shutdown mxc_sys.o - 0x00003d74 0x00003d74 0x0000005c Code RO 2193 i.SYS_TMR_Init mxc_sys.o - 0x00003dd0 0x00003dd0 0x0000009c Code RO 2195 i.SYS_UART_Init mxc_sys.o - 0x00003e6c 0x00003e6c 0x00000008 Code RO 2058 i.SysTick_Handler mxc_delay.o - 0x00003e74 0x00003e74 0x00000054 Code RO 233 i.SystemCoreClockSet system_func.o - 0x00003ec8 0x00003ec8 0x00000064 Code RO 1095 i.SystemCoreClockUpdate system_max32660.o - 0x00003f2c 0x00003f2c 0x00000094 Code RO 1096 i.SystemInit system_max32660.o - 0x00003fc0 0x00003fc0 0x00000088 Code RO 234 i.SystemTimerInitialization system_func.o - 0x00004048 0x00004048 0x00000018 Code RO 235 i.SystemTimer_GetPeriodCount system_func.o - 0x00004060 0x00004060 0x0000000c Code RO 236 i.SystemTimer_Get_TickCount system_func.o - 0x0000406c 0x0000406c 0x0000001c Code RO 237 i.SystemTimer_Interrput_Handler system_func.o - 0x00004088 0x00004088 0x0000002a Code RO 2849 i.TMR_Config tmr.o - 0x000040b2 0x000040b2 0x0000000a Code RO 2850 i.TMR_Disable tmr.o - 0x000040bc 0x000040bc 0x0000000a Code RO 2851 i.TMR_Enable tmr.o - 0x000040c6 0x000040c6 0x0000002a Code RO 2857 i.TMR_Init tmr.o - 0x000040f0 0x000040f0 0x00000006 Code RO 2858 i.TMR_IntClear tmr.o - 0x000040f6 0x000040f6 0x00000016 Code RO 3406 i.TWI_MT_Send_Data ssd1306_i2c.o - 0x0000410c 0x0000410c 0x00000018 Code RO 3407 i.TWI_MT_Send_SLAW ssd1306_i2c.o - 0x00004124 0x00004124 0x0000000a Code RO 3408 i.TWI_MT_Start ssd1306_i2c.o - 0x0000412e 0x0000412e 0x00000008 Code RO 3409 i.TWI_Stop ssd1306_i2c.o - 0x00004136 0x00004136 0x00000002 Code RO 3 i.Test_Process main.o - 0x00004138 0x00004138 0x00000058 Code RO 3034 i.UART_Busy uart.o - 0x00004190 0x00004190 0x00000004 Code RO 3035 i.UART_ClearFlags uart.o - 0x00004194 0x00004194 0x00000068 Code RO 3041 i.UART_Handler uart.o - 0x000041fc 0x000041fc 0x000000dc Code RO 3042 i.UART_Init uart.o - 0x000042d8 0x000042d8 0x0000000a Code RO 3043 i.UART_NumReadAvail uart.o - 0x000042e2 0x000042e2 0x0000000e Code RO 3044 i.UART_NumWriteAvail uart.o - 0x000042f0 0x000042f0 0x000000a4 Code RO 3047 i.UART_ReadAsync uart.o - 0x00004394 0x00004394 0x000000d0 Code RO 3049 i.UART_ReadHandler uart.o - 0x00004464 0x00004464 0x00000010 Code RO 3053 i.UART_WriteByte uart.o - 0x00004474 0x00004474 0x00000088 Code RO 3054 i.UART_WriteHandler uart.o - 0x000044fc 0x000044fc 0x0000001c Code RO 3868 i.__0fprintf mc_w.l(printfa.o) - 0x00004518 0x00004518 0x00000018 Code RO 3872 i.__0vfprintf mc_w.l(printfa.o) - 0x00004530 0x00004530 0x00000034 Code RO 3874 i.__0vsnprintf mc_w.l(printfa.o) - 0x00004564 0x00004564 0x00000030 Code RO 3935 i.__ARM_fpclassify m_wm.l(fpclassify.o) - 0x00004594 0x00004594 0x00000008 Code RO 4006 i.__aeabi_errno_addr mc_w.l(errno.o) - 0x0000459c 0x0000459c 0x00000004 PAD - 0x000045a0 0x000045a0 0x000000f8 Code RO 4030 i.__hardfp___mathlib_tofloat m_wm.l(narrow.o) - 0x00004698 0x00004698 0x00000c50 Code RO 3596 i.__hardfp_pow m_wm.l(pow.o) - 0x000052e8 0x000052e8 0x00000020 Code RO 3610 i.__hardfp_strtof m_wm.l(strtof.o) - 0x00005308 0x00005308 0x000000f8 Code RO 3937 i.__kernel_poly m_wm.l(poly.o) - 0x00005400 0x00005400 0x00000030 Code RO 3915 i.__mathlib_dbl_divzero m_wm.l(dunder.o) - 0x00005430 0x00005430 0x00000014 Code RO 3917 i.__mathlib_dbl_infnan2 m_wm.l(dunder.o) - 0x00005444 0x00005444 0x00000004 PAD - 0x00005448 0x00005448 0x00000020 Code RO 3918 i.__mathlib_dbl_invalid m_wm.l(dunder.o) - 0x00005468 0x00005468 0x00000020 Code RO 3919 i.__mathlib_dbl_overflow m_wm.l(dunder.o) - 0x00005488 0x00005488 0x00000020 Code RO 3921 i.__mathlib_dbl_underflow m_wm.l(dunder.o) - 0x000054a8 0x000054a8 0x00000012 Code RO 4031 i.__mathlib_narrow m_wm.l(narrow.o) - 0x000054ba 0x000054ba 0x0000000e Code RO 4069 i.__scatterload_copy mc_w.l(handlers.o) - 0x000054c8 0x000054c8 0x00000002 Code RO 4070 i.__scatterload_null mc_w.l(handlers.o) - 0x000054ca 0x000054ca 0x0000000e Code RO 4071 i.__scatterload_zeroinit mc_w.l(handlers.o) - 0x000054d8 0x000054d8 0x0000000c Code RO 4008 i.__set_errno mc_w.l(errno.o) - 0x000054e4 0x000054e4 0x00000184 Code RO 3876 i._fp_digits mc_w.l(printfa.o) - 0x00005668 0x00005668 0x0000000e Code RO 4056 i._is_digit mc_w.l(scanf_fp.o) - 0x00005676 0x00005676 0x00000002 PAD - 0x00005678 0x00005678 0x000006b4 Code RO 3877 i._printf_core mc_w.l(printfa.o) - 0x00005d2c 0x00005d2c 0x00000024 Code RO 3878 i._printf_post_padding mc_w.l(printfa.o) - 0x00005d50 0x00005d50 0x0000002e Code RO 3879 i._printf_pre_padding mc_w.l(printfa.o) - 0x00005d7e 0x00005d7e 0x00000016 Code RO 3880 i._snputc mc_w.l(printfa.o) - 0x00005d94 0x00005d94 0x00000064 Code RO 809 i.cliAdd app_cli.o - 0x00005df8 0x00005df8 0x00000030 Code RO 810 i.cliArgsGetData app_cli.o - 0x00005e28 0x00005e28 0x00000048 Code RO 811 i.cliArgsGetFloat app_cli.o - 0x00005e70 0x00005e70 0x00000024 Code RO 812 i.cliArgsGetStr app_cli.o - 0x00005e94 0x00005e94 0x00000038 Code RO 813 i.cliArgsIsStr app_cli.o - 0x00005ecc 0x00005ecc 0x00000078 Code RO 815 i.cliInit app_cli.o - 0x00005f44 0x00005f44 0x00000058 Code RO 817 i.cliLineAdd app_cli.o - 0x00005f9c 0x00005f9c 0x000000c4 Code RO 818 i.cliLineChange app_cli.o - 0x00006060 0x00006060 0x00000018 Code RO 819 i.cliLineClean app_cli.o - 0x00006078 0x00006078 0x0000001c Code RO 820 i.cliMain app_cli.o - 0x00006094 0x00006094 0x00000120 Code RO 821 i.cliMemoryDump app_cli.o - 0x000061b4 0x000061b4 0x00000060 Code RO 822 i.cliParseArgs app_cli.o - 0x00006214 0x00006214 0x00000034 Code RO 823 i.cliPrintf app_cli.o - 0x00006248 0x00006248 0x00000074 Code RO 825 i.cliRunCmd app_cli.o - 0x000062bc 0x000062bc 0x00000088 Code RO 826 i.cliShowList app_cli.o - 0x00006344 0x00006344 0x00000020 Code RO 828 i.cliShowPrompt app_cli.o - 0x00006364 0x00006364 0x00000034 Code RO 829 i.cliToUpper app_cli.o - 0x00006398 0x00006398 0x00000350 Code RO 830 i.cliUpdate app_cli.o - 0x000066e8 0x000066e8 0x00000018 Code RO 3931 i.fabs m_wm.l(fabs.o) - 0x00006700 0x00006700 0x00000018 Code RO 678 i.fputc app_uart.o - 0x00006718 0x00006718 0x0000008c Code RO 4048 i.frexp m_wm.l(frexp.o) - 0x000067a4 0x000067a4 0x00000064 Code RO 4 i.main main.o - 0x00006808 0x00006808 0x00000080 Code RO 2059 i.mxc_delay mxc_delay.o - 0x00006888 0x00006888 0x00000054 Code RO 2060 i.mxc_delay_check mxc_delay.o - 0x000068dc 0x000068dc 0x00000058 Code RO 2061 i.mxc_delay_handler mxc_delay.o - 0x00006934 0x00006934 0x000000b4 Code RO 2062 i.mxc_delay_init mxc_delay.o - 0x000069e8 0x000069e8 0x0000004c Code RO 2063 i.mxc_delay_start mxc_delay.o - 0x00006a34 0x00006a34 0x0000001c Code RO 2064 i.mxc_delay_stop mxc_delay.o - 0x00006a50 0x00006a50 0x0000000a Code RO 2115 i.mxc_free_lock mxc_lock.o - 0x00006a5a 0x00006a5a 0x00000020 Code RO 2116 i.mxc_get_lock mxc_lock.o - 0x00006a7a 0x00006a7a 0x00000026 Code RO 3286 i.reverse_bits ssd1306.o - 0x00006aa0 0x00006aa0 0x0000006e Code RO 3942 i.sqrt m_wm.l(sqrt.o) - 0x00006b0e 0x00006b0e 0x00000030 Code RO 832 i.uartPrintf app_cli.o - 0x00006b3e 0x00006b3e 0x00000012 Code RO 833 i.uartWrite app_cli.o - 0x00006b50 0x00006b50 0x0000000d Data RO 977 .constdata app_oled.o - 0x00006b5d 0x00006b5d 0x00000003 PAD - 0x00006b60 0x00006b60 0x000000c0 Data RO 2141 .constdata mxc_pins.o - 0x00006c20 0x00006c20 0x0000023a Data RO 3288 .constdata ssd1306.o - 0x00006e5a 0x00006e5a 0x00000140 Data RO 3472 .constdata ak9757w.o - 0x00006f9a 0x00006f9a 0x00000200 Data RO 3572 .constdata background.o - 0x0000719a 0x0000719a 0x00000420 Data RO 3580 .constdata number.o - 0x000075ba 0x000075ba 0x00000200 Data RO 3588 .constdata cammsys_log.o - 0x000077ba 0x000077ba 0x00000006 PAD - 0x000077c0 0x000077c0 0x00000088 Data RO 3599 .constdata m_wm.l(pow.o) - 0x00007848 0x00007848 0x00000008 Data RO 3939 .constdata m_wm.l(qnan.o) - 0x00007850 0x00007850 0x00000081 Data RO 3979 .constdata mc_w.l(ctype_o.o) - 0x000078d1 0x000078d1 0x00000003 PAD - 0x000078d4 0x000078d4 0x00000004 Data RO 3980 .constdata mc_w.l(ctype_o.o) - 0x000078d8 0x000078d8 0x00000007 Data RO 835 .conststring app_cli.o - 0x000078df 0x000078df 0x00000001 PAD - 0x000078e0 0x000078e0 0x00000020 Data RO 4067 Region$$Table anon$$obj.o + 0x00000000 0x00000000 0x0000011c Data RO 1171 RESET startup_max32660.o + 0x0000011c 0x0000011c 0x00000000 Code RO 3866 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) + 0x0000011c 0x0000011c 0x00000004 Code RO 4202 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) + 0x00000120 0x00000120 0x00000004 Code RO 3867 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) + 0x00000124 0x00000124 0x00000000 Code RO 4206 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) + 0x00000124 0x00000124 0x00000000 Code RO 4208 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) + 0x00000124 0x00000124 0x00000008 Code RO 4209 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) + 0x0000012c 0x0000012c 0x00000004 Code RO 4216 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o) + 0x00000130 0x00000130 0x00000000 Code RO 4211 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o) + 0x00000130 0x00000130 0x00000000 Code RO 4213 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o) + 0x00000130 0x00000130 0x00000004 Code RO 4203 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) + 0x00000134 0x00000134 0x000004e8 Code RO 1300 .flashprog flc.o + 0x0000061c 0x0000061c 0x00000028 Code RO 1172 .text startup_max32660.o + 0x00000644 0x00000644 0x00000062 Code RO 3871 .text mc_w.l(uldiv.o) + 0x000006a6 0x000006a6 0x00000024 Code RO 3873 .text mc_w.l(memcpya.o) + 0x000006ca 0x000006ca 0x00000024 Code RO 3875 .text mc_w.l(memseta.o) + 0x000006ee 0x000006ee 0x0000001c Code RO 3877 .text mc_w.l(strcmp.o) + 0x0000070a 0x0000070a 0x00000012 Code RO 3879 .text mc_w.l(strcpy.o) + 0x0000071c 0x0000071c 0x00000044 Code RO 3881 .text mc_w.l(strtok_r.o) + 0x00000760 0x00000760 0x00000072 Code RO 4147 .text mc_w.l(strtoul.o) + 0x000007d2 0x000007d2 0x0000014e Code RO 4149 .text mf_w.l(dadd.o) + 0x00000920 0x00000920 0x000000e4 Code RO 4151 .text mf_w.l(dmul.o) + 0x00000a04 0x00000a04 0x000000de Code RO 4153 .text mf_w.l(ddiv.o) + 0x00000ae2 0x00000ae2 0x00000022 Code RO 4155 .text mf_w.l(dflti.o) + 0x00000b04 0x00000b04 0x0000001a Code RO 4157 .text mf_w.l(dfltui.o) + 0x00000b1e 0x00000b1e 0x00000032 Code RO 4159 .text mf_w.l(dfixui.o) + 0x00000b50 0x00000b50 0x00000026 Code RO 4161 .text mf_w.l(f2d.o) + 0x00000b76 0x00000b76 0x00000038 Code RO 4163 .text mf_w.l(d2f.o) + 0x00000bae 0x00000bae 0x00000002 PAD + 0x00000bb0 0x00000bb0 0x00000024 Code RO 4217 .text mc_w.l(init.o) + 0x00000bd4 0x00000bd4 0x0000002c Code RO 4220 .text mc_w.l(uidiv.o) + 0x00000c00 0x00000c00 0x0000001e Code RO 4222 .text mc_w.l(llshl.o) + 0x00000c1e 0x00000c1e 0x00000020 Code RO 4224 .text mc_w.l(llushr.o) + 0x00000c3e 0x00000c3e 0x00000024 Code RO 4226 .text mc_w.l(llsshr.o) + 0x00000c62 0x00000c62 0x00000002 PAD + 0x00000c64 0x00000c64 0x00000008 Code RO 4228 .text mc_w.l(ctype_o.o) + 0x00000c6c 0x00000c6c 0x00000012 Code RO 4250 .text mc_w.l(isspace_o.o) + 0x00000c7e 0x00000c7e 0x0000009e Code RO 4263 .text mc_w.l(_strtoul.o) + 0x00000d1c 0x00000d1c 0x0000001a Code RO 4265 .text mc_w.l(strtof.o) + 0x00000d36 0x00000d36 0x00000000 Code RO 4267 .text mc_w.l(iusefp.o) + 0x00000d36 0x00000d36 0x0000006e Code RO 4268 .text mf_w.l(fepilogue.o) + 0x00000da4 0x00000da4 0x000000ba Code RO 4270 .text mf_w.l(depilogue.o) + 0x00000e5e 0x00000e5e 0x0000002e Code RO 4274 .text mf_w.l(dscalb.o) + 0x00000e8c 0x00000e8c 0x00000030 Code RO 4276 .text mf_w.l(dfixul.o) + 0x00000ebc 0x00000ebc 0x00000030 Code RO 4278 .text mf_w.l(cdrcmple.o) + 0x00000eec 0x00000eec 0x0000001c Code RO 4288 .text mc_w.l(_chval.o) + 0x00000f08 0x00000f08 0x0000009c Code RO 4290 .text mc_w.l(strtod.o) + 0x00000fa4 0x00000fa4 0x000000a2 Code RO 4292 .text mf_w.l(dsqrt.o) + 0x00001046 0x00001046 0x00000002 PAD + 0x00001048 0x00001048 0x00000030 Code RO 4294 .text mf_w.l(cdcmple.o) + 0x00001078 0x00001078 0x00000360 Code RO 4304 .text mc_w.l(scanf_fp.o) + 0x000013d8 0x000013d8 0x00000040 Code RO 4308 .text mc_w.l(_sgetc.o) + 0x00001418 0x00001418 0x00000004 Code RO 4310 .text mf_w.l(fpstat.o) + 0x0000141c 0x0000141c 0x00000018 Code RO 4315 .text mf_w.l(dfltul.o) + 0x00001434 0x00001434 0x0000000c Code RO 1104 i.$Sub$$__main_after_scatterload system_max32660.o + 0x00001440 0x00001440 0x0000001a Code RO 3464 i.AK9757W_12BitTo16Bit ak9757w.o + 0x0000145a 0x0000145a 0x0000001a Code RO 3465 i.AK9757W_14BitTo16Bit ak9757w.o + 0x00001474 0x00001474 0x0000069c Code RO 3467 i.AK9757W_Calc_Parameter ak9757w.o + 0x00001b10 0x00001b10 0x000000f0 Code RO 3468 i.AK9757W_Check_CompanyCode ak9757w.o + 0x00001c00 0x00001c00 0x00000024 Code RO 3469 i.AK9757W_DeleteParameter ak9757w.o + 0x00001c24 0x00001c24 0x000000a0 Code RO 3470 i.AK9757W_DispalyParameter ak9757w.o + 0x00001cc4 0x00001cc4 0x0000000c Code RO 3471 i.AK9757W_GetID ak9757w.o + 0x00001cd0 0x00001cd0 0x00000098 Code RO 3472 i.AK9757W_Get_SensorID ak9757w.o + 0x00001d68 0x00001d68 0x0000005c Code RO 3473 i.AK9757W_Get_Tout ak9757w.o + 0x00001dc4 0x00001dc4 0x00000034 Code RO 3474 i.AK9757W_Initialization ak9757w.o + 0x00001df8 0x00001df8 0x00000018 Code RO 3475 i.AK9757W_Next_Step ak9757w.o + 0x00001e10 0x00001e10 0x00000218 Code RO 3476 i.AK9757W_Process ak9757w.o + 0x00002028 0x00002028 0x00000038 Code RO 3477 i.AK9757W_ReadReg ak9757w.o + 0x00002060 0x00002060 0x0000020c Code RO 3478 i.AK9757W_Read_RawData ak9757w.o + 0x0000226c 0x0000226c 0x000000b8 Code RO 3479 i.AK9757W_SaveParameter ak9757w.o + 0x00002324 0x00002324 0x00000064 Code RO 3481 i.AK9757W_Set_CNTL1_9_Parameter ak9757w.o + 0x00002388 0x00002388 0x00000094 Code RO 3482 i.AK9757W_Set_FCOEF4_0_Parameter ak9757w.o + 0x0000241c 0x0000241c 0x00000094 Code RO 3483 i.AK9757W_Set_GCOEF4_0_Parameter ak9757w.o + 0x000024b0 0x000024b0 0x00000144 Code RO 3484 i.AK9757W_Set_IR_TS_IT_Parameter ak9757w.o + 0x000025f4 0x000025f4 0x000000e8 Code RO 3485 i.AK9757W_Set_Mode ak9757w.o + 0x000026dc 0x000026dc 0x00000094 Code RO 3486 i.AK9757W_Set_XCOEF4_0_Parameter ak9757w.o + 0x00002770 0x00002770 0x00000040 Code RO 3487 i.AK9757W_Start_Stop ak9757w.o + 0x000027b0 0x000027b0 0x00000024 Code RO 3488 i.AK9757W_UpdateTime ak9757w.o + 0x000027d4 0x000027d4 0x00000038 Code RO 3489 i.AK9757W_WriteReg ak9757w.o + 0x0000280c 0x0000280c 0x00000018 Code RO 814 i.App_CLI_Initialization app_cli.o + 0x00002824 0x00002824 0x00000018 Code RO 439 i.App_Gpio_I2C_Delay app_gpio_i2c.o + 0x0000283c 0x0000283c 0x00000044 Code RO 440 i.App_Gpio_I2C_Initialization app_gpio_i2c.o + 0x00002880 0x00002880 0x00000014 Code RO 441 i.App_Gpio_I2C_Port_H app_gpio_i2c.o + 0x00002894 0x00002894 0x0000001c Code RO 442 i.App_Gpio_I2C_Port_Input app_gpio_i2c.o + 0x000028b0 0x000028b0 0x00000014 Code RO 443 i.App_Gpio_I2C_Port_L app_gpio_i2c.o + 0x000028c4 0x000028c4 0x0000001e Code RO 444 i.App_Gpio_I2C_Port_Output app_gpio_i2c.o + 0x000028e2 0x000028e2 0x00000002 PAD + 0x000028e4 0x000028e4 0x00000020 Code RO 445 i.App_Gpio_I2C_Port_Read app_gpio_i2c.o + 0x00002904 0x00002904 0x00000034 Code RO 448 i.App_Gpio_I2C_Start app_gpio_i2c.o + 0x00002938 0x00002938 0x00000034 Code RO 449 i.App_Gpio_I2C_Stop app_gpio_i2c.o + 0x0000296c 0x0000296c 0x00000082 Code RO 451 i.App_Gpio_I2C_WriteData app_gpio_i2c.o + 0x000029ee 0x000029ee 0x00000002 PAD + 0x000029f0 0x000029f0 0x0000005c Code RO 396 i.App_Led_Initialization app_gpio_led.o + 0x00002a4c 0x00002a4c 0x00000028 Code RO 397 i.App_Led_Off app_gpio_led.o + 0x00002a74 0x00002a74 0x00000028 Code RO 398 i.App_Led_On app_gpio_led.o + 0x00002a9c 0x00002a9c 0x00000044 Code RO 399 i.App_Led_OutputSet app_gpio_led.o + 0x00002ae0 0x00002ae0 0x00000080 Code RO 400 i.App_Led_Output_Process app_gpio_led.o + 0x00002b60 0x00002b60 0x0000004c Code RO 776 i.App_Log_Prinf app_log.o + 0x00002bac 0x00002bac 0x00000038 Code RO 671 i.App_Uart_Data_Transmit_Check app_uart.o + 0x00002be4 0x00002be4 0x00000020 Code RO 673 i.App_Uart_Get_Recv_Data app_uart.o + 0x00002c04 0x00002c04 0x000000ec Code RO 674 i.App_Uart_Initialization app_uart.o + 0x00002cf0 0x00002cf0 0x00000010 Code RO 675 i.App_Uart_Interrupt_Handler app_uart.o + 0x00002d00 0x00002d00 0x00000020 Code RO 677 i.App_Uart_Read_Callback app_uart.o + 0x00002d20 0x00002d20 0x00000028 Code RO 678 i.App_Uart_Read_Callback_Initialization app_uart.o + 0x00002d48 0x00002d48 0x00000014 Code RO 679 i.App_Uart_Transmit app_uart.o + 0x00002d5c 0x00002d5c 0x0000001a Code RO 680 i.App_Uart_Transmit_Len app_uart.o + 0x00002d76 0x00002d76 0x00000004 Code RO 1105 i.Board_Init system_max32660.o + 0x00002d7a 0x00002d7a 0x00000050 Code RO 3730 i.EE_FindValidPage eeprom.o + 0x00002dca 0x00002dca 0x0000004c Code RO 3731 i.EE_Format eeprom.o + 0x00002e16 0x00002e16 0x00000002 PAD + 0x00002e18 0x00002e18 0x00000204 Code RO 3732 i.EE_Init eeprom.o + 0x0000301c 0x0000301c 0x000000c4 Code RO 3733 i.EE_PageTransfer eeprom.o + 0x000030e0 0x000030e0 0x00000068 Code RO 3734 i.EE_ReadVariable eeprom.o + 0x00003148 0x00003148 0x0000004a Code RO 3735 i.EE_Transfer_ReadVariable eeprom.o + 0x00003192 0x00003192 0x00000040 Code RO 3736 i.EE_Transfer_Write_Variable eeprom.o + 0x000031d2 0x000031d2 0x00000002 PAD + 0x000031d4 0x000031d4 0x00000064 Code RO 3737 i.EE_VerifyPageFullWriteVariable eeprom.o + 0x00003238 0x00003238 0x0000003c Code RO 3738 i.EE_VerifyPageFullyErased eeprom.o + 0x00003274 0x00003274 0x00000014 Code RO 3739 i.EE_WriteData eeprom.o + 0x00003288 0x00003288 0x00000024 Code RO 3740 i.EE_WriteVariable eeprom.o + 0x000032ac 0x000032ac 0x00000026 Code RO 3810 i.Eeprom_Get_Parameter eeprom_address.o + 0x000032d2 0x000032d2 0x00000008 Code RO 3811 i.Eeprom_Initialization eeprom_address.o + 0x000032da 0x000032da 0x00000020 Code RO 3812 i.Eeprom_Save_Parameter eeprom_address.o + 0x000032fa 0x000032fa 0x0000000e Code RO 3657 i.Flash_Initialization cammsys_flash.o + 0x00003308 0x00003308 0x0000002c Code RO 3658 i.Flash_Write cammsys_flash.o + 0x00003334 0x00003334 0x0000000a Code RO 1030 i.GPIO0_IRQHandler app_gpio.o + 0x0000333e 0x0000333e 0x00000002 PAD + 0x00003340 0x00003340 0x000000f8 Code RO 1356 i.GPIO_Config gpio.o + 0x00003438 0x00003438 0x00000064 Code RO 1357 i.GPIO_Handler gpio.o + 0x0000349c 0x0000349c 0x00000014 Code RO 1032 i.Gpio_Output_Clear app_gpio.o + 0x000034b0 0x000034b0 0x00000014 Code RO 1033 i.Gpio_Output_Set app_gpio.o + 0x000034c4 0x000034c4 0x0000000a Code RO 1035 i.Gpio_Port_Initialization app_gpio.o + 0x000034ce 0x000034ce 0x0000001e Code RO 1038 i.Gpio_Set_Port_Output app_gpio.o + 0x000034ec 0x000034ec 0x00000028 Code RO 1466 i.I2C_FreeCallback i2c.o + 0x00003514 0x00003514 0x00000028 Code RO 1467 i.I2C_Handler i2c.o + 0x0000353c 0x0000353c 0x00000180 Code RO 1468 i.I2C_Init i2c.o + 0x000036bc 0x000036bc 0x0000021c Code RO 1470 i.I2C_MasterHandler i2c.o + 0x000038d8 0x000038d8 0x000000e4 Code RO 1471 i.I2C_MasterRead i2c.o + 0x000039bc 0x000039bc 0x000000f2 Code RO 1472 i.I2C_MasterWrite i2c.o + 0x00003aae 0x00003aae 0x00000002 PAD + 0x00003ab0 0x00003ab0 0x00000010 Code RO 536 i.I2C_Master_Handler app_i2c_master.o + 0x00003ac0 0x00003ac0 0x00000098 Code RO 537 i.I2C_Master_Initialization app_i2c_master.o + 0x00003b58 0x00003b58 0x0000004c Code RO 538 i.I2C_Master_Read app_i2c_master.o + 0x00003ba4 0x00003ba4 0x00000050 Code RO 539 i.I2C_Master_Write app_i2c_master.o + 0x00003bf4 0x00003bf4 0x00000080 Code RO 540 i.I2C_Master_WriteRead app_i2c_master.o + 0x00003c74 0x00003c74 0x00000018 Code RO 1473 i.I2C_Recover i2c.o + 0x00003c8c 0x00003c8c 0x00000030 Code RO 1474 i.I2C_SetTimeout i2c.o + 0x00003cbc 0x00003cbc 0x000000f8 Code RO 1475 i.I2C_Setspeed i2c.o + 0x00003db4 0x00003db4 0x00000078 Code RO 1476 i.I2C_Shutdown i2c.o + 0x00003e2c 0x00003e2c 0x0000021c Code RO 1479 i.I2C_SlaveHandler i2c.o + 0x00004048 0x00004048 0x00000030 Code RO 1672 i.ICC_Enable icc.o + 0x00004078 0x00004078 0x00000010 Code RO 1675 i.ICC_Ready icc.o + 0x00004088 0x00004088 0x000000f0 Code RO 1769 i.LP_SetOperatingVoltage lp.o + 0x00004178 0x00004178 0x00000018 Code RO 541 i.NVIC_ClearPendingIRQ app_i2c_master.o + 0x00004190 0x00004190 0x00000018 Code RO 681 i.NVIC_ClearPendingIRQ app_uart.o + 0x000041a8 0x000041a8 0x00000018 Code RO 542 i.NVIC_DisableIRQ app_i2c_master.o + 0x000041c0 0x000041c0 0x00000018 Code RO 682 i.NVIC_DisableIRQ app_uart.o + 0x000041d8 0x000041d8 0x00000016 Code RO 238 i.NVIC_EnableIRQ system_func.o + 0x000041ee 0x000041ee 0x00000016 Code RO 543 i.NVIC_EnableIRQ app_i2c_master.o + 0x00004204 0x00004204 0x00000016 Code RO 683 i.NVIC_EnableIRQ app_uart.o + 0x0000421a 0x0000421a 0x00000002 PAD + 0x0000421c 0x0000421c 0x00000024 Code RO 2423 i.NVIC_SetRAM nvic_table.o + 0x00004240 0x00004240 0x00000040 Code RO 2424 i.NVIC_SetVector nvic_table.o + 0x00004280 0x00004280 0x00000028 Code RO 984 i.Oled_Initialization app_oled.o + 0x000042a8 0x000042a8 0x00000018 Code RO 985 i.Oled_Next_Step app_oled.o + 0x000042c0 0x000042c0 0x00000204 Code RO 986 i.Oled_Process app_oled.o + 0x000044c4 0x000044c4 0x0000002c Code RO 987 i.Oled_SetTemperature app_oled.o + 0x000044f0 0x000044f0 0x00000004 Code RO 1106 i.PreInit system_max32660.o + 0x000044f4 0x000044f4 0x00000040 Code RO 601 i.RingBuffer_Dequeue app_ring_buffer.o + 0x00004534 0x00004534 0x00000042 Code RO 602 i.RingBuffer_Enqueue app_ring_buffer.o + 0x00004576 0x00004576 0x0000000e Code RO 603 i.RingBuffer_GetData app_ring_buffer.o + 0x00004584 0x00004584 0x00000030 Code RO 604 i.RingBuffer_Get_DataSize app_ring_buffer.o + 0x000045b4 0x000045b4 0x00000020 Code RO 605 i.RingBuffer_Initialization app_ring_buffer.o + 0x000045d4 0x000045d4 0x00000028 Code RO 606 i.RingBuffer_PopData app_ring_buffer.o + 0x000045fc 0x000045fc 0x00000010 Code RO 607 i.RingBuffer_isEmpty app_ring_buffer.o + 0x0000460c 0x0000460c 0x00000022 Code RO 608 i.RingBuffer_isFull app_ring_buffer.o + 0x0000462e 0x0000462e 0x00000002 PAD + 0x00004630 0x00004630 0x00000014 Code RO 3281 i.SSD1306_ClearScreen ssd1306.o + 0x00004644 0x00004644 0x0000001c Code RO 3282 i.SSD1306_DrawBackGround ssd1306.o + 0x00004660 0x00004660 0x0000004c Code RO 3283 i.SSD1306_DrawBackGround_LeftShift ssd1306.o + 0x000046ac 0x000046ac 0x0000001c Code RO 3284 i.SSD1306_DrawBackGround_Log ssd1306.o + 0x000046c8 0x000046c8 0x00000264 Code RO 3289 i.SSD1306_Draw_Temperature ssd1306.o + 0x0000492c 0x0000492c 0x00000070 Code RO 3290 i.SSD1306_Init ssd1306.o + 0x0000499c 0x0000499c 0x00000032 Code RO 3291 i.SSD1306_InverseScreen ssd1306.o + 0x000049ce 0x000049ce 0x00000032 Code RO 3292 i.SSD1306_NormalScreen ssd1306.o + 0x00004a00 0x00004a00 0x0000002e Code RO 3293 i.SSD1306_Send_Command ssd1306.o + 0x00004a2e 0x00004a2e 0x0000002c Code RO 3294 i.SSD1306_Send_StartAndSLAW ssd1306.o + 0x00004a5a 0x00004a5a 0x00000002 PAD + 0x00004a5c 0x00004a5c 0x00000090 Code RO 3297 i.SSD1306_UpdateScreen ssd1306.o + 0x00004aec 0x00004aec 0x000000a8 Code RO 290 i.SW_Timer_Callback_Process sw_timer.o + 0x00004b94 0x00004b94 0x00000068 Code RO 291 i.SW_Timer_Callback_Register sw_timer.o + 0x00004bfc 0x00004bfc 0x0000002a Code RO 2175 i.SYS_ClockDisable mxc_sys.o + 0x00004c26 0x00004c26 0x0000002a Code RO 2177 i.SYS_ClockEnable mxc_sys.o + 0x00004c50 0x00004c50 0x00000234 Code RO 2179 i.SYS_Clock_Select mxc_sys.o + 0x00004e84 0x00004e84 0x0000002e Code RO 2180 i.SYS_Clock_Timeout mxc_sys.o + 0x00004eb2 0x00004eb2 0x00000006 Code RO 2183 i.SYS_FLC_Init mxc_sys.o + 0x00004eb8 0x00004eb8 0x00000038 Code RO 2185 i.SYS_Flash_Operation mxc_sys.o + 0x00004ef0 0x00004ef0 0x00000010 Code RO 2186 i.SYS_I2C_GetFreq mxc_sys.o + 0x00004f00 0x00004f00 0x0000004c Code RO 2187 i.SYS_I2C_Init mxc_sys.o + 0x00004f4c 0x00004f4c 0x00000074 Code RO 2188 i.SYS_I2C_Shutdown mxc_sys.o + 0x00004fc0 0x00004fc0 0x0000005c Code RO 2205 i.SYS_TMR_Init mxc_sys.o + 0x0000501c 0x0000501c 0x0000009c Code RO 2207 i.SYS_UART_Init mxc_sys.o + 0x000050b8 0x000050b8 0x00000008 Code RO 2070 i.SysTick_Handler mxc_delay.o + 0x000050c0 0x000050c0 0x00000054 Code RO 239 i.SystemCoreClockSet system_func.o + 0x00005114 0x00005114 0x00000064 Code RO 1107 i.SystemCoreClockUpdate system_max32660.o + 0x00005178 0x00005178 0x00000094 Code RO 1108 i.SystemInit system_max32660.o + 0x0000520c 0x0000520c 0x00000088 Code RO 240 i.SystemTimerInitialization system_func.o + 0x00005294 0x00005294 0x00000018 Code RO 241 i.SystemTimer_GetPeriodCount system_func.o + 0x000052ac 0x000052ac 0x0000000c Code RO 242 i.SystemTimer_Get_TickCount system_func.o + 0x000052b8 0x000052b8 0x0000001c Code RO 243 i.SystemTimer_Interrput_Handler system_func.o + 0x000052d4 0x000052d4 0x0000002a Code RO 2861 i.TMR_Config tmr.o + 0x000052fe 0x000052fe 0x0000000a Code RO 2862 i.TMR_Disable tmr.o + 0x00005308 0x00005308 0x0000000a Code RO 2863 i.TMR_Enable tmr.o + 0x00005312 0x00005312 0x0000002a Code RO 2869 i.TMR_Init tmr.o + 0x0000533c 0x0000533c 0x00000006 Code RO 2870 i.TMR_IntClear tmr.o + 0x00005342 0x00005342 0x00000016 Code RO 3418 i.TWI_MT_Send_Data ssd1306_i2c.o + 0x00005358 0x00005358 0x00000018 Code RO 3419 i.TWI_MT_Send_SLAW ssd1306_i2c.o + 0x00005370 0x00005370 0x0000000a Code RO 3420 i.TWI_MT_Start ssd1306_i2c.o + 0x0000537a 0x0000537a 0x00000008 Code RO 3421 i.TWI_Stop ssd1306_i2c.o + 0x00005382 0x00005382 0x00000002 Code RO 3 i.Test_Process main.o + 0x00005384 0x00005384 0x00000058 Code RO 3046 i.UART_Busy uart.o + 0x000053dc 0x000053dc 0x00000004 Code RO 3047 i.UART_ClearFlags uart.o + 0x000053e0 0x000053e0 0x00000068 Code RO 3053 i.UART_Handler uart.o + 0x00005448 0x00005448 0x000000dc Code RO 3054 i.UART_Init uart.o + 0x00005524 0x00005524 0x0000000a Code RO 3055 i.UART_NumReadAvail uart.o + 0x0000552e 0x0000552e 0x0000000e Code RO 3056 i.UART_NumWriteAvail uart.o + 0x0000553c 0x0000553c 0x000000a4 Code RO 3059 i.UART_ReadAsync uart.o + 0x000055e0 0x000055e0 0x000000d0 Code RO 3061 i.UART_ReadHandler uart.o + 0x000056b0 0x000056b0 0x00000010 Code RO 3065 i.UART_WriteByte uart.o + 0x000056c0 0x000056c0 0x00000088 Code RO 3066 i.UART_WriteHandler uart.o + 0x00005748 0x00005748 0x0000001c Code RO 4118 i.__0fprintf mc_w.l(printfa.o) + 0x00005764 0x00005764 0x00000020 Code RO 4119 i.__0printf mc_w.l(printfa.o) + 0x00005784 0x00005784 0x00000018 Code RO 4122 i.__0vfprintf mc_w.l(printfa.o) + 0x0000579c 0x0000579c 0x00000034 Code RO 4124 i.__0vsnprintf mc_w.l(printfa.o) + 0x000057d0 0x000057d0 0x00000030 Code RO 4185 i.__ARM_fpclassify m_wm.l(fpclassify.o) + 0x00005800 0x00005800 0x00000008 Code RO 4256 i.__aeabi_errno_addr mc_w.l(errno.o) + 0x00005808 0x00005808 0x000000f8 Code RO 4280 i.__hardfp___mathlib_tofloat m_wm.l(narrow.o) + 0x00005900 0x00005900 0x00000c50 Code RO 3846 i.__hardfp_pow m_wm.l(pow.o) + 0x00006550 0x00006550 0x00000020 Code RO 3860 i.__hardfp_strtof m_wm.l(strtof.o) + 0x00006570 0x00006570 0x000000f8 Code RO 4187 i.__kernel_poly m_wm.l(poly.o) + 0x00006668 0x00006668 0x00000030 Code RO 4165 i.__mathlib_dbl_divzero m_wm.l(dunder.o) + 0x00006698 0x00006698 0x00000014 Code RO 4167 i.__mathlib_dbl_infnan2 m_wm.l(dunder.o) + 0x000066ac 0x000066ac 0x00000004 PAD + 0x000066b0 0x000066b0 0x00000020 Code RO 4168 i.__mathlib_dbl_invalid m_wm.l(dunder.o) + 0x000066d0 0x000066d0 0x00000020 Code RO 4169 i.__mathlib_dbl_overflow m_wm.l(dunder.o) + 0x000066f0 0x000066f0 0x00000020 Code RO 4171 i.__mathlib_dbl_underflow m_wm.l(dunder.o) + 0x00006710 0x00006710 0x00000012 Code RO 4281 i.__mathlib_narrow m_wm.l(narrow.o) + 0x00006722 0x00006722 0x0000000e Code RO 4319 i.__scatterload_copy mc_w.l(handlers.o) + 0x00006730 0x00006730 0x00000002 Code RO 4320 i.__scatterload_null mc_w.l(handlers.o) + 0x00006732 0x00006732 0x0000000e Code RO 4321 i.__scatterload_zeroinit mc_w.l(handlers.o) + 0x00006740 0x00006740 0x0000000c Code RO 4258 i.__set_errno mc_w.l(errno.o) + 0x0000674c 0x0000674c 0x00000184 Code RO 4126 i._fp_digits mc_w.l(printfa.o) + 0x000068d0 0x000068d0 0x0000000e Code RO 4306 i._is_digit mc_w.l(scanf_fp.o) + 0x000068de 0x000068de 0x00000002 PAD + 0x000068e0 0x000068e0 0x000006b4 Code RO 4127 i._printf_core mc_w.l(printfa.o) + 0x00006f94 0x00006f94 0x00000024 Code RO 4128 i._printf_post_padding mc_w.l(printfa.o) + 0x00006fb8 0x00006fb8 0x0000002e Code RO 4129 i._printf_pre_padding mc_w.l(printfa.o) + 0x00006fe6 0x00006fe6 0x00000016 Code RO 4130 i._snputc mc_w.l(printfa.o) + 0x00006ffc 0x00006ffc 0x00000064 Code RO 815 i.cliAdd app_cli.o + 0x00007060 0x00007060 0x00000030 Code RO 816 i.cliArgsGetData app_cli.o + 0x00007090 0x00007090 0x00000048 Code RO 817 i.cliArgsGetFloat app_cli.o + 0x000070d8 0x000070d8 0x00000024 Code RO 818 i.cliArgsGetStr app_cli.o + 0x000070fc 0x000070fc 0x00000038 Code RO 819 i.cliArgsIsStr app_cli.o + 0x00007134 0x00007134 0x00000088 Code RO 821 i.cliInit app_cli.o + 0x000071bc 0x000071bc 0x00000058 Code RO 823 i.cliLineAdd app_cli.o + 0x00007214 0x00007214 0x000000c4 Code RO 824 i.cliLineChange app_cli.o + 0x000072d8 0x000072d8 0x00000018 Code RO 825 i.cliLineClean app_cli.o + 0x000072f0 0x000072f0 0x0000001c Code RO 826 i.cliMain app_cli.o + 0x0000730c 0x0000730c 0x00000120 Code RO 827 i.cliMemoryDump app_cli.o + 0x0000742c 0x0000742c 0x00000060 Code RO 828 i.cliParseArgs app_cli.o + 0x0000748c 0x0000748c 0x00000034 Code RO 829 i.cliPrintf app_cli.o + 0x000074c0 0x000074c0 0x00000074 Code RO 831 i.cliRunCmd app_cli.o + 0x00007534 0x00007534 0x00000088 Code RO 832 i.cliShowList app_cli.o + 0x000075bc 0x000075bc 0x00000020 Code RO 834 i.cliShowPrompt app_cli.o + 0x000075dc 0x000075dc 0x00000034 Code RO 835 i.cliToUpper app_cli.o + 0x00007610 0x00007610 0x00000350 Code RO 836 i.cliUpdate app_cli.o + 0x00007960 0x00007960 0x00000300 Code RO 838 i.cli_AKM_Cmd app_cli.o + 0x00007c60 0x00007c60 0x00000018 Code RO 4181 i.fabs m_wm.l(fabs.o) + 0x00007c78 0x00007c78 0x0000000c Code RO 3661 i.flash_erase_page cammsys_flash.o + 0x00007c84 0x00007c84 0x00000048 Code RO 3662 i.flash_program_page cammsys_flash.o + 0x00007ccc 0x00007ccc 0x00000026 Code RO 3664 i.flash_verify cammsys_flash.o + 0x00007cf2 0x00007cf2 0x00000002 PAD + 0x00007cf4 0x00007cf4 0x00000018 Code RO 684 i.fputc app_uart.o + 0x00007d0c 0x00007d0c 0x00000004 PAD + 0x00007d10 0x00007d10 0x0000008c Code RO 4298 i.frexp m_wm.l(frexp.o) + 0x00007d9c 0x00007d9c 0x00000068 Code RO 4 i.main main.o + 0x00007e04 0x00007e04 0x00000080 Code RO 2071 i.mxc_delay mxc_delay.o + 0x00007e84 0x00007e84 0x00000054 Code RO 2072 i.mxc_delay_check mxc_delay.o + 0x00007ed8 0x00007ed8 0x00000058 Code RO 2073 i.mxc_delay_handler mxc_delay.o + 0x00007f30 0x00007f30 0x000000b4 Code RO 2074 i.mxc_delay_init mxc_delay.o + 0x00007fe4 0x00007fe4 0x0000004c Code RO 2075 i.mxc_delay_start mxc_delay.o + 0x00008030 0x00008030 0x0000001c Code RO 2076 i.mxc_delay_stop mxc_delay.o + 0x0000804c 0x0000804c 0x0000000a Code RO 2127 i.mxc_free_lock mxc_lock.o + 0x00008056 0x00008056 0x00000020 Code RO 2128 i.mxc_get_lock mxc_lock.o + 0x00008076 0x00008076 0x00000026 Code RO 3298 i.reverse_bits ssd1306.o + 0x0000809c 0x0000809c 0x0000006e Code RO 4192 i.sqrt m_wm.l(sqrt.o) + 0x0000810a 0x0000810a 0x00000030 Code RO 839 i.uartPrintf app_cli.o + 0x0000813a 0x0000813a 0x00000012 Code RO 840 i.uartWrite app_cli.o + 0x0000814c 0x0000814c 0x0000000d Data RO 989 .constdata app_oled.o + 0x00008159 0x00008159 0x00000003 PAD + 0x0000815c 0x0000815c 0x000000c0 Data RO 2153 .constdata mxc_pins.o + 0x0000821c 0x0000821c 0x0000023a Data RO 3300 .constdata ssd1306.o + 0x00008456 0x00008456 0x00000140 Data RO 3491 .constdata ak9757w.o + 0x00008596 0x00008596 0x00000200 Data RO 3629 .constdata background.o + 0x00008796 0x00008796 0x00000420 Data RO 3637 .constdata number.o + 0x00008bb6 0x00008bb6 0x00000200 Data RO 3645 .constdata cammsys_log.o + 0x00008db6 0x00008db6 0x00000002 PAD + 0x00008db8 0x00008db8 0x00000088 Data RO 3849 .constdata m_wm.l(pow.o) + 0x00008e40 0x00008e40 0x00000008 Data RO 4189 .constdata m_wm.l(qnan.o) + 0x00008e48 0x00008e48 0x00000081 Data RO 4229 .constdata mc_w.l(ctype_o.o) + 0x00008ec9 0x00008ec9 0x00000003 PAD + 0x00008ecc 0x00008ecc 0x00000004 Data RO 4230 .constdata mc_w.l(ctype_o.o) + 0x00008ed0 0x00008ed0 0x00000007 Data RO 842 .conststring app_cli.o + 0x00008ed7 0x00008ed7 0x00000001 PAD + 0x00008ed8 0x00008ed8 0x00000020 Data RO 4317 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x00007900, Size: 0x00003038, Max: 0x00020000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x00008ef8, Size: 0x00003058, Max: 0x00020000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x00007900 0x00000008 Data RW 238 .data system_func.o - 0x20000008 0x00007908 0x00000020 Data RW 395 .data app_gpio_led.o - 0x20000028 0x00007928 0x00000004 Data RW 446 .data app_gpio_i2c.o - 0x2000002c 0x0000792c 0x00000008 Data RW 538 .data app_i2c_master.o - 0x20000034 0x00007934 0x00000008 Data RW 681 .data app_uart.o - 0x2000003c 0x0000793c 0x00000001 Data RW 772 .data app_log.o - 0x2000003d 0x0000793d 0x00000003 PAD - 0x20000040 0x00007940 0x00000004 Data RW 836 .data app_cli.o - 0x20000044 0x00007944 0x00000011 Data RW 978 .data app_oled.o - 0x20000055 0x00007955 0x00000003 PAD - 0x20000058 0x00007958 0x00000004 Data RW 1097 .data system_max32660.o - 0x2000005c 0x0000795c 0x00000004 PAD - 0x20000060 0x00007960 0x0000001c Data RW 2065 .data mxc_delay.o - 0x2000007c 0x0000797c 0x00000010 Data RW 3057 .data uart.o - 0x2000008c 0x0000798c 0x00000004 Data RW 3473 .data ak9757w.o - 0x20000090 0x00007990 0x00000004 Data RW 3620 .data mc_w.l(stderr.o) - 0x20000094 0x00007994 0x00000004 Data RW 3632 .data mc_w.l(strtok_r.o) - 0x20000098 0x00007998 0x00000004 Data RW 4009 .data mc_w.l(errno.o) - 0x2000009c - 0x000000c8 Zero RW 287 .bss sw_timer.o - 0x20000164 - 0x000004b8 Zero RW 680 .bss app_uart.o - 0x2000061c - 0x0000043c Zero RW 834 .bss app_cli.o - 0x20000a58 - 0x00000070 Zero RW 1359 .bss gpio.o - 0x20000ac8 - 0x00000010 Zero RW 1468 .bss i2c.o - 0x20000ad8 0x0000799c 0x00000128 PAD - 0x20000c00 - 0x0000011c Zero RW 2413 .bss nvic_table.o - 0x20000d1c - 0x00000200 Zero RW 3287 .bss ssd1306.o - 0x20000f1c 0x0000799c 0x00000004 PAD - 0x20000f20 - 0x00000118 Zero RW 3471 .bss ak9757w.o - 0x20001038 - 0x00002000 Zero RW 1157 STACK startup_max32660.o + 0x20000000 0x00008ef8 0x00000008 Data RW 244 .data system_func.o + 0x20000008 0x00008f00 0x00000020 Data RW 401 .data app_gpio_led.o + 0x20000028 0x00008f20 0x00000004 Data RW 452 .data app_gpio_i2c.o + 0x2000002c 0x00008f24 0x00000008 Data RW 544 .data app_i2c_master.o + 0x20000034 0x00008f2c 0x00000008 Data RW 687 .data app_uart.o + 0x2000003c 0x00008f34 0x00000001 Data RW 778 .data app_log.o + 0x2000003d 0x00008f35 0x00000003 PAD + 0x20000040 0x00008f38 0x00000004 Data RW 843 .data app_cli.o + 0x20000044 0x00008f3c 0x00000011 Data RW 990 .data app_oled.o + 0x20000055 0x00008f4d 0x00000003 PAD + 0x20000058 0x00008f50 0x00000004 Data RW 1109 .data system_max32660.o + 0x2000005c 0x00008f54 0x00000004 PAD + 0x20000060 0x00008f58 0x0000001c Data RW 2077 .data mxc_delay.o + 0x2000007c 0x00008f74 0x00000010 Data RW 3069 .data uart.o + 0x2000008c 0x00008f84 0x00000004 Data RW 3492 .data ak9757w.o + 0x20000090 0x00008f88 0x00000002 Data RW 3741 .data eeprom.o + 0x20000092 0x00008f8a 0x00000002 PAD + 0x20000094 0x00008f8c 0x00000004 Data RW 3870 .data mc_w.l(stderr.o) + 0x20000098 0x00008f90 0x00000004 Data RW 3882 .data mc_w.l(strtok_r.o) + 0x2000009c 0x00008f94 0x00000004 Data RW 4219 .data mc_w.l(stdout.o) + 0x200000a0 0x00008f98 0x00000004 Data RW 4259 .data mc_w.l(errno.o) + 0x200000a4 - 0x000000c8 Zero RW 293 .bss sw_timer.o + 0x2000016c - 0x000004b8 Zero RW 686 .bss app_uart.o + 0x20000624 - 0x0000043c Zero RW 841 .bss app_cli.o + 0x20000a60 - 0x00000070 Zero RW 1371 .bss gpio.o + 0x20000ad0 - 0x00000010 Zero RW 1480 .bss i2c.o + 0x20000ae0 0x00008f9c 0x00000120 PAD + 0x20000c00 - 0x0000011c Zero RW 2425 .bss nvic_table.o + 0x20000d1c - 0x00000200 Zero RW 3299 .bss ssd1306.o + 0x20000f1c 0x00008f9c 0x00000004 PAD + 0x20000f20 - 0x00000132 Zero RW 3490 .bss ak9757w.o + 0x20001052 0x00008f9c 0x00000006 PAD + 0x20001058 - 0x00002000 Zero RW 1169 STACK startup_max32660.o ============================================================================== @@ -2792,27 +3004,31 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name - 4268 816 320 4 280 21257 ak9757w.o - 2478 314 7 4 1084 16027 app_cli.o + 5068 976 320 4 306 28149 ak9757w.o + 3262 646 7 4 1084 17377 app_cli.o 90 12 0 0 0 3223 app_gpio.o 456 32 0 4 0 7160 app_gpio_i2c.o 368 40 0 32 0 3881 app_gpio_led.o - 546 78 0 8 0 32187 app_i2c_master.o + 522 76 0 8 0 32199 app_i2c_master.o 76 18 0 1 0 896 app_log.o - 620 104 13 17 0 2828 app_oled.o + 624 104 13 17 0 2836 app_oled.o 314 0 0 0 0 6223 app_ring_buffer.o 552 106 0 8 1208 8035 app_uart.o 0 0 512 0 0 660 background.o + 180 0 0 0 0 4256 cammsys_flash.o 0 0 512 0 0 669 cammsys_log.o + 1326 28 0 2 0 10273 eeprom.o + 78 0 0 0 0 3491 eeprom_address.o + 1256 16 0 0 0 4657 flc.o 348 24 0 0 112 2233 gpio.o - 1334 58 0 0 16 8218 i2c.o + 2454 86 0 0 16 11064 i2c.o 64 20 0 0 0 961 icc.o 240 8 0 0 0 689 lp.o - 102 16 0 0 0 147002 main.o + 106 16 0 0 0 148194 main.o 592 74 0 28 0 4935 mxc_delay.o 42 0 0 0 0 1675 mxc_lock.o 0 0 192 0 0 1422 mxc_pins.o - 1150 100 0 0 0 10979 mxc_sys.o + 1212 110 0 0 0 12100 mxc_sys.o 0 0 1056 0 0 648 number.o 100 22 0 0 284 2102 nvic_table.o 1248 52 570 0 512 10151 ssd1306.o @@ -2825,9 +3041,9 @@ Image component sizes 964 78 0 16 0 8552 uart.o ---------------------------------------------------------------------- - 17026 2058 3508 144 12188 345655 Object Totals + 22626 2634 3504 148 12212 381753 Object Totals 0 0 32 0 0 0 (incl. Generated) - 14 0 10 10 300 0 (incl. Padding) + 24 4 6 12 298 0 (incl. Padding) ---------------------------------------------------------------------- @@ -2866,9 +3082,10 @@ Image component sizes 32 0 0 0 0 68 llushr.o 36 0 0 0 0 68 memcpya.o 36 0 0 0 0 108 memseta.o - 2312 96 0 0 0 692 printfa.o + 2344 106 0 0 0 776 printfa.o 878 12 0 0 0 216 scanf_fp.o 0 0 0 4 0 0 stderr.o + 0 0 0 4 0 0 stdout.o 28 0 0 0 0 76 strcmp.o 18 0 0 0 0 68 strcpy.o 156 12 0 0 0 120 strtod.o @@ -2896,19 +3113,19 @@ Image component sizes 4 0 0 0 0 68 fpstat.o ---------------------------------------------------------------------- - 10162 542 280 12 0 6268 Library Totals - 16 4 3 0 0 0 (incl. Padding) + 10190 548 280 16 0 6352 Library Totals + 12 0 3 0 0 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Name 4184 384 144 0 0 2084 m_wm.l - 4298 154 133 12 0 2584 mc_w.l + 4330 164 133 16 0 2668 mc_w.l 1664 0 0 0 0 1600 mf_w.l ---------------------------------------------------------------------- - 10162 542 280 12 0 6268 Library Totals + 10190 548 280 16 0 6352 Library Totals ---------------------------------------------------------------------- @@ -2917,15 +3134,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 27188 2600 3788 156 12188 332139 Grand Totals - 27188 2600 3788 156 12188 332139 ELF Image Totals - 27188 2600 3788 156 0 0 ROM Totals + 32816 3182 3784 164 12212 364769 Grand Totals + 32816 3182 3784 164 12212 364769 ELF Image Totals + 32816 3182 3784 164 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 30976 ( 30.25kB) - Total RW Size (RW Data + ZI Data) 12344 ( 12.05kB) - Total ROM Size (Code + RO Data + RW Data) 31132 ( 30.40kB) + Total RO Size (Code + RO Data) 36600 ( 35.74kB) + Total RW Size (RW Data + ZI Data) 12376 ( 12.09kB) + Total ROM Size (Code + RO Data + RW Data) 36764 ( 35.90kB) ============================================================================== diff --git a/Project/Compiler/Listings/startup_max32660.lst b/Project/Compiler/Listings/startup_max32660.lst index c0026ae..226cbb8 100644 --- a/Project/Compiler/Listings/startup_max32660.lst +++ b/Project/Compiler/Listings/startup_max32660.lst @@ -773,10 +773,20 @@ ARM Macro Assembler Page 12 00000000 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M4.fp.sp --apcs= interwork --depend=.\objects\startup_max32660.d -o.\objects\startup_max32660.o --IC:\Users\befs\AppData\Local\Arm\Packs\Maxim\MAX32660\1.5.0\Libraries\CMSIS\De -vice\Maxim\MAX32660\Include -IC:\Keil_v5\ARM\CMSIS\Include --predefine="__MICRO -LIB SETA 1" --predefine="__UVISION_VERSION SETA 533" --predefine="MAX32660 SETA - 1" --list=.\listings\startup_max32660.lst ..\SDK\Startup\startup_max32660.s +-I..\Application -I..\Application\eeprom -I..\Application\oled_ssd1306 -I..\App +lication\resource -I..\Application\sensor -I..\SDK -I..\SDK\Device -I..\SDK\Dev +ice\Include -I..\SDK\Driver -I..\SDK\Driver\Source -I..\SDK\Driver\Include -I.. +\SDK\FlashLoader -I..\SDK\Startup -IC:\Users\befs\AppData\Local\Arm\Packs\Maxim +\MAX32660\1.5.0\Libraries\CMSIS\Device\Maxim\MAX32660\Include -IC:\Keil_v5\ARM\ + + + +ARM Macro Assembler Page 13 + + +CMSIS\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SE +TA 533" --predefine="MAX32660 SETA 1" --list=.\listings\startup_max32660.lst .. +\SDK\Startup\startup_max32660.s