From 68c33afc88cb2b71bae81f01e38ed4817016b713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zeng=20wei=20=28=E6=9B=BE=E5=A8=81=29?= Date: Thu, 1 Feb 2024 20:02:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E7=94=A8=E5=AE=9A=E6=97=B6=E5=99=A8?= =?UTF-8?q?=E5=8F=91=E9=80=81=E4=BC=A0=E6=84=9F=E5=99=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=91=BD=E4=BB=A4=E5=92=8C=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=90=8C=E6=AD=A5=E5=91=BD=E4=BB=A4=E3=80=82?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=B0=86=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=88=B0=E4=B8=B2=E5=8F=A3=E5=B1=8F=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E4=B8=BA=E6=9C=89=E5=B7=AE=E5=BC=82=E6=89=8D?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 6 + HARDWARE/PID.c | 8 +- HARDWARE/PID.h | 18 +- HARDWARE/W25Q128.c | 2 +- HARDWARE/bufcut.c | 10 +- HARDWARE/bufcut.h | 2 +- HARDWARE/rs485.c | 341 ++--- HARDWARE/rs485.h | 11 +- HARDWARE/write.c | 57 +- SYSTEM/USART.c | 186 +-- USER/Listings/LED.map | 2205 +++++++++++++++-------------- USER/control.uvguix.Administrator | 44 +- myfreertos/myfreertos.c | 365 +++-- myfreertos/myfreertos.h | 2 + 14 files changed, 1771 insertions(+), 1486 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..fcfb1eb --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "w25q128_ins.h": "c", + "usart.h": "c" + } +} \ No newline at end of file diff --git a/HARDWARE/PID.c b/HARDWARE/PID.c index 288d142..75f6a08 100644 --- a/HARDWARE/PID.c +++ b/HARDWARE/PID.c @@ -19,9 +19,11 @@ int max_speed_count = 6000; void PID_Init() { // pid.set_tem=tem;// user set temperature - pid.Kp = 110; - pid.Ki = 0.001; - pid.Kd = 340; + // if flash have not a vaild value, just set a default value + if (pid.Kp < 1e-7) { pid.Kp = 110; } + if (pid.Ki < 1e-7) { pid.Ki = 0.001; } + if (pid.Kd < 1e-7) { pid.Kd = 340; } + pid.t = 500; // PID calc period // pid.Ti=5000000;// integral time // pid.Td=1000;// differential time diff --git a/HARDWARE/PID.h b/HARDWARE/PID.h index fb24958..8225f39 100644 --- a/HARDWARE/PID.h +++ b/HARDWARE/PID.h @@ -8,19 +8,19 @@ void PID_Calc(void); typedef struct Pid { - float set_tem;//用户设定值 - float now_tem;//当前温度 + float set_tem;// User settings + float now_tem;// current temperature float Kp; // 110 - int t; //PID计算周期--采样周期 - float Ti; - float Td; float Ki; // 0.001 float Kd; // 340 + int t; // PID calculation cycle - sampling cycle + float Ti; + float Td; - float Ek; //本次偏差 - float Ek_1;//上次偏差 - float SEk; //历史偏差之和 + float Ek; // This deviation + float Ek_1;// Last deviation + float SEk; // The sum of historical deviations float Iout; float Pout; @@ -32,7 +32,7 @@ typedef struct Pid int C1ms; - int pwmcycle;//pwm周期 + int pwmcycle;// PWM cycle int times; }PID; diff --git a/HARDWARE/W25Q128.c b/HARDWARE/W25Q128.c index a616eca..9bea830 100644 --- a/HARDWARE/W25Q128.c +++ b/HARDWARE/W25Q128.c @@ -135,7 +135,7 @@ void W25QXX_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite) if(NumByteToWrite<=secremain) secremain=NumByteToWrite; //不大于4096个字节// while(1) - { + { W25QXX_Read(W25QXX_BUF,secpos*4096,4096); //读出整个扇区的内容,保存在W25QXX_BUF里// for(i=0;i #include "rs485.h" //u8 rx_buf[64]; + extern u8 RS485_RX_BUF_COPY[128]; -void bufcut_Init(u8 *RX_BUF,u8 *CUT_RX_BUF,u8 start_index, u8 end_index) + +void bufcut_Init(u8 *TARGET_RX_BUF,u8 *SOURCE_CUT_RX_BUF,u8 start_index, u8 end_index) { int i, j = 0; for (i = start_index; i < end_index; i++) { - RX_BUF[j] = CUT_RX_BUF[i]; + TARGET_RX_BUF[j] = SOURCE_CUT_RX_BUF[i]; j++; } } @@ -17,14 +19,14 @@ void bufcut_Init(u8 *RX_BUF,u8 *CUT_RX_BUF,u8 start_index, u8 end_index) void RX_BUF_Init(void) { int i=0; - for(i=0;i<64;i++) + for(i=0;i<128;i++) { RS485_RX_BUF[i]=0; } } -void RX_BUF_ZERO(u8 num)//把处理过的数组变为0 +void RX_BUF_ZERO(u8 num)// set RS485_RX_BUF_COPY to 0 { for(int i=0;iJ6 ,PB5->S1,PB6->S0,PB7->USART_OE -// SN74CB3Q3253多路复用器 - 多路信号分离器的引脚配置为OE S1 S0对应的值为001,使1B2 2B2响应 -// 初始化IO 串口1 -// pclk1:PCLK1时钟频率(Mhz) -// bound:波特率 +// RS485_1_Init->J6 ??PB5->S1,PB6->S0,PB7->USART_OE +// SN74CB3Q3253??·?????? - ??·???????????????????OE S1 S0???????001???1B2 2B2??? + +// pclk1:PCLK1??????(Mhz) +// bound:?????? void RS485_1_Init(u32 bound) { SN74CB3Q3253_Init(); - GPIO_ResetBits(GPIOB, GPIO_Pin_5); // S1配置为低电平 - GPIO_SetBits(GPIOB, GPIO_Pin_6); // S0配置为高电平 + GPIO_ResetBits(GPIOB, GPIO_Pin_5); // S1????????? + GPIO_SetBits(GPIOB, GPIO_Pin_6); // S0????????? GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOA,D时钟 - RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); // 使能USART1时钟 + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); + RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; // 端口配置 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出 + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // PA9 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用推挽 + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // PA10 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 浮空输入 + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); // 复位串口1 - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); // 停止复位 + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); - USART_InitStructure.USART_BaudRate = bound; // 波特率设置 - USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 8位数据长度 - USART_InitStructure.USART_StopBits = USART_StopBits_1; // 一个停止位 - USART_InitStructure.USART_Parity = USART_Parity_No; /// 奇偶校验位 - USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // 无硬件数据流控制 - USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 收发模式 + USART_InitStructure.USART_BaudRate = bound; + USART_InitStructure.USART_WordLength = USART_WordLength_8b; + USART_InitStructure.USART_StopBits = USART_StopBits_1; + USART_InitStructure.USART_Parity = USART_Parity_No; + USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; + USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); - ; // 初始化串口 + ; - NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; // 使能串口1中断 - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 先占优先级2级 - // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级2级 - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // 使能外部中断通道 - NVIC_Init(&NVIC_InitStructure); // 根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器 + NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; + // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //???????2?? + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); - USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); // 开启中断 - USART_Cmd(USART1, ENABLE); // 使能串口 + USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); + USART_Cmd(USART1, ENABLE); - RS485_1_TX_EN = 0; // 默认为接收模式 + RS485_1_TX_EN = 0; } -// RS485_2_Init->J7 ,PB5->S1,PB6->S0,PB7->USART_OE -// SN74CB3Q3253多路复用器 - 多路信号分离器的引脚配置为OE S1 S0对应的值为000,使1B1 2B1响应 +// RS485_2_Init->J7 ??PB5->S1,PB6->S0,PB7->USART_OE +// SN74CB3Q3253??·?????? - ??·???????????????????OE S1 S0???????000???1B1 2B1??? void RS485_2_Init(u32 bound) { SN74CB3Q3253_Init(); - GPIO_ResetBits(GPIOB, GPIO_Pin_5 | GPIO_Pin_6); // S1,S0配置为低电平 + GPIO_ResetBits(GPIOB, GPIO_Pin_5 | GPIO_Pin_6); GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOA,D时钟 - RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); // 使能USART1时钟 + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); + RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // 端口配置 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出 + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // PA9 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用推挽 + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // PA10 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 浮空输入 + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); // 复位串口1 - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); // 停止复位 + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); - USART_InitStructure.USART_BaudRate = bound; // 波特率设置 - USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 8位数据长度 - USART_InitStructure.USART_StopBits = USART_StopBits_1; // 一个停止位 - USART_InitStructure.USART_Parity = USART_Parity_No; /// 奇偶校验位 - USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // 无硬件数据流控制 - USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 收发模式 + USART_InitStructure.USART_BaudRate = bound; + USART_InitStructure.USART_WordLength = USART_WordLength_8b; + USART_InitStructure.USART_StopBits = USART_StopBits_1; + USART_InitStructure.USART_Parity = USART_Parity_No; + USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; + USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); - ; // 初始化串口 + ; - NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; // 使能串口1中断 - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; // 先占优先级2级 - // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级2级 - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // 使能外部中断通道 - NVIC_Init(&NVIC_InitStructure); // 根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器 + NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; + // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //???????2?? + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); - USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); // 开启中断 - USART_Cmd(USART1, ENABLE); // 使能串口 + USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); + USART_Cmd(USART1, ENABLE); - RS485_2_TX_EN = 0; // 默认为接收模式 + RS485_2_TX_EN = 0; } -// RS485_3_Init->J7 ,PB5->S1,PB6->S0,PB7->USART_OE -// SN74CB3Q3253多路复用器 - 多路信号分离器的引脚配置为OE S1 S0对应的值为010,使1B3 2B3响应 - +// RS485_3_Init->J7 ??PB5->S1,PB6->S0,PB7->USART_OE +// SN74CB3Q3253??·?????? - ??·???????????????????OE S1 S0???????010???1B3 2B3??? void RS485_3_Init(u32 bound) { SN74CB3Q3253_Init(); - GPIO_ResetBits(GPIOB, GPIO_Pin_6); // S0配置为低电平 - GPIO_SetBits(GPIOB, GPIO_Pin_5); // S1配置为高电平 + GPIO_ResetBits(GPIOB, GPIO_Pin_6); // S0????????? + GPIO_SetBits(GPIOB, GPIO_Pin_5); // S1????????? GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOA,D时钟 - RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); // 使能USART1时钟 + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); + RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; // 端口配置 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出 + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // PA9 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用推挽 + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // PA10 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 浮空输入 + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); // 复位串口1 - RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); // 停止复位 + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE); - USART_InitStructure.USART_BaudRate = bound; // 波特率设置 - USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 8位数据长度 - USART_InitStructure.USART_StopBits = USART_StopBits_1; // 一个停止位 - USART_InitStructure.USART_Parity = USART_Parity_No; /// 奇偶校验位 - USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // 无硬件数据流控制 - USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 收发模式 + USART_InitStructure.USART_BaudRate = bound; + USART_InitStructure.USART_WordLength = USART_WordLength_8b; + USART_InitStructure.USART_StopBits = USART_StopBits_1; + USART_InitStructure.USART_Parity = USART_Parity_No; + USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; + USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); - ; // 初始化串口 + ; - NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; // 使能串口1中断 - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; // 先占优先级2级 - // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级2级 - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // 使能外部中断通道 - NVIC_Init(&NVIC_InitStructure); // 根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器 + NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; + // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //???????2?? + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); - USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); // 开启中断 - USART_Cmd(USART1, ENABLE); // 使能串口 + USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); + USART_Cmd(USART1, ENABLE); - RS485_3_TX_EN = 0; // 默认为接收模式 + RS485_3_TX_EN = 0; } -// RS485发送len个字节. -// buf:发送区首地址 -// len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过64个字节) void RS485_1_Send_Data(u8 *buf, u8 len) { u8 t; - RS485_1_TX_EN = 1; // 设置为发送模式 + RS485_1_TX_EN = 1; - for (t = 0; t < len; t++) // 循环发送数据 + for (t = 0; t < len; t++) { while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) ; @@ -336,16 +354,16 @@ void RS485_1_Send_Data(u8 *buf, u8 len) ; RS485_RX_CNT = 0; - RS485_1_TX_EN = 0; // 设置为接收模式 + RS485_1_TX_EN = 0; } void RS485_1_Send_Data_1(u8 *buf, u8 len) { u8 t; - RS485_1_TX_EN = 1; // 设置为发送模式 + RS485_1_TX_EN = 1; - for (t = 0; t < len; t++) // 循环发送数据 + for (t = 0; t < len; t++) { while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) ; @@ -356,13 +374,10 @@ void RS485_1_Send_Data_1(u8 *buf, u8 len) ; // RS485_RX_CNT=0; - RS485_1_TX_EN = 0; // 设置为接收模式 + RS485_1_TX_EN = 0; } -// RS485发送len个字节. -// buf:发送区首地址 -// len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过64个字节) -void RS485_1_Send_Data_2(void) // 上传温湿度二氧化碳 +void RS485_1_Send_Data_2(void) { sendbuf[0] = 0xEE; sendbuf[1] = 0xB5; @@ -372,16 +387,18 @@ void RS485_1_Send_Data_2(void) // sendbuf[35] = 0xFF; sendbuf[36] = 0xFF; u8 a; - RS485_1_TX_EN = 1; // 设置为发送模式 - if (T <= 500000) + if (T <= 1000 && T >= -1000) { - TEM1 = RS485_RX_BUF_COPY[3]; - TEM2 = RS485_RX_BUF_COPY[4]; + if (T < 0) { + T = (~(T - 1)) & 0xFFFF; + } + TEM1 = (T & 0xFF00) >> 8; + TEM2 = T & 0x00FF; } if (H <= 1000) { - HUM1 = RS485_RX_BUF_COPY[5]; - HUM2 = RS485_RX_BUF_COPY[6]; + HUM1 = (H & 0xFF00) >> 8; + HUM2 = H & 0x00FF; } sendbuf[3] = TEM1; sendbuf[4] = TEM2; @@ -406,19 +423,19 @@ void RS485_1_Send_Data_2(void) // white_light2 = total[14 + 18 * (now_stage - 1)]; } sendbuf[7] = red_light1; - sendbuf[8] = red_light2; // 红光 + sendbuf[8] = red_light2; sendbuf[9] = blue_light1; - sendbuf[10] = blue_light2; // 蓝光 + sendbuf[10] = blue_light2; sendbuf[11] = white_light1; - sendbuf[12] = white_light2; // 白光 + sendbuf[12] = white_light2; if (C <= 5000) { - CO2_1 = RS485_RX_BUF_COPY[19]; - CO2_2 = RS485_RX_BUF_COPY[20]; + CO2_1 = (C & 0xFF00) >> 8; + CO2_1 = C & 0x00FF; } sendbuf[13] = CO2_1; sendbuf[14] = CO2_2; - if (now_stage < 7 && total[3 + 18 * (now_stage - 1)] < 24 && total[4 + 18 * (now_stage - 1)] < 60 && chour < 24 && cminute < 60) + if (now_stage > 0 && now_stage < 7 && total[3 + 18 * (now_stage - 1)] < 24 && total[4 + 18 * (now_stage - 1)] < 60 && chour < 24 && cminute < 60) { sendbuf[15] = now_stage; // current state sendbuf[16] = total[3 + 18 * (now_stage - 1)]; // stage hour @@ -426,6 +443,12 @@ void RS485_1_Send_Data_2(void) // sendbuf[18] = chour; // run hour sendbuf[19] = cminute; // run minute } + // now_stage = 1; + sendbuf[15] = now_stage; // current state + sendbuf[16] = total[3 + 18 * (now_stage - 1)]; // stage hour + sendbuf[17] = total[4 + 18 * (now_stage - 1)]; // stage minute + sendbuf[18] = chour; // run hour + sendbuf[19] = cminute; // run minute sendbuf[20] = hot_clod_flag; // hot clod state sendbuf[21] = humidity_flag; // humidity state sendbuf[22] = ALARM; // ALARM state @@ -450,35 +473,37 @@ void RS485_1_Send_Data_2(void) // // sendbuf[29] = ((int)(pid.OUT * 1000)) / 256; // sendbuf[30] = ((int)(pid.OUT * 1000)) % 256; - bufcut_Init(sendbuf_crc, sendbuf, 3, 31); - GetCRC16(sendbuf_crc, 28, &crc_num1, &crc_num2); + // bufcut_Init(sendbuf_crc, sendbuf, 3, 31); + // GetCRC16(sendbuf_crc, 28, &crc_num1, &crc_num2); + GetCRC16(sendbuf, 31, &crc_num1, &crc_num2); sendbuf[31] = crc_num1; sendbuf[32] = crc_num2; - for (a = 0; a < 37; a++) // 循环发送数据 - { - while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) - ; - USART_SendData(USART1, sendbuf[a]); - // if(a==0)printf("%x\r\n",sendbuf[0]); + + // only when modify happen, then send + if (cmp_str(prev_sendbuf, sendbuf, 37) != 0) { + + RS485_1_Send_Data(sendbuf, 37); + + cp_str_to_prev(prev_sendbuf, sendbuf, 37); } - while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) - ; - // RS485_RX_CNT=0; - RS485_1_TX_EN = 0; // 设置为接收模式 } +/** + * sync environment params +*/ void RS485_1_Send_Data_3(void) { - u8 batchbuf[8] = {0xEE, 0xB5, 0x01, 0x00, 0xFF, 0xFC, 0xFF, 0xFF}; + u8 batchbuf[10] = {0xEE, 0xB5, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF}; u8 t; - RS485_1_TX_EN = 1; // 设置为发送模式 + RS485_1_TX_EN = 1; batchbuf[3] = NUM; NUM += 1; if (NUM > 6) NUM = 1; - for (t = 0; t < 8; t++) // 循环发送数据 + GetCRC16(batchbuf, 4, batchbuf + 4, batchbuf + 5); + for (t = 0; t < 10; t++) { while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) ; @@ -489,16 +514,16 @@ void RS485_1_Send_Data_3(void) ; // RS485_RX_CNT=0; - RS485_1_TX_EN = 0; // 设置为接收模式 + RS485_1_TX_EN = 0; } -// void RS485_3_Send_Data_2(void)//上传当前周期(1),周期时长(2),已运行时长(2),红蓝白光(6),加热制冷状态(1),加湿除湿状态(1),报警状态(1) +// void RS485_3_Send_Data_2(void) //{ // delay_ms(50); -// u8 sendbuf[21]={0xEE,0xB5,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFC,0xFF,0xFF};//发送给串口屏的实时数据 +// u8 sendbuf[21]={0xEE,0xB5,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFC,0xFF,0xFF};//??????????????????? // u8 a; // GPIO8_Init(); // GPIO_SetBits(GPIOB,GPIO_Pin_8); -// RS485_3_TX_EN=1; //设置为发送模式 +// RS485_3_TX_EN=1; // sendbuf[3]=t; // sendbuf[4]=total[3 + 18 * (t - 1)]; // sendbuf[5]=total[4 + 18 * (t - 1)]; @@ -515,7 +540,7 @@ void RS485_1_Send_Data_3(void) // sendbuf[16]=ALARM; // // -// for(a=0;a<21;a++) //循环发送数据 +// for(a=0;a<21;a++) // { // while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); // USART_SendData(USART1,sendbuf[a]); @@ -524,19 +549,16 @@ void RS485_1_Send_Data_3(void) // while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); // RS485_RX_CNT=0; // GPIO_ResetBits(GPIOB,GPIO_Pin_8); -// RS485_3_TX_EN=0; //设置为接收模式 +// RS485_3_TX_EN=0; //} -// RS485发送len个字节. -// buf:发送区首地址 -// len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过64个字节) void RS485_3_Send_Data(u8 *buf,u8 len) { u8 t; // GPIO8_Init(); // GPIO_SetBits(GPIOB,GPIO_Pin_8); - RS485_3_TX_EN=1; //设置为发送模式 - for(t=0;t 6) { + store_stage = 1; + } + W25QXX_Write(&store_stage, 0x001000, 1); // write current stage to flash + + pidsWrite[0] = (int)pid.Kp / 256; // Kp 110 + pidsWrite[1] = (int)(pid.Kp) % 256; // Kp 110 + pidsWrite[2] = ((int)(pid.Ki * 100000)) / 256; // Ti 0.001 + pidsWrite[3] = ((int)(pid.Ki * 100000)) % 256; // Ti 0.001 + pidsWrite[4] = (int)pid.Kd / 256; // Td 340 + pidsWrite[5] = (int)pid.Kd % 256; // Td 340 + // // wtite p i d + W25QXX_Write(pidsWrite, 0x002000, 6); // p i d, 2bytes for each + W25QXX_Read(ArrayRead, 0x000000, 108); // 把数据读出来 + + } void Read_Init(void) { W25QXX_Init(); W25QXX_Read(ArrayRead, 0x000000, 108); // 把数据读出来 - bufcut_Init(total, ArrayRead, 0, 109); // 把读出来的数据赋值给total数组 - W25QXX_Read(&read_stage, 0x00006D, 1); + bufcut_Init(total, ArrayRead, 0, 108); // 把读出来的数据赋值给total数组 + W25QXX_Read(&read_stage, 0x001000, 1); now_stage = read_stage; // 读出来的阶段赋值给当前阶段 + // if (now_stage <= 0 || now_stage > 6) { + // now_stage = 3; + // } + // now_stage = 3; + + // read p i d + W25QXX_Read(pidsRead, 0x002000, 6); // p i d, 2bytes for each + float Kp = pidsRead[0] * 256.0 + pidsRead[1]; + float Ki = (pidsRead[2] * 256.0 + pidsRead[3]) / 100000.0; + float Kd = pidsRead[4] * 256.0 + pidsRead[5]; + // pid.Kp = 120; + if (Kp > 1e-3) { pid.Kp = Kp; } + if (Ki > 1e-3) { pid.Ki = Ki; } + if (Kd > 1e-3) { pid.Kd = Kd; } + // pid.Ki = 0.002; + // pid.Kd = 300; + // pid.Kp = pidsRead[0] * 256.0 + pidsRead[1]; + // pid.Ki = (pidsRead[2] * 256.0 + pidsRead[3]) / 100000.0; + // pid.Kd = pidsRead[4] * 256.0 + pidsRead[5]; + + // printf("%d\r\n",now_stage); // printf("\r\n"); // printf("\r\n"); diff --git a/SYSTEM/USART.c b/SYSTEM/USART.c index 10009d9..9548039 100644 --- a/SYSTEM/USART.c +++ b/SYSTEM/USART.c @@ -1,104 +1,104 @@ -#include "USART.h" +#include "USART.h" - -//int fputc(int ch, FILE *f) -//{ +// int fputc(int ch, FILE *f) +//{ // RS485_4_TX_EN=1; // USART_SendData(USART2, (uint8_t) ch); -// while((USART2->SR&0X40)==0);//循环发送,直到发送完毕 +// while((USART2->SR&0X40)==0);//循环发送,直到发送完毕 // RS485_4_TX_EN=0; // return ch; -//} +// } -int fputc(int ch,FILE *p) //函数默认的,在使用printf函数时自动调用 +int fputc(int ch, FILE *p) // 函数默认的,在使用printf函数时自动调用 { - RS485_4_TX_EN=1; - USART_SendData(USART2,(u8)ch); - while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET); - RS485_4_TX_EN=0; + RS485_4_TX_EN = 1; + USART_SendData(USART2, (u8)ch); + while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET) + ; + RS485_4_TX_EN = 0; return ch; } -//串口1中断服务程序 -//注意,读取USARTx->SR能避免莫名其妙的错误 -u8 USART2_RX_BUF[USART2_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节. -//接收状态 -//bit15, 接收完成标志 -//bit14, 接收到0x0d -//bit13~0, 接收到的有效字节数目 -u16 USART2_RX_STA=0; //接收状态标记 +// 串口1中断服务程序 +// 注意,读取USARTx->SR能避免莫名其妙的错误 +u8 USART2_RX_BUF[USART2_REC_LEN]; // 接收缓冲,最大USART_REC_LEN个字节. +// 接收状态 +// bit15, 接收完成标志 +// bit14, 接收到0x0d +// bit13~0, 接收到的有效字节数目 +u16 USART2_RX_STA = 0; // 接收状态标记 void USART2_Init(u32 bound) { - GPIO_InitTypeDef GPIO_InitStructure; - USART_InitTypeDef USART_InitStructure; + GPIO_InitTypeDef GPIO_InitStructure; + USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; - RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); //使能USART1,GPIOA时钟 - RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟 - - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //RE485-DE PA8 - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 - GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化 - - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //USART1_TX PA9 - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 - GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化 - - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//USART1_RX PA10初始化 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 - GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化 - NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;//Usart1 NVIC 配置 - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=4 ;//抢占优先级3 - //NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3 - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 - NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器 - - //USART 初始化设置 - - USART_InitStructure.USART_BaudRate = bound;//串口波特率 - USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式 - USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位 - USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位 - USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制 - USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式 - - USART_Init(USART2, &USART_InitStructure); //初始化串口1 - USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//开启串口接受中断 - USART_Cmd(USART2, ENABLE); //使能串口1 - RS485_4_TX_EN=0; //拉低 + RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); // 使能USART1,GPIOA时钟 + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOA, ENABLE); // 使能USART1,GPIOA时钟 + + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // RE485-DE PA8 + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出 + GPIO_Init(GPIOB, &GPIO_InitStructure); // 初始化 + + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; // USART1_TX PA9 + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用推挽输出 + GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化 + + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; // USART1_RX PA10初始化 + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 浮空输入 + GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化 + NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; // Usart1 NVIC 配置 + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 4; // 抢占优先级3 + // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3 + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // IRQ通道使能 + NVIC_Init(&NVIC_InitStructure); // 根据指定的参数初始化VIC寄存器 + + // USART 初始化设置 + + USART_InitStructure.USART_BaudRate = bound; // 串口波特率 + USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 字长为8位数据格式 + USART_InitStructure.USART_StopBits = USART_StopBits_1; // 一个停止位 + USART_InitStructure.USART_Parity = USART_Parity_No; // 无奇偶校验位 + USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // 无硬件数据流控制 + USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 收发模式 + + USART_Init(USART2, &USART_InitStructure); // 初始化串口1 + USART_ITConfig(USART2, USART_IT_RXNE, ENABLE); // 开启串口接受中断 + USART_Cmd(USART2, ENABLE); // 使能串口1 + RS485_4_TX_EN = 0; // 拉低 } -//void USART2_IRQHandler(void) //串口1中断服务程序 +// void USART2_IRQHandler(void) //串口1中断服务程序 //{ // u8 Res; // if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断 // { // USART_ClearFlag(USART2, USART_IT_RXNE); //清除标志位; // Res =USART_ReceiveData(USART2); //读取接收到的数据 -// /*写入要执行的操作*/ -// } +// /*写入要执行的操作*/ +// } -//} +//} ///******************************************************************************* //* 函 数 名 : USART1_Init //* 函数功能 : USART1初始化函数 //* 输 入 : bound:波特率 //* 输 出 : 无 -//*******************************************************************************/ -//void USART2_Init(u32 bound) +//*******************************************************************************/ +// void USART2_Init(u32 bound) //{ // //GPIO端口设置 // GPIO_InitTypeDef GPIO_InitStructure; // USART_InitTypeDef USART_InitStructure; // NVIC_InitTypeDef NVIC_InitStructure; -// +// // RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); // RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE); -// -// +// +// // /* 配置GPIO的模式和IO口 */ // GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;//TX //串口输出PA9 // GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; @@ -107,7 +107,7 @@ void USART2_Init(u32 bound) // GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;//RX //串口输入PA10 // GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //模拟输入 // GPIO_Init(GPIOA,&GPIO_InitStructure); /* 初始化GPIO */ -// +// // //USART1 初始化设置 // USART_InitStructure.USART_BaudRate = bound;//波特率设置 @@ -117,11 +117,11 @@ void USART2_Init(u32 bound) // USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制 // USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式 // USART_Init(USART2, &USART_InitStructure); //初始化串口1 -// -// USART_Cmd(USART2, ENABLE); //使能串口1 -// +// +// USART_Cmd(USART2, ENABLE); //使能串口1 +// // USART_ClearFlag(USART2, USART_FLAG_TC); -// +// // USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//开启相关中断 // //Usart1 NVIC 配置 @@ -129,38 +129,42 @@ void USART2_Init(u32 bound) // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;//抢占优先级3 // //NVIC_InitStructure.NVIC_IRQChannelSubPriority =3; //子优先级3 // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 -// NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器、 +// NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器、 //} /******************************************************************************* -* 函 数 名 : USART1_IRQHandler -* 函数功能 : USART1中断函数 -* 输 入 : 无 -* 输 出 : 无 -*******************************************************************************/ -void USART2_IRQHandler(void) //串口1中断服务程序 + * 函 数 名 : USART1_IRQHandler + * 函数功能 : USART1中断函数 + * 输 入 : 无 + * 输 出 : 无 + *******************************************************************************/ +void USART2_IRQHandler(void) // 串口1中断服务程序 { u8 r; - if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断 + if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) // 接收中断 { - r =USART_ReceiveData(USART2);//(USART1->DR); //读取接收到的数据 - if((USART2_RX_STA&0x8000)==0)//接收未完成 + r = USART_ReceiveData(USART2); //(USART1->DR); //读取接收到的数据 + if ((USART2_RX_STA & 0x8000) == 0) // 接收未完成 { - if(USART2_RX_STA&0x4000)//接收到了0x0d + if (USART2_RX_STA & 0x4000) // 接收到了0x0d { - if(r!=0x0a)USART2_RX_STA=0;//接收错误,重新开始 - else USART2_RX_STA|=0x8000; //接收完成了 + if (r != 0x0a) + USART2_RX_STA = 0; // 接收错误,重新开始 + else + USART2_RX_STA |= 0x8000; // 接收完成了 } - else //还没收到0X0D - { - if(r==0x0d)USART2_RX_STA|=0x4000; + else // 还没收到0X0D + { + if (r == 0x0d) + USART2_RX_STA |= 0x4000; else { - USART2_RX_BUF[USART2_RX_STA&0X3FFF]=r; + USART2_RX_BUF[USART2_RX_STA & 0X3FFF] = r; USART2_RX_STA++; - if(USART2_RX_STA>(USART2_REC_LEN-1))USART2_RX_STA=0;//接收数据错误,重新开始接收 - } + if (USART2_RX_STA > (USART2_REC_LEN - 1)) + USART2_RX_STA = 0; // 接收数据错误,重新开始接收 + } } - } - } + } + } } diff --git a/USER/Listings/LED.map b/USER/Listings/LED.map index 656bf1e..081edfc 100644 --- a/USER/Listings/LED.map +++ b/USER/Listings/LED.map @@ -122,16 +122,26 @@ Section Cross References write.o(i.Read_Init) refers to w25q128.o(i.W25QXX_Init) for W25QXX_Init write.o(i.Read_Init) refers to w25q128.o(i.W25QXX_Read) for W25QXX_Read write.o(i.Read_Init) refers to bufcut.o(i.bufcut_Init) for bufcut_Init + write.o(i.Read_Init) refers to dfltui.o(.text) for __aeabi_ui2d + write.o(i.Read_Init) refers to dmul.o(.text) for __aeabi_dmul + write.o(i.Read_Init) refers to dadd.o(.text) for __aeabi_dadd + write.o(i.Read_Init) refers to d2f.o(.text) for __aeabi_d2f + write.o(i.Read_Init) refers to ddiv.o(.text) for __aeabi_ddiv + write.o(i.Read_Init) refers to f2d.o(.text) for __aeabi_f2d + write.o(i.Read_Init) refers to cdrcmple.o(.text) for __aeabi_cdrcmple write.o(i.Read_Init) refers to write.o(.bss) for ArrayRead write.o(i.Read_Init) refers to write.o(.data) for total write.o(i.Read_Init) refers to myfreertos.o(.data) for now_stage + write.o(i.Read_Init) refers to pid.o(.bss) for pid write.o(i.Write_Init) refers to w25q128.o(i.W25QXX_Init) for W25QXX_Init write.o(i.Write_Init) refers to w25q128.o(i.W25QXX_Erase_Sector) for W25QXX_Erase_Sector - write.o(i.Write_Init) refers to systick.o(i.delay_ms) for delay_ms - write.o(i.Write_Init) refers to w25q128.o(i.W25QXX_Write_NoCheck) for W25QXX_Write_NoCheck + write.o(i.Write_Init) refers to w25q128.o(i.W25QXX_Write) for W25QXX_Write + write.o(i.Write_Init) refers to ffixi.o(.text) for __aeabi_f2iz + write.o(i.Write_Init) refers to fmul.o(.text) for __aeabi_fmul write.o(i.Write_Init) refers to w25q128.o(i.W25QXX_Read) for W25QXX_Read write.o(i.Write_Init) refers to write.o(.data) for total write.o(i.Write_Init) refers to myfreertos.o(.data) for store_stage + write.o(i.Write_Init) refers to pid.o(.bss) for pid write.o(i.Write_Init) refers to write.o(.bss) for ArrayRead write.o(i.timelong_Compare) refers to rtc.o(i.RTC_Get) for RTC_Get write.o(i.timelong_Compare) refers to rtc.o(i.RTC_synchronization_ins) for RTC_synchronization_ins @@ -166,16 +176,15 @@ Section Cross References rs485.o(i.RS485_1_Send_Data_2) refers to dmul.o(.text) for __aeabi_dmul rs485.o(i.RS485_1_Send_Data_2) refers to dadd.o(.text) for __aeabi_dadd rs485.o(i.RS485_1_Send_Data_2) refers to dfixi.o(.text) for __aeabi_d2iz - rs485.o(i.RS485_1_Send_Data_2) refers to bufcut.o(i.bufcut_Init) for bufcut_Init rs485.o(i.RS485_1_Send_Data_2) refers to rs485.o(i.GetCRC16) for GetCRC16 - rs485.o(i.RS485_1_Send_Data_2) refers to stm32f10x_usart.o(i.USART_GetFlagStatus) for USART_GetFlagStatus - rs485.o(i.RS485_1_Send_Data_2) refers to stm32f10x_usart.o(i.USART_SendData) for USART_SendData rs485.o(i.RS485_1_Send_Data_2) refers to rs485.o(.data) for sendbuf rs485.o(i.RS485_1_Send_Data_2) refers to myfreertos.o(.data) for T - rs485.o(i.RS485_1_Send_Data_2) refers to myfreertos.o(.bss) for RS485_RX_BUF_COPY rs485.o(i.RS485_1_Send_Data_2) refers to write.o(.data) for total rs485.o(i.RS485_1_Send_Data_2) refers to pid.o(.bss) for pid - rs485.o(i.RS485_1_Send_Data_2) refers to rs485.o(.bss) for sendbuf_crc + rs485.o(i.RS485_1_Send_Data_2) refers to rs485.o(i.cmp_str) for cmp_str + rs485.o(i.RS485_1_Send_Data_2) refers to rs485.o(i.RS485_1_Send_Data) for RS485_1_Send_Data + rs485.o(i.RS485_1_Send_Data_2) refers to rs485.o(i.cp_str_to_prev) for cp_str_to_prev + rs485.o(i.RS485_1_Send_Data_3) refers to rs485.o(i.GetCRC16) for GetCRC16 rs485.o(i.RS485_1_Send_Data_3) refers to stm32f10x_usart.o(i.USART_GetFlagStatus) for USART_GetFlagStatus rs485.o(i.RS485_1_Send_Data_3) refers to stm32f10x_usart.o(i.USART_SendData) for USART_SendData rs485.o(i.RS485_1_Send_Data_3) refers to myfreertos.o(.data) for NUM @@ -305,6 +314,8 @@ Section Cross References pid.o(i.PID_Calc) refers to pid.o(.bss) for pid pid.o(i.PID_Calc) refers to myfreertos.o(.data) for gpio_state pid.o(i.PID_Calc) refers to pid.o(.data) for num + pid.o(i.PID_Init) refers to f2d.o(.text) for __aeabi_f2d + pid.o(i.PID_Init) refers to cdcmple.o(.text) for __aeabi_cdcmple pid.o(i.PID_Init) refers to pid.o(.bss) for pid pwmout.o(i.TIM2_IRQHandler) refers to stm32f10x_tim.o(i.TIM_GetITStatus) for TIM_GetITStatus pwmout.o(i.TIM2_IRQHandler) refers to stm32f10x_tim.o(i.TIM_ClearITPendingBit) for TIM_ClearITPendingBit @@ -1423,40 +1434,59 @@ Section Cross References heap_4.o(i.vPortFree) refers to heap_4.o(.data) for xBlockAllocatedBit heap_4.o(i.xPortGetFreeHeapSize) refers to heap_4.o(.data) for xFreeBytesRemaining heap_4.o(i.xPortGetMinimumEverFreeHeapSize) refers to heap_4.o(.data) for xMinimumEverFreeBytesRemaining + myfreertos.o(i.SensorDataRequestTask) refers to rs485.o(i.RS485_1_Send_Data_1) for RS485_1_Send_Data_1 + myfreertos.o(i.SensorDataRequestTask) refers to tasks.o(i.vTaskDelay) for vTaskDelay + myfreertos.o(i.SensorDataRequestTask) refers to myfreertos.o(.data) for rs485buf myfreertos.o(i.Sensor_Communication_task) refers to write.o(i.timelong_Compare) for timelong_Compare myfreertos.o(i.Sensor_Communication_task) refers to write.o(i.Array) for Array - myfreertos.o(i.Sensor_Communication_task) refers to rs485.o(i.RS485_1_Send_Data_1) for RS485_1_Send_Data_1 + myfreertos.o(i.Sensor_Communication_task) refers to printfa.o(i.__0printf) for __2printf myfreertos.o(i.Sensor_Communication_task) refers to systick.o(i.delay_xms) for delay_xms - myfreertos.o(i.Sensor_Communication_task) refers to rs485.o(i.RS485_1_Send_Data_3) for RS485_1_Send_Data_3 myfreertos.o(i.Sensor_Communication_task) refers to bufcut.o(i.bufcut_Init) for bufcut_Init - myfreertos.o(i.Sensor_Communication_task) refers to relays.o(i.HC595_Send_Byte) for HC595_Send_Byte - myfreertos.o(i.Sensor_Communication_task) refers to dfltui.o(.text) for __aeabi_ui2d - myfreertos.o(i.Sensor_Communication_task) refers to ddiv.o(.text) for __aeabi_ddiv - myfreertos.o(i.Sensor_Communication_task) refers to d2f.o(.text) for __aeabi_d2f - myfreertos.o(i.Sensor_Communication_task) refers to dflti.o(.text) for __aeabi_i2d - myfreertos.o(i.Sensor_Communication_task) refers to pid.o(i.PID_Calc) for PID_Calc - myfreertos.o(i.Sensor_Communication_task) refers to rs485.o(i.RS485_1_Send_Data_2) for RS485_1_Send_Data_2 + myfreertos.o(i.Sensor_Communication_task) refers to rs485.o(i.CRC16_check) for CRC16_check + myfreertos.o(i.Sensor_Communication_task) refers to memseta.o(.text) for __aeabi_memclr4 + myfreertos.o(i.Sensor_Communication_task) refers to myfreertos.o(i.process_sensor_data) for process_sensor_data myfreertos.o(i.Sensor_Communication_task) refers to bufcut.o(i.RX_BUF_Transfer) for RX_BUF_Transfer + myfreertos.o(i.Sensor_Communication_task) refers to write.o(i.Batch_synchronization) for Batch_synchronization myfreertos.o(i.Sensor_Communication_task) refers to write.o(i.Analysis) for Analysis myfreertos.o(i.Sensor_Communication_task) refers to write.o(i.Write_Init) for Write_Init myfreertos.o(i.Sensor_Communication_task) refers to rtc.o(i.RTC_synchronization_ins) for RTC_synchronization_ins - myfreertos.o(i.Sensor_Communication_task) refers to write.o(i.Batch_synchronization) for Batch_synchronization + myfreertos.o(i.Sensor_Communication_task) refers to dfltui.o(.text) for __aeabi_ui2d + myfreertos.o(i.Sensor_Communication_task) refers to dmul.o(.text) for __aeabi_dmul + myfreertos.o(i.Sensor_Communication_task) refers to dadd.o(.text) for __aeabi_dadd + myfreertos.o(i.Sensor_Communication_task) refers to d2f.o(.text) for __aeabi_d2f + myfreertos.o(i.Sensor_Communication_task) refers to ddiv.o(.text) for __aeabi_ddiv + myfreertos.o(i.Sensor_Communication_task) refers to myfreertos.o(i.process_hmi_btn_event) for process_hmi_btn_event + myfreertos.o(i.Sensor_Communication_task) refers to write.o(i.isAllZeros) for isAllZeros + myfreertos.o(i.Sensor_Communication_task) refers to dfixui.o(.text) for __aeabi_d2uiz + myfreertos.o(i.Sensor_Communication_task) refers to pwm.o(i.PWM_SetCompare1) for PWM_SetCompare1 myfreertos.o(i.Sensor_Communication_task) refers to myfreertos.o(.data) for now_stage myfreertos.o(i.Sensor_Communication_task) refers to rs485.o(.bss) for RS485_RX_BUF myfreertos.o(i.Sensor_Communication_task) refers to myfreertos.o(.bss) for RS485_RX_BUF_COPY myfreertos.o(i.Sensor_Communication_task) refers to rs485.o(.data) for RS485_RX_CNT myfreertos.o(i.Sensor_Communication_task) refers to pid.o(.bss) for pid - myfreertos.o(i.Sensor_Communication_task) refers to write.o(i.isAllZeros) for isAllZeros - myfreertos.o(i.Sensor_Communication_task) refers to dmul.o(.text) for __aeabi_dmul - myfreertos.o(i.Sensor_Communication_task) refers to dadd.o(.text) for __aeabi_dadd - myfreertos.o(i.Sensor_Communication_task) refers to dfixui.o(.text) for __aeabi_d2uiz - myfreertos.o(i.Sensor_Communication_task) refers to pwm.o(i.PWM_SetCompare1) for PWM_SetCompare1 myfreertos.o(i.Sensor_Communication_task) refers to pwm.o(i.PWM_SetCompare2) for PWM_SetCompare2 myfreertos.o(i.Sensor_Communication_task) refers to pwm.o(i.PWM_SetCompare4) for PWM_SetCompare4 + myfreertos.o(i.SyncEnvironmentDataRequestTask) refers to rs485.o(i.RS485_1_Send_Data_3) for RS485_1_Send_Data_3 + myfreertos.o(i.SyncEnvironmentDataRequestTask) refers to tasks.o(i.vTaskDelay) for vTaskDelay myfreertos.o(i.os_init) refers to tasks.o(i.xTaskCreate) for xTaskCreate myfreertos.o(i.os_init) refers to tasks.o(i.vTaskStartScheduler) for vTaskStartScheduler myfreertos.o(i.os_init) refers to myfreertos.o(.data) for StartTask_Handler myfreertos.o(i.os_init) refers to myfreertos.o(i.start_task) for start_task + myfreertos.o(i.os_init) refers to myfreertos.o(i.SensorDataRequestTask) for SensorDataRequestTask + myfreertos.o(i.os_init) refers to myfreertos.o(i.SyncEnvironmentDataRequestTask) for SyncEnvironmentDataRequestTask + myfreertos.o(i.process_hmi_btn_event) refers to rtc.o(i.RTC_synchronization_ins) for RTC_synchronization_ins + myfreertos.o(i.process_hmi_btn_event) refers to write.o(i.Write_Init) for Write_Init + myfreertos.o(i.process_hmi_btn_event) refers to myfreertos.o(.data) for now_stage + myfreertos.o(i.process_sensor_data) refers to relays.o(i.HC595_Send_Byte) for HC595_Send_Byte + myfreertos.o(i.process_sensor_data) refers to dfltui.o(.text) for __aeabi_ui2d + myfreertos.o(i.process_sensor_data) refers to ddiv.o(.text) for __aeabi_ddiv + myfreertos.o(i.process_sensor_data) refers to d2f.o(.text) for __aeabi_d2f + myfreertos.o(i.process_sensor_data) refers to dflti.o(.text) for __aeabi_i2d + myfreertos.o(i.process_sensor_data) refers to pid.o(i.PID_Calc) for PID_Calc + myfreertos.o(i.process_sensor_data) refers to rs485.o(i.RS485_1_Send_Data_2) for RS485_1_Send_Data_2 + myfreertos.o(i.process_sensor_data) refers to systick.o(i.delay_xms) for delay_xms + myfreertos.o(i.process_sensor_data) refers to myfreertos.o(.data) for T + myfreertos.o(i.process_sensor_data) refers to pid.o(.bss) for pid myfreertos.o(i.start_task) refers to port.o(i.vPortEnterCritical) for vPortEnterCritical myfreertos.o(i.start_task) refers to tasks.o(i.xTaskCreate) for xTaskCreate myfreertos.o(i.start_task) refers to tasks.o(i.vTaskDelete) for vTaskDelete @@ -1867,13 +1897,9 @@ Removing Unused input sections from the image. Removing w25q128.o(i.W25QXX_Erase_Chip), (44 bytes). Removing w25q128.o(i.W25QXX_PowerDown), (40 bytes). Removing w25q128.o(i.W25QXX_WAKEUP), (40 bytes). - Removing w25q128.o(i.W25QXX_Write), (184 bytes). Removing w25q128.o(i.W25QXX_Write_Disable), (32 bytes). Removing w25q128.o(i.W25QXX_Write_SR), (40 bytes). - Removing w25q128.o(.bss), (4096 bytes). Removing osc.o(i.OSC_Init), (84 bytes). - Removing rs485.o(i.CRC16_check), (76 bytes). - Removing rs485.o(i.RS485_1_Send_Data), (84 bytes). Removing rs485.o(i.RS485_2_Init), (228 bytes). Removing rs485.o(i.RS485_Receive_Data), (76 bytes). Removing rtc.o(i.RTC_Alarm_Set), (200 bytes). @@ -2583,12 +2609,10 @@ Removing Unused input sections from the image. Removing heap_4.o(i.vPortInitialiseBlocks), (2 bytes). Removing heap_4.o(i.xPortGetFreeHeapSize), (12 bytes). Removing heap_4.o(i.xPortGetMinimumEverFreeHeapSize), (12 bytes). - Removing f2d.o(.text), (38 bytes). - Removing cdcmple.o(.text), (48 bytes). Removing dscalb.o(.text), (46 bytes). Removing dsqrt.o(.text), (162 bytes). -724 unused section(s) (total 59728 bytes) removed from the image. +718 unused section(s) (total 55202 bytes) removed from the image. ============================================================================== @@ -2603,38 +2627,38 @@ Image Symbol Table ../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 entry2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.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 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE - ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE - ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE - ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE - ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE - ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE + ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE + ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE + ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE ../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.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 printf1.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.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 printf5.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.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/string/memcmp.c 0x00000000 Number 0 memcmp.o ABSOLUTE @@ -2653,26 +2677,26 @@ Image Symbol Table ../fplib/microlib/fpadd.c 0x00000000 Number 0 fadd.o ABSOLUTE ../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE ../fplib/microlib/fpdiv.c 0x00000000 Number 0 fdiv.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 ffixui.o ABSOLUTE - ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixi.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixul.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixui.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixi.o ABSOLUTE - ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE - ../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixui.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixi.o ABSOLUTE ../fplib/microlib/fpflt.c 0x00000000 Number 0 fflti.o ABSOLUTE - ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE ../fplib/microlib/fpmul.c 0x00000000 Number 0 fmul.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE ../fplib/microlib/fpscalb.c 0x00000000 Number 0 dscalb.o ABSOLUTE ../fplib/microlib/fpsqrt.c 0x00000000 Number 0 dsqrt.o ABSOLUTE ../mathlib/dunder.c 0x00000000 Number 0 dunder.o ABSOLUTE ../mathlib/floor.c 0x00000000 Number 0 floor.o ABSOLUTE ../mathlib/fpclassify.c 0x00000000 Number 0 fpclassify.o ABSOLUTE ../mathlib/poly.c 0x00000000 Number 0 poly.o ABSOLUTE - ../mathlib/pow.c 0x00000000 Number 0 pow_x.o ABSOLUTE ../mathlib/pow.c 0x00000000 Number 0 pow.o ABSOLUTE + ../mathlib/pow.c 0x00000000 Number 0 pow_x.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 @@ -2771,357 +2795,370 @@ Image Symbol Table .emb_text 0x08000100 Section 150 port.o(.emb_text) .text 0x08000198 Section 36 startup_stm32f10x_md.o(.text) .text 0x080001bc Section 0 memcpya.o(.text) - .text 0x080001e0 Section 0 fadd.o(.text) - .text 0x08000290 Section 0 fmul.o(.text) - .text 0x080002f4 Section 0 fdiv.o(.text) - .text 0x08000370 Section 0 dadd.o(.text) - .text 0x080004be Section 0 dmul.o(.text) - .text 0x080005a2 Section 0 ddiv.o(.text) - .text 0x08000680 Section 0 fflti.o(.text) - .text 0x08000692 Section 0 dflti.o(.text) - .text 0x080006b4 Section 0 dfltui.o(.text) - .text 0x080006ce Section 0 ffixi.o(.text) - .text 0x08000700 Section 0 ffixui.o(.text) - .text 0x08000728 Section 0 dfixi.o(.text) - .text 0x08000766 Section 0 dfixui.o(.text) - .text 0x08000798 Section 48 cdrcmple.o(.text) - .text 0x080007c8 Section 0 d2f.o(.text) - .text 0x08000800 Section 20 cfcmple.o(.text) - .text 0x08000814 Section 20 cfrcmple.o(.text) - .text 0x08000828 Section 0 uidiv.o(.text) - .text 0x08000854 Section 0 uldiv.o(.text) - .text 0x080008b6 Section 0 llshl.o(.text) - .text 0x080008d4 Section 0 llushr.o(.text) - .text 0x080008f4 Section 0 llsshr.o(.text) - .text 0x08000918 Section 0 fepilogue.o(.text) - .text 0x08000918 Section 0 iusefp.o(.text) - .text 0x08000986 Section 0 depilogue.o(.text) - .text 0x08000a40 Section 0 dfixul.o(.text) - .text 0x08000a70 Section 36 init.o(.text) - .text 0x08000a94 Section 0 __dczerorl2.o(.text) - i.Analysis 0x08000aec Section 0 write.o(i.Analysis) - i.Array 0x08000b64 Section 0 write.o(i.Array) - i.BKP_DeInit 0x08000cd4 Section 0 stm32f10x_bkp.o(i.BKP_DeInit) - i.BKP_ReadBackupRegister 0x08000ce4 Section 0 stm32f10x_bkp.o(i.BKP_ReadBackupRegister) - i.BKP_TamperPinCmd 0x08000d00 Section 0 stm32f10x_bkp.o(i.BKP_TamperPinCmd) - i.BKP_WriteBackupRegister 0x08000d0c Section 0 stm32f10x_bkp.o(i.BKP_WriteBackupRegister) - i.Batch_synchronization 0x08000d28 Section 0 write.o(i.Batch_synchronization) - i.BusFault_Handler 0x08000d58 Section 0 stm32f10x_it.o(i.BusFault_Handler) - i.DebugMon_Handler 0x08000d5c Section 0 stm32f10x_it.o(i.DebugMon_Handler) - i.GPIO_Init 0x08000d5e Section 0 stm32f10x_gpio.o(i.GPIO_Init) - i.GPIO_ResetBits 0x08000e74 Section 0 stm32f10x_gpio.o(i.GPIO_ResetBits) - i.GPIO_SetBits 0x08000e78 Section 0 stm32f10x_gpio.o(i.GPIO_SetBits) - i.GetCRC16 0x08000e7c Section 0 rs485.o(i.GetCRC16) - i.HC595_Pin_Init 0x08000eb8 Section 0 relays.o(i.HC595_Pin_Init) - i.HC595_Send_Byte 0x08000f08 Section 0 relays.o(i.HC595_Send_Byte) - i.HC595_Send_Data 0x08000f4c Section 0 relays.o(i.HC595_Send_Data) - i.HardFault_Handler 0x08000f98 Section 0 stm32f10x_it.o(i.HardFault_Handler) - i.IWDG_Enable 0x08000f9c Section 0 stm32f10x_iwdg.o(i.IWDG_Enable) - i.IWDG_FeedDog 0x08000fac Section 0 iwdg.o(i.IWDG_FeedDog) - i.IWDG_ReloadCounter 0x08000fb4 Section 0 stm32f10x_iwdg.o(i.IWDG_ReloadCounter) - i.IWDG_SetPrescaler 0x08000fc4 Section 0 stm32f10x_iwdg.o(i.IWDG_SetPrescaler) - i.IWDG_SetReload 0x08000fd0 Section 0 stm32f10x_iwdg.o(i.IWDG_SetReload) - i.IWDG_WriteAccessCmd 0x08000fdc Section 0 stm32f10x_iwdg.o(i.IWDG_WriteAccessCmd) - i.Is_Leap_Year 0x08000fe8 Section 0 rtc.o(i.Is_Leap_Year) - i.MemManage_Handler 0x08001022 Section 0 stm32f10x_it.o(i.MemManage_Handler) - i.NMI_Handler 0x08001026 Section 0 stm32f10x_it.o(i.NMI_Handler) - i.NVIC_Init 0x08001028 Section 0 misc.o(i.NVIC_Init) - i.NVIC_PriorityGroupConfig 0x08001098 Section 0 misc.o(i.NVIC_PriorityGroupConfig) - i.PID_Calc 0x080010ac Section 0 pid.o(i.PID_Calc) - i.PID_Init 0x080013b0 Section 0 pid.o(i.PID_Init) - i.PWM1_Init 0x080013e4 Section 0 pwm.o(i.PWM1_Init) - i.PWM2_Init 0x08001488 Section 0 pwm.o(i.PWM2_Init) - i.PWM3_Init 0x0800152c Section 0 pwm.o(i.PWM3_Init) - i.PWM_SetCompare1 0x080015b8 Section 0 pwm.o(i.PWM_SetCompare1) - i.PWM_SetCompare2 0x080015cc Section 0 pwm.o(i.PWM_SetCompare2) - i.PWM_SetCompare4 0x080015dc Section 0 pwm.o(i.PWM_SetCompare4) - i.PWR_BackupAccessCmd 0x080015f0 Section 0 stm32f10x_pwr.o(i.PWR_BackupAccessCmd) - i.RCC_APB1PeriphClockCmd 0x080015fc Section 0 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) - i.RCC_APB2PeriphClockCmd 0x0800161c Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) - i.RCC_APB2PeriphResetCmd 0x0800163c Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) - i.RCC_BackupResetCmd 0x0800165c Section 0 stm32f10x_rcc.o(i.RCC_BackupResetCmd) - i.RCC_GetClocksFreq 0x08001668 Section 0 stm32f10x_rcc.o(i.RCC_GetClocksFreq) - i.RCC_GetFlagStatus 0x0800173c Section 0 stm32f10x_rcc.o(i.RCC_GetFlagStatus) - i.RCC_HSEConfig 0x08001778 Section 0 stm32f10x_rcc.o(i.RCC_HSEConfig) - i.RCC_LSEConfig 0x080017c4 Section 0 stm32f10x_rcc.o(i.RCC_LSEConfig) - i.RCC_RTCCLKCmd 0x080017f8 Section 0 stm32f10x_rcc.o(i.RCC_RTCCLKCmd) - i.RCC_RTCCLKConfig 0x08001804 Section 0 stm32f10x_rcc.o(i.RCC_RTCCLKConfig) - i.RS485_1_Init 0x08001814 Section 0 rs485.o(i.RS485_1_Init) - i.RS485_1_Send_Data_1 0x08001900 Section 0 rs485.o(i.RS485_1_Send_Data_1) - i.RS485_1_Send_Data_2 0x0800194c Section 0 rs485.o(i.RS485_1_Send_Data_2) - i.RS485_1_Send_Data_3 0x08001dd8 Section 0 rs485.o(i.RS485_1_Send_Data_3) - i.RS485_3_Init 0x08001e54 Section 0 rs485.o(i.RS485_3_Init) - i.RS485_3_Send_Data 0x08001f3c Section 0 rs485.o(i.RS485_3_Send_Data) - i.RTC_ClearITPendingBit 0x08001f88 Section 0 stm32f10x_rtc.o(i.RTC_ClearITPendingBit) - i.RTC_EnterConfigMode 0x08001f98 Section 0 stm32f10x_rtc.o(i.RTC_EnterConfigMode) - i.RTC_ExitConfigMode 0x08001fac Section 0 stm32f10x_rtc.o(i.RTC_ExitConfigMode) - i.RTC_Get 0x08001fc0 Section 0 rtc.o(i.RTC_Get) - i.RTC_GetCounter 0x080020d8 Section 0 stm32f10x_rtc.o(i.RTC_GetCounter) - i.RTC_GetITStatus 0x080020ec Section 0 stm32f10x_rtc.o(i.RTC_GetITStatus) - i.RTC_Get_Week 0x08002110 Section 0 rtc.o(i.RTC_Get_Week) - i.RTC_IRQHandler 0x08002188 Section 0 rtc.o(i.RTC_IRQHandler) - i.RTC_ITConfig 0x080021c4 Section 0 stm32f10x_rtc.o(i.RTC_ITConfig) - i.RTC_Init 0x080021e4 Section 0 rtc.o(i.RTC_Init) - i.RTC_NVIC_Config 0x080022b0 Section 0 rtc.o(i.RTC_NVIC_Config) - RTC_NVIC_Config 0x080022b1 Thumb Code 26 rtc.o(i.RTC_NVIC_Config) - i.RTC_Set 0x080022cc Section 0 rtc.o(i.RTC_Set) - i.RTC_SetCounter 0x08002394 Section 0 stm32f10x_rtc.o(i.RTC_SetCounter) - i.RTC_SetPrescaler 0x080023b0 Section 0 stm32f10x_rtc.o(i.RTC_SetPrescaler) - i.RTC_WaitForLastTask 0x080023d0 Section 0 stm32f10x_rtc.o(i.RTC_WaitForLastTask) - i.RTC_WaitForSynchro 0x080023e4 Section 0 stm32f10x_rtc.o(i.RTC_WaitForSynchro) - i.RTC_synchronization_ins 0x08002408 Section 0 rtc.o(i.RTC_synchronization_ins) - i.RX_BUF_Transfer 0x080024c0 Section 0 bufcut.o(i.RX_BUF_Transfer) - i.Read_Init 0x080024f4 Section 0 write.o(i.Read_Init) - i.SN74CB3Q3253_Init 0x08002534 Section 0 rs485.o(i.SN74CB3Q3253_Init) - i.SPI1_Init 0x08002568 Section 0 myspi.o(i.SPI1_Init) - i.SPI1_ReadWriteByte 0x080025f8 Section 0 myspi.o(i.SPI1_ReadWriteByte) - i.SPI1_SetSpeed 0x0800264c Section 0 myspi.o(i.SPI1_SetSpeed) - i.SPI_Cmd 0x08002678 Section 0 stm32f10x_spi.o(i.SPI_Cmd) - i.SPI_I2S_GetFlagStatus 0x08002690 Section 0 stm32f10x_spi.o(i.SPI_I2S_GetFlagStatus) - i.SPI_I2S_ReceiveData 0x080026a2 Section 0 stm32f10x_spi.o(i.SPI_I2S_ReceiveData) - i.SPI_I2S_SendData 0x080026a8 Section 0 stm32f10x_spi.o(i.SPI_I2S_SendData) - i.SPI_Init 0x080026ac Section 0 stm32f10x_spi.o(i.SPI_Init) - i.Sensor_Communication_task 0x080026e8 Section 0 myfreertos.o(i.Sensor_Communication_task) - i.SetSysClock 0x08002cc4 Section 0 system_stm32f10x.o(i.SetSysClock) - SetSysClock 0x08002cc5 Thumb Code 8 system_stm32f10x.o(i.SetSysClock) - i.SetSysClockTo72 0x08002ccc Section 0 system_stm32f10x.o(i.SetSysClockTo72) - SetSysClockTo72 0x08002ccd Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72) - i.SysTick_CLKSourceConfig 0x08002dac Section 0 misc.o(i.SysTick_CLKSourceConfig) - i.SysTick_Handler 0x08002dd4 Section 0 stm32f10x_it.o(i.SysTick_Handler) - i.SysTick_Init 0x08002de4 Section 0 systick.o(i.SysTick_Init) - i.SystemInit 0x08002e40 Section 0 system_stm32f10x.o(i.SystemInit) - i.TIM2_IRQHandler 0x08002ea0 Section 0 pwmout.o(i.TIM2_IRQHandler) - i.TIM2_Init 0x08002ec4 Section 0 pwmout.o(i.TIM2_Init) - i.TIM4_IRQHandler 0x08002f20 Section 0 pwm.o(i.TIM4_IRQHandler) - i.TIM4_Init 0x08002f68 Section 0 pwm.o(i.TIM4_Init) - i.TIM_ARRPreloadConfig 0x08002fc0 Section 0 stm32f10x_tim.o(i.TIM_ARRPreloadConfig) - i.TIM_ClearITPendingBit 0x08002fd8 Section 0 stm32f10x_tim.o(i.TIM_ClearITPendingBit) - i.TIM_Cmd 0x08002fde Section 0 stm32f10x_tim.o(i.TIM_Cmd) - i.TIM_CtrlPWMOutputs 0x08002ff6 Section 0 stm32f10x_tim.o(i.TIM_CtrlPWMOutputs) - i.TIM_GetITStatus 0x08003014 Section 0 stm32f10x_tim.o(i.TIM_GetITStatus) - i.TIM_ITConfig 0x08003036 Section 0 stm32f10x_tim.o(i.TIM_ITConfig) - i.TIM_OC1Init 0x08003048 Section 0 stm32f10x_tim.o(i.TIM_OC1Init) - i.TIM_OC1PreloadConfig 0x080030e0 Section 0 stm32f10x_tim.o(i.TIM_OC1PreloadConfig) - i.TIM_OC2Init 0x080030f4 Section 0 stm32f10x_tim.o(i.TIM_OC2Init) - i.TIM_OC3Init 0x08003198 Section 0 stm32f10x_tim.o(i.TIM_OC3Init) - i.TIM_OC4Init 0x08003238 Section 0 stm32f10x_tim.o(i.TIM_OC4Init) - i.TIM_OC4PreloadConfig 0x080032b4 Section 0 stm32f10x_tim.o(i.TIM_OC4PreloadConfig) - i.TIM_OCStructInit 0x080032ce Section 0 stm32f10x_tim.o(i.TIM_OCStructInit) - i.TIM_SetCompare1 0x080032e2 Section 0 stm32f10x_tim.o(i.TIM_SetCompare1) - i.TIM_SetCompare2 0x080032e6 Section 0 stm32f10x_tim.o(i.TIM_SetCompare2) - i.TIM_SetCompare3 0x080032ea Section 0 stm32f10x_tim.o(i.TIM_SetCompare3) - i.TIM_SetCompare4 0x080032ee Section 0 stm32f10x_tim.o(i.TIM_SetCompare4) - i.TIM_TimeBaseInit 0x080032f4 Section 0 stm32f10x_tim.o(i.TIM_TimeBaseInit) - i.TimePwm_init 0x08003398 Section 0 pwmout.o(i.TimePwm_init) - i.USART1_IRQHandler 0x08003428 Section 0 rs485.o(i.USART1_IRQHandler) - i.USART2_IRQHandler 0x08003468 Section 0 usart.o(i.USART2_IRQHandler) - i.USART2_Init 0x080034f0 Section 0 usart.o(i.USART2_Init) - i.USART_Cmd 0x080035b8 Section 0 stm32f10x_usart.o(i.USART_Cmd) - i.USART_GetFlagStatus 0x080035d0 Section 0 stm32f10x_usart.o(i.USART_GetFlagStatus) - i.USART_GetITStatus 0x080035ea Section 0 stm32f10x_usart.o(i.USART_GetITStatus) - i.USART_ITConfig 0x0800363e Section 0 stm32f10x_usart.o(i.USART_ITConfig) - i.USART_Init 0x08003688 Section 0 stm32f10x_usart.o(i.USART_Init) - i.USART_ReceiveData 0x08003760 Section 0 stm32f10x_usart.o(i.USART_ReceiveData) - i.USART_SendData 0x0800376a Section 0 stm32f10x_usart.o(i.USART_SendData) - i.UsageFault_Handler 0x08003772 Section 0 stm32f10x_it.o(i.UsageFault_Handler) - i.W25QXX_Erase_Sector 0x08003778 Section 0 w25q128.o(i.W25QXX_Erase_Sector) - i.W25QXX_Init 0x080037c0 Section 0 w25q128.o(i.W25QXX_Init) - i.W25QXX_Read 0x08003810 Section 0 w25q128.o(i.W25QXX_Read) - i.W25QXX_ReadID 0x08003860 Section 0 w25q128.o(i.W25QXX_ReadID) - i.W25QXX_ReadSR 0x080038a8 Section 0 w25q128.o(i.W25QXX_ReadSR) - i.W25QXX_Wait_Busy 0x080038d4 Section 0 w25q128.o(i.W25QXX_Wait_Busy) - i.W25QXX_Write_Enable 0x080038e8 Section 0 w25q128.o(i.W25QXX_Write_Enable) - i.W25QXX_Write_NoCheck 0x08003908 Section 0 w25q128.o(i.W25QXX_Write_NoCheck) - i.W25QXX_Write_Page 0x08003950 Section 0 w25q128.o(i.W25QXX_Write_Page) - i.Write_Init 0x080039a4 Section 0 write.o(i.Write_Init) - i.__0printf 0x080039e4 Section 0 printfa.o(i.__0printf) - i.__scatterload_copy 0x08003a04 Section 14 handlers.o(i.__scatterload_copy) - i.__scatterload_null 0x08003a12 Section 2 handlers.o(i.__scatterload_null) - i.__scatterload_zeroinit 0x08003a14 Section 14 handlers.o(i.__scatterload_zeroinit) - i._fp_digits 0x08003a24 Section 0 printfa.o(i._fp_digits) - _fp_digits 0x08003a25 Thumb Code 366 printfa.o(i._fp_digits) - i._printf_core 0x08003ba8 Section 0 printfa.o(i._printf_core) - _printf_core 0x08003ba9 Thumb Code 1744 printfa.o(i._printf_core) - i._printf_post_padding 0x08004284 Section 0 printfa.o(i._printf_post_padding) - _printf_post_padding 0x08004285 Thumb Code 36 printfa.o(i._printf_post_padding) - i._printf_pre_padding 0x080042a8 Section 0 printfa.o(i._printf_pre_padding) - _printf_pre_padding 0x080042a9 Thumb Code 46 printfa.o(i._printf_pre_padding) - i.bufcut_Init 0x080042d6 Section 0 bufcut.o(i.bufcut_Init) - i.delay_ms 0x080042f0 Section 0 systick.o(i.delay_ms) - i.delay_us 0x08004330 Section 0 systick.o(i.delay_us) - i.delay_xms 0x08004378 Section 0 systick.o(i.delay_xms) - i.fputc 0x08004390 Section 0 usart.o(i.fputc) - i.isAllZeros 0x080043c4 Section 0 write.o(i.isAllZeros) - i.iwdg_my_Init 0x080043de Section 0 iwdg.o(i.iwdg_my_Init) - i.main 0x08004402 Section 0 main.o(i.main) - i.os_init 0x08004494 Section 0 myfreertos.o(i.os_init) - i.prvAddCurrentTaskToDelayedList 0x080044c4 Section 0 tasks.o(i.prvAddCurrentTaskToDelayedList) - prvAddCurrentTaskToDelayedList 0x080044c5 Thumb Code 124 tasks.o(i.prvAddCurrentTaskToDelayedList) - i.prvAddNewTaskToReadyList 0x0800455c Section 0 tasks.o(i.prvAddNewTaskToReadyList) - prvAddNewTaskToReadyList 0x0800455d Thumb Code 150 tasks.o(i.prvAddNewTaskToReadyList) - i.prvCheckForValidListAndQueue 0x08004610 Section 0 timers.o(i.prvCheckForValidListAndQueue) - prvCheckForValidListAndQueue 0x08004611 Thumb Code 72 timers.o(i.prvCheckForValidListAndQueue) - i.prvCheckTasksWaitingTermination 0x08004674 Section 0 tasks.o(i.prvCheckTasksWaitingTermination) - prvCheckTasksWaitingTermination 0x08004675 Thumb Code 86 tasks.o(i.prvCheckTasksWaitingTermination) - i.prvCopyDataFromQueue 0x080046d8 Section 0 queue.o(i.prvCopyDataFromQueue) - prvCopyDataFromQueue 0x080046d9 Thumb Code 42 queue.o(i.prvCopyDataFromQueue) - i.prvCopyDataToQueue 0x08004702 Section 0 queue.o(i.prvCopyDataToQueue) - prvCopyDataToQueue 0x08004703 Thumb Code 124 queue.o(i.prvCopyDataToQueue) - i.prvDeleteTCB 0x0800477e Section 0 tasks.o(i.prvDeleteTCB) - prvDeleteTCB 0x0800477f Thumb Code 18 tasks.o(i.prvDeleteTCB) - i.prvGetNextExpireTime 0x08004790 Section 0 timers.o(i.prvGetNextExpireTime) - prvGetNextExpireTime 0x08004791 Thumb Code 36 timers.o(i.prvGetNextExpireTime) - i.prvHeapInit 0x080047b8 Section 0 heap_4.o(i.prvHeapInit) - prvHeapInit 0x080047b9 Thumb Code 98 heap_4.o(i.prvHeapInit) - i.prvIdleTask 0x08004834 Section 0 tasks.o(i.prvIdleTask) - prvIdleTask 0x08004835 Thumb Code 32 tasks.o(i.prvIdleTask) - i.prvInitialiseNewQueue 0x0800485c Section 0 queue.o(i.prvInitialiseNewQueue) - prvInitialiseNewQueue 0x0800485d Thumb Code 42 queue.o(i.prvInitialiseNewQueue) - i.prvInitialiseNewTask 0x08004888 Section 0 tasks.o(i.prvInitialiseNewTask) - prvInitialiseNewTask 0x08004889 Thumb Code 160 tasks.o(i.prvInitialiseNewTask) - i.prvInitialiseTaskLists 0x0800494c Section 0 tasks.o(i.prvInitialiseTaskLists) - prvInitialiseTaskLists 0x0800494d Thumb Code 70 tasks.o(i.prvInitialiseTaskLists) - i.prvInsertBlockIntoFreeList 0x080049b4 Section 0 heap_4.o(i.prvInsertBlockIntoFreeList) - prvInsertBlockIntoFreeList 0x080049b5 Thumb Code 96 heap_4.o(i.prvInsertBlockIntoFreeList) - i.prvInsertTimerInActiveList 0x08004a1c Section 0 timers.o(i.prvInsertTimerInActiveList) - prvInsertTimerInActiveList 0x08004a1d Thumb Code 80 timers.o(i.prvInsertTimerInActiveList) - i.prvIsQueueEmpty 0x08004a74 Section 0 queue.o(i.prvIsQueueEmpty) - prvIsQueueEmpty 0x08004a75 Thumb Code 26 queue.o(i.prvIsQueueEmpty) - i.prvIsQueueFull 0x08004a8e Section 0 queue.o(i.prvIsQueueFull) - prvIsQueueFull 0x08004a8f Thumb Code 30 queue.o(i.prvIsQueueFull) - i.prvNotifyQueueSetContainer 0x08004aac Section 0 queue.o(i.prvNotifyQueueSetContainer) - prvNotifyQueueSetContainer 0x08004aad Thumb Code 124 queue.o(i.prvNotifyQueueSetContainer) - i.prvProcessExpiredTimer 0x08004b74 Section 0 timers.o(i.prvProcessExpiredTimer) - prvProcessExpiredTimer 0x08004b75 Thumb Code 84 timers.o(i.prvProcessExpiredTimer) - i.prvProcessReceivedCommands 0x08004bf4 Section 0 timers.o(i.prvProcessReceivedCommands) - prvProcessReceivedCommands 0x08004bf5 Thumb Code 222 timers.o(i.prvProcessReceivedCommands) - i.prvProcessTimerOrBlockTask 0x08004d00 Section 0 timers.o(i.prvProcessTimerOrBlockTask) - prvProcessTimerOrBlockTask 0x08004d01 Thumb Code 102 timers.o(i.prvProcessTimerOrBlockTask) - i.prvResetNextTaskUnblockTime 0x08004d74 Section 0 tasks.o(i.prvResetNextTaskUnblockTime) - prvResetNextTaskUnblockTime 0x08004d75 Thumb Code 42 tasks.o(i.prvResetNextTaskUnblockTime) - i.prvSampleTimeNow 0x08004da8 Section 0 timers.o(i.prvSampleTimeNow) - prvSampleTimeNow 0x08004da9 Thumb Code 40 timers.o(i.prvSampleTimeNow) - i.prvSwitchTimerLists 0x08004dd4 Section 0 timers.o(i.prvSwitchTimerLists) - prvSwitchTimerLists 0x08004dd5 Thumb Code 140 timers.o(i.prvSwitchTimerLists) - i.prvTaskExitError 0x08004e90 Section 0 port.o(i.prvTaskExitError) - prvTaskExitError 0x08004e91 Thumb Code 48 port.o(i.prvTaskExitError) - i.prvTimerTask 0x08004f00 Section 0 timers.o(i.prvTimerTask) - prvTimerTask 0x08004f01 Thumb Code 26 timers.o(i.prvTimerTask) - i.prvUnlockQueue 0x08004f1a Section 0 queue.o(i.prvUnlockQueue) - prvUnlockQueue 0x08004f1b Thumb Code 146 queue.o(i.prvUnlockQueue) - i.pvPortMalloc 0x08004fac Section 0 heap_4.o(i.pvPortMalloc) - i.pvTaskIncrementMutexHeldCount 0x08005100 Section 0 tasks.o(i.pvTaskIncrementMutexHeldCount) - i.pxPortInitialiseStack 0x08005120 Section 0 port.o(i.pxPortInitialiseStack) - i.start_task 0x08005144 Section 0 myfreertos.o(i.start_task) - i.timelong_Compare 0x080051a0 Section 0 write.o(i.timelong_Compare) - i.uxListRemove 0x08005260 Section 0 list.o(i.uxListRemove) - i.vListInitialise 0x08005288 Section 0 list.o(i.vListInitialise) - i.vListInitialiseItem 0x080052a2 Section 0 list.o(i.vListInitialiseItem) - i.vListInsert 0x080052a8 Section 0 list.o(i.vListInsert) - i.vListInsertEnd 0x080052dc Section 0 list.o(i.vListInsertEnd) - i.vPortEnterCritical 0x080052f4 Section 0 port.o(i.vPortEnterCritical) - i.vPortExitCritical 0x0800537c Section 0 port.o(i.vPortExitCritical) - i.vPortFree 0x080053ec Section 0 heap_4.o(i.vPortFree) - i.vPortSetupTimerInterrupt 0x080054a4 Section 0 port.o(i.vPortSetupTimerInterrupt) - i.vPortValidateInterruptPriority 0x080054c4 Section 0 port.o(i.vPortValidateInterruptPriority) - i.vQueueAddToRegistry 0x08005564 Section 0 queue.o(i.vQueueAddToRegistry) - i.vQueueWaitForMessageRestricted 0x08005590 Section 0 queue.o(i.vQueueWaitForMessageRestricted) - i.vTaskDelay 0x080055dc Section 0 tasks.o(i.vTaskDelay) - i.vTaskDelete 0x08005650 Section 0 tasks.o(i.vTaskDelete) - i.vTaskMissedYield 0x0800575c Section 0 tasks.o(i.vTaskMissedYield) - i.vTaskPlaceOnEventList 0x08005768 Section 0 tasks.o(i.vTaskPlaceOnEventList) - i.vTaskPlaceOnEventListRestricted 0x080057bc Section 0 tasks.o(i.vTaskPlaceOnEventListRestricted) - i.vTaskPriorityInherit 0x08005818 Section 0 tasks.o(i.vTaskPriorityInherit) - i.vTaskSetTimeOutState 0x080058c8 Section 0 tasks.o(i.vTaskSetTimeOutState) - i.vTaskStartScheduler 0x08005914 Section 0 tasks.o(i.vTaskStartScheduler) - i.vTaskSuspendAll 0x080059c0 Section 0 tasks.o(i.vTaskSuspendAll) - i.vTaskSwitchContext 0x080059d0 Section 0 tasks.o(i.vTaskSwitchContext) - i.xPortStartScheduler 0x08005a78 Section 0 port.o(i.xPortStartScheduler) - i.xPortSysTickHandler 0x08005b18 Section 0 port.o(i.xPortSysTickHandler) - i.xQueueGenericCreate 0x08005b4c Section 0 queue.o(i.xQueueGenericCreate) - i.xQueueGenericReceive 0x08005be8 Section 0 queue.o(i.xQueueGenericReceive) - i.xQueueGenericReset 0x08005dd8 Section 0 queue.o(i.xQueueGenericReset) - i.xQueueGenericSend 0x08005eb0 Section 0 queue.o(i.xQueueGenericSend) - i.xQueueGenericSendFromISR 0x0800609c Section 0 queue.o(i.xQueueGenericSendFromISR) - i.xTaskCheckForTimeOut 0x080061d4 Section 0 tasks.o(i.xTaskCheckForTimeOut) - i.xTaskCreate 0x08006274 Section 0 tasks.o(i.xTaskCreate) - i.xTaskGetSchedulerState 0x080062d4 Section 0 tasks.o(i.xTaskGetSchedulerState) - i.xTaskGetTickCount 0x080062f4 Section 0 tasks.o(i.xTaskGetTickCount) - i.xTaskIncrementTick 0x08006300 Section 0 tasks.o(i.xTaskIncrementTick) - i.xTaskPriorityDisinherit 0x08006460 Section 0 tasks.o(i.xTaskPriorityDisinherit) - i.xTaskRemoveFromEventList 0x08006538 Section 0 tasks.o(i.xTaskRemoveFromEventList) - i.xTaskResumeAll 0x080065ec Section 0 tasks.o(i.xTaskResumeAll) - i.xTimerCreateTimerTask 0x0800670c Section 0 timers.o(i.xTimerCreateTimerTask) - i.xTimerGenericCommand 0x08006780 Section 0 timers.o(i.xTimerGenericCommand) - .constdata 0x08006820 Section 512 rs485.o(.constdata) - .constdata 0x08006a20 Section 24 rtc.o(.constdata) + .text 0x080001e0 Section 0 memseta.o(.text) + .text 0x08000204 Section 0 fadd.o(.text) + .text 0x080002b4 Section 0 fmul.o(.text) + .text 0x08000318 Section 0 fdiv.o(.text) + .text 0x08000394 Section 0 dadd.o(.text) + .text 0x080004e2 Section 0 dmul.o(.text) + .text 0x080005c6 Section 0 ddiv.o(.text) + .text 0x080006a4 Section 0 fflti.o(.text) + .text 0x080006b6 Section 0 dflti.o(.text) + .text 0x080006d8 Section 0 dfltui.o(.text) + .text 0x080006f2 Section 0 ffixi.o(.text) + .text 0x08000724 Section 0 ffixui.o(.text) + .text 0x0800074c Section 0 dfixi.o(.text) + .text 0x0800078a Section 0 dfixui.o(.text) + .text 0x080007bc Section 0 f2d.o(.text) + .text 0x080007e4 Section 48 cdcmple.o(.text) + .text 0x08000814 Section 48 cdrcmple.o(.text) + .text 0x08000844 Section 0 d2f.o(.text) + .text 0x0800087c Section 20 cfcmple.o(.text) + .text 0x08000890 Section 20 cfrcmple.o(.text) + .text 0x080008a4 Section 0 uidiv.o(.text) + .text 0x080008d0 Section 0 uldiv.o(.text) + .text 0x08000932 Section 0 llshl.o(.text) + .text 0x08000950 Section 0 llushr.o(.text) + .text 0x08000970 Section 0 llsshr.o(.text) + .text 0x08000994 Section 0 iusefp.o(.text) + .text 0x08000994 Section 0 fepilogue.o(.text) + .text 0x08000a02 Section 0 depilogue.o(.text) + .text 0x08000abc Section 0 dfixul.o(.text) + .text 0x08000aec Section 36 init.o(.text) + .text 0x08000b10 Section 0 __dczerorl2.o(.text) + i.Analysis 0x08000b68 Section 0 write.o(i.Analysis) + i.Array 0x08000be0 Section 0 write.o(i.Array) + i.BKP_DeInit 0x08000d50 Section 0 stm32f10x_bkp.o(i.BKP_DeInit) + i.BKP_ReadBackupRegister 0x08000d60 Section 0 stm32f10x_bkp.o(i.BKP_ReadBackupRegister) + i.BKP_TamperPinCmd 0x08000d7c Section 0 stm32f10x_bkp.o(i.BKP_TamperPinCmd) + i.BKP_WriteBackupRegister 0x08000d88 Section 0 stm32f10x_bkp.o(i.BKP_WriteBackupRegister) + i.Batch_synchronization 0x08000da4 Section 0 write.o(i.Batch_synchronization) + i.BusFault_Handler 0x08000dd4 Section 0 stm32f10x_it.o(i.BusFault_Handler) + i.CRC16_check 0x08000dd8 Section 0 rs485.o(i.CRC16_check) + i.DebugMon_Handler 0x08000e24 Section 0 stm32f10x_it.o(i.DebugMon_Handler) + i.GPIO_Init 0x08000e26 Section 0 stm32f10x_gpio.o(i.GPIO_Init) + i.GPIO_ResetBits 0x08000f3c Section 0 stm32f10x_gpio.o(i.GPIO_ResetBits) + i.GPIO_SetBits 0x08000f40 Section 0 stm32f10x_gpio.o(i.GPIO_SetBits) + i.GetCRC16 0x08000f44 Section 0 rs485.o(i.GetCRC16) + i.HC595_Pin_Init 0x08000f80 Section 0 relays.o(i.HC595_Pin_Init) + i.HC595_Send_Byte 0x08000fd0 Section 0 relays.o(i.HC595_Send_Byte) + i.HC595_Send_Data 0x08001014 Section 0 relays.o(i.HC595_Send_Data) + i.HardFault_Handler 0x08001060 Section 0 stm32f10x_it.o(i.HardFault_Handler) + i.IWDG_Enable 0x08001064 Section 0 stm32f10x_iwdg.o(i.IWDG_Enable) + i.IWDG_FeedDog 0x08001074 Section 0 iwdg.o(i.IWDG_FeedDog) + i.IWDG_ReloadCounter 0x0800107c Section 0 stm32f10x_iwdg.o(i.IWDG_ReloadCounter) + i.IWDG_SetPrescaler 0x0800108c Section 0 stm32f10x_iwdg.o(i.IWDG_SetPrescaler) + i.IWDG_SetReload 0x08001098 Section 0 stm32f10x_iwdg.o(i.IWDG_SetReload) + i.IWDG_WriteAccessCmd 0x080010a4 Section 0 stm32f10x_iwdg.o(i.IWDG_WriteAccessCmd) + i.Is_Leap_Year 0x080010b0 Section 0 rtc.o(i.Is_Leap_Year) + i.MemManage_Handler 0x080010ea Section 0 stm32f10x_it.o(i.MemManage_Handler) + i.NMI_Handler 0x080010ee Section 0 stm32f10x_it.o(i.NMI_Handler) + i.NVIC_Init 0x080010f0 Section 0 misc.o(i.NVIC_Init) + i.NVIC_PriorityGroupConfig 0x08001160 Section 0 misc.o(i.NVIC_PriorityGroupConfig) + i.PID_Calc 0x08001174 Section 0 pid.o(i.PID_Calc) + i.PID_Init 0x08001478 Section 0 pid.o(i.PID_Init) + i.PWM1_Init 0x080014f8 Section 0 pwm.o(i.PWM1_Init) + i.PWM2_Init 0x0800159c Section 0 pwm.o(i.PWM2_Init) + i.PWM3_Init 0x08001640 Section 0 pwm.o(i.PWM3_Init) + i.PWM_SetCompare1 0x080016cc Section 0 pwm.o(i.PWM_SetCompare1) + i.PWM_SetCompare2 0x080016e0 Section 0 pwm.o(i.PWM_SetCompare2) + i.PWM_SetCompare4 0x080016f0 Section 0 pwm.o(i.PWM_SetCompare4) + i.PWR_BackupAccessCmd 0x08001704 Section 0 stm32f10x_pwr.o(i.PWR_BackupAccessCmd) + i.RCC_APB1PeriphClockCmd 0x08001710 Section 0 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) + i.RCC_APB2PeriphClockCmd 0x08001730 Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) + i.RCC_APB2PeriphResetCmd 0x08001750 Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) + i.RCC_BackupResetCmd 0x08001770 Section 0 stm32f10x_rcc.o(i.RCC_BackupResetCmd) + i.RCC_GetClocksFreq 0x0800177c Section 0 stm32f10x_rcc.o(i.RCC_GetClocksFreq) + i.RCC_GetFlagStatus 0x08001850 Section 0 stm32f10x_rcc.o(i.RCC_GetFlagStatus) + i.RCC_HSEConfig 0x0800188c Section 0 stm32f10x_rcc.o(i.RCC_HSEConfig) + i.RCC_LSEConfig 0x080018d8 Section 0 stm32f10x_rcc.o(i.RCC_LSEConfig) + i.RCC_RTCCLKCmd 0x0800190c Section 0 stm32f10x_rcc.o(i.RCC_RTCCLKCmd) + i.RCC_RTCCLKConfig 0x08001918 Section 0 stm32f10x_rcc.o(i.RCC_RTCCLKConfig) + i.RS485_1_Init 0x08001928 Section 0 rs485.o(i.RS485_1_Init) + i.RS485_1_Send_Data 0x08001a14 Section 0 rs485.o(i.RS485_1_Send_Data) + i.RS485_1_Send_Data_1 0x08001a68 Section 0 rs485.o(i.RS485_1_Send_Data_1) + i.RS485_1_Send_Data_2 0x08001ab4 Section 0 rs485.o(i.RS485_1_Send_Data_2) + i.RS485_1_Send_Data_3 0x08001f78 Section 0 rs485.o(i.RS485_1_Send_Data_3) + i.RS485_3_Init 0x08002008 Section 0 rs485.o(i.RS485_3_Init) + i.RS485_3_Send_Data 0x080020f0 Section 0 rs485.o(i.RS485_3_Send_Data) + i.RTC_ClearITPendingBit 0x0800213c Section 0 stm32f10x_rtc.o(i.RTC_ClearITPendingBit) + i.RTC_EnterConfigMode 0x0800214c Section 0 stm32f10x_rtc.o(i.RTC_EnterConfigMode) + i.RTC_ExitConfigMode 0x08002160 Section 0 stm32f10x_rtc.o(i.RTC_ExitConfigMode) + i.RTC_Get 0x08002174 Section 0 rtc.o(i.RTC_Get) + i.RTC_GetCounter 0x0800228c Section 0 stm32f10x_rtc.o(i.RTC_GetCounter) + i.RTC_GetITStatus 0x080022a0 Section 0 stm32f10x_rtc.o(i.RTC_GetITStatus) + i.RTC_Get_Week 0x080022c4 Section 0 rtc.o(i.RTC_Get_Week) + i.RTC_IRQHandler 0x0800233c Section 0 rtc.o(i.RTC_IRQHandler) + i.RTC_ITConfig 0x08002378 Section 0 stm32f10x_rtc.o(i.RTC_ITConfig) + i.RTC_Init 0x08002398 Section 0 rtc.o(i.RTC_Init) + i.RTC_NVIC_Config 0x08002464 Section 0 rtc.o(i.RTC_NVIC_Config) + RTC_NVIC_Config 0x08002465 Thumb Code 26 rtc.o(i.RTC_NVIC_Config) + i.RTC_Set 0x08002480 Section 0 rtc.o(i.RTC_Set) + i.RTC_SetCounter 0x08002548 Section 0 stm32f10x_rtc.o(i.RTC_SetCounter) + i.RTC_SetPrescaler 0x08002564 Section 0 stm32f10x_rtc.o(i.RTC_SetPrescaler) + i.RTC_WaitForLastTask 0x08002584 Section 0 stm32f10x_rtc.o(i.RTC_WaitForLastTask) + i.RTC_WaitForSynchro 0x08002598 Section 0 stm32f10x_rtc.o(i.RTC_WaitForSynchro) + i.RTC_synchronization_ins 0x080025bc Section 0 rtc.o(i.RTC_synchronization_ins) + i.RX_BUF_Transfer 0x08002674 Section 0 bufcut.o(i.RX_BUF_Transfer) + i.Read_Init 0x080026a8 Section 0 write.o(i.Read_Init) + i.SN74CB3Q3253_Init 0x08002800 Section 0 rs485.o(i.SN74CB3Q3253_Init) + i.SPI1_Init 0x08002834 Section 0 myspi.o(i.SPI1_Init) + i.SPI1_ReadWriteByte 0x080028c4 Section 0 myspi.o(i.SPI1_ReadWriteByte) + i.SPI1_SetSpeed 0x08002918 Section 0 myspi.o(i.SPI1_SetSpeed) + i.SPI_Cmd 0x08002944 Section 0 stm32f10x_spi.o(i.SPI_Cmd) + i.SPI_I2S_GetFlagStatus 0x0800295c Section 0 stm32f10x_spi.o(i.SPI_I2S_GetFlagStatus) + i.SPI_I2S_ReceiveData 0x0800296e Section 0 stm32f10x_spi.o(i.SPI_I2S_ReceiveData) + i.SPI_I2S_SendData 0x08002974 Section 0 stm32f10x_spi.o(i.SPI_I2S_SendData) + i.SPI_Init 0x08002978 Section 0 stm32f10x_spi.o(i.SPI_Init) + i.SensorDataRequestTask 0x080029b4 Section 0 myfreertos.o(i.SensorDataRequestTask) + i.Sensor_Communication_task 0x080029cc Section 0 myfreertos.o(i.Sensor_Communication_task) + i.SetSysClock 0x08002ea8 Section 0 system_stm32f10x.o(i.SetSysClock) + SetSysClock 0x08002ea9 Thumb Code 8 system_stm32f10x.o(i.SetSysClock) + i.SetSysClockTo72 0x08002eb0 Section 0 system_stm32f10x.o(i.SetSysClockTo72) + SetSysClockTo72 0x08002eb1 Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72) + i.SyncEnvironmentDataRequestTask 0x08002f90 Section 0 myfreertos.o(i.SyncEnvironmentDataRequestTask) + i.SysTick_CLKSourceConfig 0x08002fa0 Section 0 misc.o(i.SysTick_CLKSourceConfig) + i.SysTick_Handler 0x08002fc8 Section 0 stm32f10x_it.o(i.SysTick_Handler) + i.SysTick_Init 0x08002fd8 Section 0 systick.o(i.SysTick_Init) + i.SystemInit 0x08003034 Section 0 system_stm32f10x.o(i.SystemInit) + i.TIM2_IRQHandler 0x08003094 Section 0 pwmout.o(i.TIM2_IRQHandler) + i.TIM2_Init 0x080030b8 Section 0 pwmout.o(i.TIM2_Init) + i.TIM4_IRQHandler 0x08003114 Section 0 pwm.o(i.TIM4_IRQHandler) + i.TIM4_Init 0x0800315c Section 0 pwm.o(i.TIM4_Init) + i.TIM_ARRPreloadConfig 0x080031b4 Section 0 stm32f10x_tim.o(i.TIM_ARRPreloadConfig) + i.TIM_ClearITPendingBit 0x080031cc Section 0 stm32f10x_tim.o(i.TIM_ClearITPendingBit) + i.TIM_Cmd 0x080031d2 Section 0 stm32f10x_tim.o(i.TIM_Cmd) + i.TIM_CtrlPWMOutputs 0x080031ea Section 0 stm32f10x_tim.o(i.TIM_CtrlPWMOutputs) + i.TIM_GetITStatus 0x08003208 Section 0 stm32f10x_tim.o(i.TIM_GetITStatus) + i.TIM_ITConfig 0x0800322a Section 0 stm32f10x_tim.o(i.TIM_ITConfig) + i.TIM_OC1Init 0x0800323c Section 0 stm32f10x_tim.o(i.TIM_OC1Init) + i.TIM_OC1PreloadConfig 0x080032d4 Section 0 stm32f10x_tim.o(i.TIM_OC1PreloadConfig) + i.TIM_OC2Init 0x080032e8 Section 0 stm32f10x_tim.o(i.TIM_OC2Init) + i.TIM_OC3Init 0x0800338c Section 0 stm32f10x_tim.o(i.TIM_OC3Init) + i.TIM_OC4Init 0x0800342c Section 0 stm32f10x_tim.o(i.TIM_OC4Init) + i.TIM_OC4PreloadConfig 0x080034a8 Section 0 stm32f10x_tim.o(i.TIM_OC4PreloadConfig) + i.TIM_OCStructInit 0x080034c2 Section 0 stm32f10x_tim.o(i.TIM_OCStructInit) + i.TIM_SetCompare1 0x080034d6 Section 0 stm32f10x_tim.o(i.TIM_SetCompare1) + i.TIM_SetCompare2 0x080034da Section 0 stm32f10x_tim.o(i.TIM_SetCompare2) + i.TIM_SetCompare3 0x080034de Section 0 stm32f10x_tim.o(i.TIM_SetCompare3) + i.TIM_SetCompare4 0x080034e2 Section 0 stm32f10x_tim.o(i.TIM_SetCompare4) + i.TIM_TimeBaseInit 0x080034e8 Section 0 stm32f10x_tim.o(i.TIM_TimeBaseInit) + i.TimePwm_init 0x0800358c Section 0 pwmout.o(i.TimePwm_init) + i.USART1_IRQHandler 0x0800361c Section 0 rs485.o(i.USART1_IRQHandler) + i.USART2_IRQHandler 0x0800365c Section 0 usart.o(i.USART2_IRQHandler) + i.USART2_Init 0x080036e4 Section 0 usart.o(i.USART2_Init) + i.USART_Cmd 0x080037ac Section 0 stm32f10x_usart.o(i.USART_Cmd) + i.USART_GetFlagStatus 0x080037c4 Section 0 stm32f10x_usart.o(i.USART_GetFlagStatus) + i.USART_GetITStatus 0x080037de Section 0 stm32f10x_usart.o(i.USART_GetITStatus) + i.USART_ITConfig 0x08003832 Section 0 stm32f10x_usart.o(i.USART_ITConfig) + i.USART_Init 0x0800387c Section 0 stm32f10x_usart.o(i.USART_Init) + i.USART_ReceiveData 0x08003954 Section 0 stm32f10x_usart.o(i.USART_ReceiveData) + i.USART_SendData 0x0800395e Section 0 stm32f10x_usart.o(i.USART_SendData) + i.UsageFault_Handler 0x08003966 Section 0 stm32f10x_it.o(i.UsageFault_Handler) + i.W25QXX_Erase_Sector 0x0800396c Section 0 w25q128.o(i.W25QXX_Erase_Sector) + i.W25QXX_Init 0x080039b4 Section 0 w25q128.o(i.W25QXX_Init) + i.W25QXX_Read 0x08003a04 Section 0 w25q128.o(i.W25QXX_Read) + i.W25QXX_ReadID 0x08003a54 Section 0 w25q128.o(i.W25QXX_ReadID) + i.W25QXX_ReadSR 0x08003a9c Section 0 w25q128.o(i.W25QXX_ReadSR) + i.W25QXX_Wait_Busy 0x08003ac8 Section 0 w25q128.o(i.W25QXX_Wait_Busy) + i.W25QXX_Write 0x08003adc Section 0 w25q128.o(i.W25QXX_Write) + i.W25QXX_Write_Enable 0x08003b94 Section 0 w25q128.o(i.W25QXX_Write_Enable) + i.W25QXX_Write_NoCheck 0x08003bb4 Section 0 w25q128.o(i.W25QXX_Write_NoCheck) + i.W25QXX_Write_Page 0x08003bfc Section 0 w25q128.o(i.W25QXX_Write_Page) + i.Write_Init 0x08003c50 Section 0 write.o(i.Write_Init) + i.__0printf 0x08003d58 Section 0 printfa.o(i.__0printf) + i.__scatterload_copy 0x08003d78 Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x08003d86 Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x08003d88 Section 14 handlers.o(i.__scatterload_zeroinit) + i._fp_digits 0x08003d98 Section 0 printfa.o(i._fp_digits) + _fp_digits 0x08003d99 Thumb Code 366 printfa.o(i._fp_digits) + i._printf_core 0x08003f1c Section 0 printfa.o(i._printf_core) + _printf_core 0x08003f1d Thumb Code 1744 printfa.o(i._printf_core) + i._printf_post_padding 0x080045f8 Section 0 printfa.o(i._printf_post_padding) + _printf_post_padding 0x080045f9 Thumb Code 36 printfa.o(i._printf_post_padding) + i._printf_pre_padding 0x0800461c Section 0 printfa.o(i._printf_pre_padding) + _printf_pre_padding 0x0800461d Thumb Code 46 printfa.o(i._printf_pre_padding) + i.bufcut_Init 0x0800464a Section 0 bufcut.o(i.bufcut_Init) + i.cmp_str 0x08004662 Section 0 rs485.o(i.cmp_str) + i.cp_str_to_prev 0x08004684 Section 0 rs485.o(i.cp_str_to_prev) + i.delay_ms 0x0800469c Section 0 systick.o(i.delay_ms) + i.delay_us 0x080046dc Section 0 systick.o(i.delay_us) + i.delay_xms 0x08004724 Section 0 systick.o(i.delay_xms) + i.fputc 0x0800473c Section 0 usart.o(i.fputc) + i.isAllZeros 0x08004770 Section 0 write.o(i.isAllZeros) + i.iwdg_my_Init 0x0800478a Section 0 iwdg.o(i.iwdg_my_Init) + i.main 0x080047ae Section 0 main.o(i.main) + i.os_init 0x08004840 Section 0 myfreertos.o(i.os_init) + i.process_hmi_btn_event 0x080048d8 Section 0 myfreertos.o(i.process_hmi_btn_event) + i.process_sensor_data 0x08004928 Section 0 myfreertos.o(i.process_sensor_data) + i.prvAddCurrentTaskToDelayedList 0x08004b7c Section 0 tasks.o(i.prvAddCurrentTaskToDelayedList) + prvAddCurrentTaskToDelayedList 0x08004b7d Thumb Code 124 tasks.o(i.prvAddCurrentTaskToDelayedList) + i.prvAddNewTaskToReadyList 0x08004c14 Section 0 tasks.o(i.prvAddNewTaskToReadyList) + prvAddNewTaskToReadyList 0x08004c15 Thumb Code 150 tasks.o(i.prvAddNewTaskToReadyList) + i.prvCheckForValidListAndQueue 0x08004cc8 Section 0 timers.o(i.prvCheckForValidListAndQueue) + prvCheckForValidListAndQueue 0x08004cc9 Thumb Code 72 timers.o(i.prvCheckForValidListAndQueue) + i.prvCheckTasksWaitingTermination 0x08004d2c Section 0 tasks.o(i.prvCheckTasksWaitingTermination) + prvCheckTasksWaitingTermination 0x08004d2d Thumb Code 86 tasks.o(i.prvCheckTasksWaitingTermination) + i.prvCopyDataFromQueue 0x08004d90 Section 0 queue.o(i.prvCopyDataFromQueue) + prvCopyDataFromQueue 0x08004d91 Thumb Code 42 queue.o(i.prvCopyDataFromQueue) + i.prvCopyDataToQueue 0x08004dba Section 0 queue.o(i.prvCopyDataToQueue) + prvCopyDataToQueue 0x08004dbb Thumb Code 124 queue.o(i.prvCopyDataToQueue) + i.prvDeleteTCB 0x08004e36 Section 0 tasks.o(i.prvDeleteTCB) + prvDeleteTCB 0x08004e37 Thumb Code 18 tasks.o(i.prvDeleteTCB) + i.prvGetNextExpireTime 0x08004e48 Section 0 timers.o(i.prvGetNextExpireTime) + prvGetNextExpireTime 0x08004e49 Thumb Code 36 timers.o(i.prvGetNextExpireTime) + i.prvHeapInit 0x08004e70 Section 0 heap_4.o(i.prvHeapInit) + prvHeapInit 0x08004e71 Thumb Code 98 heap_4.o(i.prvHeapInit) + i.prvIdleTask 0x08004eec Section 0 tasks.o(i.prvIdleTask) + prvIdleTask 0x08004eed Thumb Code 32 tasks.o(i.prvIdleTask) + i.prvInitialiseNewQueue 0x08004f14 Section 0 queue.o(i.prvInitialiseNewQueue) + prvInitialiseNewQueue 0x08004f15 Thumb Code 42 queue.o(i.prvInitialiseNewQueue) + i.prvInitialiseNewTask 0x08004f40 Section 0 tasks.o(i.prvInitialiseNewTask) + prvInitialiseNewTask 0x08004f41 Thumb Code 160 tasks.o(i.prvInitialiseNewTask) + i.prvInitialiseTaskLists 0x08005004 Section 0 tasks.o(i.prvInitialiseTaskLists) + prvInitialiseTaskLists 0x08005005 Thumb Code 70 tasks.o(i.prvInitialiseTaskLists) + i.prvInsertBlockIntoFreeList 0x0800506c Section 0 heap_4.o(i.prvInsertBlockIntoFreeList) + prvInsertBlockIntoFreeList 0x0800506d Thumb Code 96 heap_4.o(i.prvInsertBlockIntoFreeList) + i.prvInsertTimerInActiveList 0x080050d4 Section 0 timers.o(i.prvInsertTimerInActiveList) + prvInsertTimerInActiveList 0x080050d5 Thumb Code 80 timers.o(i.prvInsertTimerInActiveList) + i.prvIsQueueEmpty 0x0800512c Section 0 queue.o(i.prvIsQueueEmpty) + prvIsQueueEmpty 0x0800512d Thumb Code 26 queue.o(i.prvIsQueueEmpty) + i.prvIsQueueFull 0x08005146 Section 0 queue.o(i.prvIsQueueFull) + prvIsQueueFull 0x08005147 Thumb Code 30 queue.o(i.prvIsQueueFull) + i.prvNotifyQueueSetContainer 0x08005164 Section 0 queue.o(i.prvNotifyQueueSetContainer) + prvNotifyQueueSetContainer 0x08005165 Thumb Code 124 queue.o(i.prvNotifyQueueSetContainer) + i.prvProcessExpiredTimer 0x0800522c Section 0 timers.o(i.prvProcessExpiredTimer) + prvProcessExpiredTimer 0x0800522d Thumb Code 84 timers.o(i.prvProcessExpiredTimer) + i.prvProcessReceivedCommands 0x080052ac Section 0 timers.o(i.prvProcessReceivedCommands) + prvProcessReceivedCommands 0x080052ad Thumb Code 222 timers.o(i.prvProcessReceivedCommands) + i.prvProcessTimerOrBlockTask 0x080053b8 Section 0 timers.o(i.prvProcessTimerOrBlockTask) + prvProcessTimerOrBlockTask 0x080053b9 Thumb Code 102 timers.o(i.prvProcessTimerOrBlockTask) + i.prvResetNextTaskUnblockTime 0x0800542c Section 0 tasks.o(i.prvResetNextTaskUnblockTime) + prvResetNextTaskUnblockTime 0x0800542d Thumb Code 42 tasks.o(i.prvResetNextTaskUnblockTime) + i.prvSampleTimeNow 0x08005460 Section 0 timers.o(i.prvSampleTimeNow) + prvSampleTimeNow 0x08005461 Thumb Code 40 timers.o(i.prvSampleTimeNow) + i.prvSwitchTimerLists 0x0800548c Section 0 timers.o(i.prvSwitchTimerLists) + prvSwitchTimerLists 0x0800548d Thumb Code 140 timers.o(i.prvSwitchTimerLists) + i.prvTaskExitError 0x08005548 Section 0 port.o(i.prvTaskExitError) + prvTaskExitError 0x08005549 Thumb Code 48 port.o(i.prvTaskExitError) + i.prvTimerTask 0x080055b8 Section 0 timers.o(i.prvTimerTask) + prvTimerTask 0x080055b9 Thumb Code 26 timers.o(i.prvTimerTask) + i.prvUnlockQueue 0x080055d2 Section 0 queue.o(i.prvUnlockQueue) + prvUnlockQueue 0x080055d3 Thumb Code 146 queue.o(i.prvUnlockQueue) + i.pvPortMalloc 0x08005664 Section 0 heap_4.o(i.pvPortMalloc) + i.pvTaskIncrementMutexHeldCount 0x080057b8 Section 0 tasks.o(i.pvTaskIncrementMutexHeldCount) + i.pxPortInitialiseStack 0x080057d8 Section 0 port.o(i.pxPortInitialiseStack) + i.start_task 0x080057fc Section 0 myfreertos.o(i.start_task) + i.timelong_Compare 0x08005858 Section 0 write.o(i.timelong_Compare) + i.uxListRemove 0x08005918 Section 0 list.o(i.uxListRemove) + i.vListInitialise 0x08005940 Section 0 list.o(i.vListInitialise) + i.vListInitialiseItem 0x0800595a Section 0 list.o(i.vListInitialiseItem) + i.vListInsert 0x08005960 Section 0 list.o(i.vListInsert) + i.vListInsertEnd 0x08005994 Section 0 list.o(i.vListInsertEnd) + i.vPortEnterCritical 0x080059ac Section 0 port.o(i.vPortEnterCritical) + i.vPortExitCritical 0x08005a34 Section 0 port.o(i.vPortExitCritical) + i.vPortFree 0x08005aa4 Section 0 heap_4.o(i.vPortFree) + i.vPortSetupTimerInterrupt 0x08005b5c Section 0 port.o(i.vPortSetupTimerInterrupt) + i.vPortValidateInterruptPriority 0x08005b7c Section 0 port.o(i.vPortValidateInterruptPriority) + i.vQueueAddToRegistry 0x08005c1c Section 0 queue.o(i.vQueueAddToRegistry) + i.vQueueWaitForMessageRestricted 0x08005c48 Section 0 queue.o(i.vQueueWaitForMessageRestricted) + i.vTaskDelay 0x08005c94 Section 0 tasks.o(i.vTaskDelay) + i.vTaskDelete 0x08005d08 Section 0 tasks.o(i.vTaskDelete) + i.vTaskMissedYield 0x08005e14 Section 0 tasks.o(i.vTaskMissedYield) + i.vTaskPlaceOnEventList 0x08005e20 Section 0 tasks.o(i.vTaskPlaceOnEventList) + i.vTaskPlaceOnEventListRestricted 0x08005e74 Section 0 tasks.o(i.vTaskPlaceOnEventListRestricted) + i.vTaskPriorityInherit 0x08005ed0 Section 0 tasks.o(i.vTaskPriorityInherit) + i.vTaskSetTimeOutState 0x08005f80 Section 0 tasks.o(i.vTaskSetTimeOutState) + i.vTaskStartScheduler 0x08005fcc Section 0 tasks.o(i.vTaskStartScheduler) + i.vTaskSuspendAll 0x08006078 Section 0 tasks.o(i.vTaskSuspendAll) + i.vTaskSwitchContext 0x08006088 Section 0 tasks.o(i.vTaskSwitchContext) + i.xPortStartScheduler 0x08006130 Section 0 port.o(i.xPortStartScheduler) + i.xPortSysTickHandler 0x080061d0 Section 0 port.o(i.xPortSysTickHandler) + i.xQueueGenericCreate 0x08006204 Section 0 queue.o(i.xQueueGenericCreate) + i.xQueueGenericReceive 0x080062a0 Section 0 queue.o(i.xQueueGenericReceive) + i.xQueueGenericReset 0x08006490 Section 0 queue.o(i.xQueueGenericReset) + i.xQueueGenericSend 0x08006568 Section 0 queue.o(i.xQueueGenericSend) + i.xQueueGenericSendFromISR 0x08006754 Section 0 queue.o(i.xQueueGenericSendFromISR) + i.xTaskCheckForTimeOut 0x0800688c Section 0 tasks.o(i.xTaskCheckForTimeOut) + i.xTaskCreate 0x0800692c Section 0 tasks.o(i.xTaskCreate) + i.xTaskGetSchedulerState 0x0800698c Section 0 tasks.o(i.xTaskGetSchedulerState) + i.xTaskGetTickCount 0x080069ac Section 0 tasks.o(i.xTaskGetTickCount) + i.xTaskIncrementTick 0x080069b8 Section 0 tasks.o(i.xTaskIncrementTick) + i.xTaskPriorityDisinherit 0x08006b18 Section 0 tasks.o(i.xTaskPriorityDisinherit) + i.xTaskRemoveFromEventList 0x08006bf0 Section 0 tasks.o(i.xTaskRemoveFromEventList) + i.xTaskResumeAll 0x08006ca4 Section 0 tasks.o(i.xTaskResumeAll) + i.xTimerCreateTimerTask 0x08006dc4 Section 0 timers.o(i.xTimerCreateTimerTask) + i.xTimerGenericCommand 0x08006e38 Section 0 timers.o(i.xTimerGenericCommand) + .constdata 0x08006ed8 Section 512 rs485.o(.constdata) + .constdata 0x080070d8 Section 24 rtc.o(.constdata) .data 0x20000000 Section 20 system_stm32f10x.o(.data) .data 0x20000014 Section 2 w25q128.o(.data) - .data 0x20000016 Section 114 write.o(.data) - .data 0x20000088 Section 60 rs485.o(.data) - .data 0x200000c4 Section 4 rtc.o(.data) - daycnt 0x200000c6 Data 2 rtc.o(.data) - .data 0x200000c8 Section 40 pid.o(.data) - .data 0x200000f0 Section 4 systick.o(.data) - fac_us 0x200000f0 Data 1 systick.o(.data) - fac_ms 0x200000f2 Data 2 systick.o(.data) - .data 0x200000f4 Section 2 usart.o(.data) - .data 0x200000f6 Section 20 stm32f10x_rcc.o(.data) - APBAHBPrescTable 0x200000f6 Data 16 stm32f10x_rcc.o(.data) - ADCPrescTable 0x20000106 Data 4 stm32f10x_rcc.o(.data) - .data 0x2000010c Section 60 tasks.o(.data) - pxDelayedTaskList 0x20000110 Data 4 tasks.o(.data) - pxOverflowDelayedTaskList 0x20000114 Data 4 tasks.o(.data) - uxDeletedTasksWaitingCleanUp 0x20000118 Data 4 tasks.o(.data) - uxCurrentNumberOfTasks 0x2000011c Data 4 tasks.o(.data) - xTickCount 0x20000120 Data 4 tasks.o(.data) - uxTopReadyPriority 0x20000124 Data 4 tasks.o(.data) - xSchedulerRunning 0x20000128 Data 4 tasks.o(.data) - uxPendedTicks 0x2000012c Data 4 tasks.o(.data) - xYieldPending 0x20000130 Data 4 tasks.o(.data) - xNumOfOverflows 0x20000134 Data 4 tasks.o(.data) - uxTaskNumber 0x20000138 Data 4 tasks.o(.data) - xNextTaskUnblockTime 0x2000013c Data 4 tasks.o(.data) - xIdleTaskHandle 0x20000140 Data 4 tasks.o(.data) - uxSchedulerSuspended 0x20000144 Data 4 tasks.o(.data) - .data 0x20000148 Section 20 timers.o(.data) - pxCurrentTimerList 0x20000148 Data 4 timers.o(.data) - pxOverflowTimerList 0x2000014c Data 4 timers.o(.data) - xTimerQueue 0x20000150 Data 4 timers.o(.data) - xTimerTaskHandle 0x20000154 Data 4 timers.o(.data) - xLastTime 0x20000158 Data 4 timers.o(.data) - .data 0x2000015c Section 12 port.o(.data) - uxCriticalNesting 0x2000015c Data 4 port.o(.data) - ucMaxSysCallPriority 0x20000160 Data 1 port.o(.data) - ulMaxPRIGROUPValue 0x20000164 Data 4 port.o(.data) - .data 0x20000168 Section 24 heap_4.o(.data) - xStart 0x20000168 Data 8 heap_4.o(.data) - pxEnd 0x20000170 Data 4 heap_4.o(.data) - xFreeBytesRemaining 0x20000174 Data 4 heap_4.o(.data) - xMinimumEverFreeBytesRemaining 0x20000178 Data 4 heap_4.o(.data) - xBlockAllocatedBit 0x2000017c Data 4 heap_4.o(.data) - .data 0x20000180 Section 1164 myfreertos.o(.data) - .data 0x2000060c Section 4 stdout.o(.data) - .bss 0x20000610 Section 216 write.o(.bss) - .bss 0x200006e8 Section 148 rs485.o(.bss) - .bss 0x2000077c Section 10 rtc.o(.bss) - .bss 0x20000788 Section 76 pid.o(.bss) - .bss 0x200007d4 Section 255 usart.o(.bss) - .bss 0x200008d4 Section 740 tasks.o(.bss) - pxReadyTasksLists 0x200008d4 Data 640 tasks.o(.bss) - xDelayedTaskList1 0x20000b54 Data 20 tasks.o(.bss) - xDelayedTaskList2 0x20000b68 Data 20 tasks.o(.bss) - xPendingReadyList 0x20000b7c Data 20 tasks.o(.bss) - xTasksWaitingTermination 0x20000b90 Data 20 tasks.o(.bss) - xSuspendedTaskList 0x20000ba4 Data 20 tasks.o(.bss) - .bss 0x20000bb8 Section 40 timers.o(.bss) - xActiveTimerList1 0x20000bb8 Data 20 timers.o(.bss) - xActiveTimerList2 0x20000bcc Data 20 timers.o(.bss) - .bss 0x20000be0 Section 80 queue.o(.bss) - .bss 0x20000c30 Section 10240 heap_4.o(.bss) - ucHeap 0x20000c30 Data 10240 heap_4.o(.bss) - .bss 0x20003430 Section 395 myfreertos.o(.bss) - STACK 0x200035c0 Section 1024 startup_stm32f10x_md.o(STACK) + .data 0x20000016 Section 126 write.o(.data) + .data 0x20000094 Section 96 rs485.o(.data) + .data 0x200000f4 Section 4 rtc.o(.data) + daycnt 0x200000f6 Data 2 rtc.o(.data) + .data 0x200000f8 Section 40 pid.o(.data) + .data 0x20000120 Section 4 systick.o(.data) + fac_us 0x20000120 Data 1 systick.o(.data) + fac_ms 0x20000122 Data 2 systick.o(.data) + .data 0x20000124 Section 2 usart.o(.data) + .data 0x20000126 Section 20 stm32f10x_rcc.o(.data) + APBAHBPrescTable 0x20000126 Data 16 stm32f10x_rcc.o(.data) + ADCPrescTable 0x20000136 Data 4 stm32f10x_rcc.o(.data) + .data 0x2000013c Section 60 tasks.o(.data) + pxDelayedTaskList 0x20000140 Data 4 tasks.o(.data) + pxOverflowDelayedTaskList 0x20000144 Data 4 tasks.o(.data) + uxDeletedTasksWaitingCleanUp 0x20000148 Data 4 tasks.o(.data) + uxCurrentNumberOfTasks 0x2000014c Data 4 tasks.o(.data) + xTickCount 0x20000150 Data 4 tasks.o(.data) + uxTopReadyPriority 0x20000154 Data 4 tasks.o(.data) + xSchedulerRunning 0x20000158 Data 4 tasks.o(.data) + uxPendedTicks 0x2000015c Data 4 tasks.o(.data) + xYieldPending 0x20000160 Data 4 tasks.o(.data) + xNumOfOverflows 0x20000164 Data 4 tasks.o(.data) + uxTaskNumber 0x20000168 Data 4 tasks.o(.data) + xNextTaskUnblockTime 0x2000016c Data 4 tasks.o(.data) + xIdleTaskHandle 0x20000170 Data 4 tasks.o(.data) + uxSchedulerSuspended 0x20000174 Data 4 tasks.o(.data) + .data 0x20000178 Section 20 timers.o(.data) + pxCurrentTimerList 0x20000178 Data 4 timers.o(.data) + pxOverflowTimerList 0x2000017c Data 4 timers.o(.data) + xTimerQueue 0x20000180 Data 4 timers.o(.data) + xTimerTaskHandle 0x20000184 Data 4 timers.o(.data) + xLastTime 0x20000188 Data 4 timers.o(.data) + .data 0x2000018c Section 12 port.o(.data) + uxCriticalNesting 0x2000018c Data 4 port.o(.data) + ucMaxSysCallPriority 0x20000190 Data 1 port.o(.data) + ulMaxPRIGROUPValue 0x20000194 Data 4 port.o(.data) + .data 0x20000198 Section 24 heap_4.o(.data) + xStart 0x20000198 Data 8 heap_4.o(.data) + pxEnd 0x200001a0 Data 4 heap_4.o(.data) + xFreeBytesRemaining 0x200001a4 Data 4 heap_4.o(.data) + xMinimumEverFreeBytesRemaining 0x200001a8 Data 4 heap_4.o(.data) + xBlockAllocatedBit 0x200001ac Data 4 heap_4.o(.data) + .data 0x200001b0 Section 1164 myfreertos.o(.data) + .data 0x2000063c Section 4 stdout.o(.data) + .bss 0x20000640 Section 4096 w25q128.o(.bss) + .bss 0x20001640 Section 216 write.o(.bss) + .bss 0x20001718 Section 148 rs485.o(.bss) + .bss 0x200017ac Section 10 rtc.o(.bss) + .bss 0x200017b8 Section 76 pid.o(.bss) + .bss 0x20001804 Section 255 usart.o(.bss) + .bss 0x20001904 Section 740 tasks.o(.bss) + pxReadyTasksLists 0x20001904 Data 640 tasks.o(.bss) + xDelayedTaskList1 0x20001b84 Data 20 tasks.o(.bss) + xDelayedTaskList2 0x20001b98 Data 20 tasks.o(.bss) + xPendingReadyList 0x20001bac Data 20 tasks.o(.bss) + xTasksWaitingTermination 0x20001bc0 Data 20 tasks.o(.bss) + xSuspendedTaskList 0x20001bd4 Data 20 tasks.o(.bss) + .bss 0x20001be8 Section 40 timers.o(.bss) + xActiveTimerList1 0x20001be8 Data 20 timers.o(.bss) + xActiveTimerList2 0x20001bfc Data 20 timers.o(.bss) + .bss 0x20001c10 Section 80 queue.o(.bss) + .bss 0x20001c60 Section 10240 heap_4.o(.bss) + ucHeap 0x20001c60 Data 10240 heap_4.o(.bss) + .bss 0x20004460 Section 395 myfreertos.o(.bss) + STACK 0x200045f0 Section 1024 startup_stm32f10x_md.o(STACK) Global Symbols @@ -3232,243 +3269,262 @@ Image Symbol Table __aeabi_memcpy 0x080001bd Thumb Code 36 memcpya.o(.text) __aeabi_memcpy4 0x080001bd Thumb Code 0 memcpya.o(.text) __aeabi_memcpy8 0x080001bd Thumb Code 0 memcpya.o(.text) - __aeabi_fadd 0x080001e1 Thumb Code 164 fadd.o(.text) - __aeabi_fsub 0x08000285 Thumb Code 6 fadd.o(.text) - __aeabi_frsub 0x0800028b Thumb Code 6 fadd.o(.text) - __aeabi_fmul 0x08000291 Thumb Code 100 fmul.o(.text) - __aeabi_fdiv 0x080002f5 Thumb Code 124 fdiv.o(.text) - __aeabi_dadd 0x08000371 Thumb Code 322 dadd.o(.text) - __aeabi_dsub 0x080004b3 Thumb Code 6 dadd.o(.text) - __aeabi_drsub 0x080004b9 Thumb Code 6 dadd.o(.text) - __aeabi_dmul 0x080004bf Thumb Code 228 dmul.o(.text) - __aeabi_ddiv 0x080005a3 Thumb Code 222 ddiv.o(.text) - __aeabi_i2f 0x08000681 Thumb Code 18 fflti.o(.text) - __aeabi_i2d 0x08000693 Thumb Code 34 dflti.o(.text) - __aeabi_ui2d 0x080006b5 Thumb Code 26 dfltui.o(.text) - __aeabi_f2iz 0x080006cf Thumb Code 50 ffixi.o(.text) - __aeabi_f2uiz 0x08000701 Thumb Code 40 ffixui.o(.text) - __aeabi_d2iz 0x08000729 Thumb Code 62 dfixi.o(.text) - __aeabi_d2uiz 0x08000767 Thumb Code 50 dfixui.o(.text) - __aeabi_cdrcmple 0x08000799 Thumb Code 48 cdrcmple.o(.text) - __aeabi_d2f 0x080007c9 Thumb Code 56 d2f.o(.text) - __aeabi_cfcmpeq 0x08000801 Thumb Code 0 cfcmple.o(.text) - __aeabi_cfcmple 0x08000801 Thumb Code 20 cfcmple.o(.text) - __aeabi_cfrcmple 0x08000815 Thumb Code 20 cfrcmple.o(.text) - __aeabi_uidiv 0x08000829 Thumb Code 0 uidiv.o(.text) - __aeabi_uidivmod 0x08000829 Thumb Code 44 uidiv.o(.text) - __aeabi_uldivmod 0x08000855 Thumb Code 98 uldiv.o(.text) - __aeabi_llsl 0x080008b7 Thumb Code 30 llshl.o(.text) - _ll_shift_l 0x080008b7 Thumb Code 0 llshl.o(.text) - __aeabi_llsr 0x080008d5 Thumb Code 32 llushr.o(.text) - _ll_ushift_r 0x080008d5 Thumb Code 0 llushr.o(.text) - __aeabi_lasr 0x080008f5 Thumb Code 36 llsshr.o(.text) - _ll_sshift_r 0x080008f5 Thumb Code 0 llsshr.o(.text) - __I$use$fp 0x08000919 Thumb Code 0 iusefp.o(.text) - _float_round 0x08000919 Thumb Code 18 fepilogue.o(.text) - _float_epilogue 0x0800092b Thumb Code 92 fepilogue.o(.text) - _double_round 0x08000987 Thumb Code 30 depilogue.o(.text) - _double_epilogue 0x080009a5 Thumb Code 156 depilogue.o(.text) - __aeabi_d2ulz 0x08000a41 Thumb Code 48 dfixul.o(.text) - __scatterload 0x08000a71 Thumb Code 28 init.o(.text) - __scatterload_rt2 0x08000a71 Thumb Code 0 init.o(.text) - __decompress 0x08000a95 Thumb Code 0 __dczerorl2.o(.text) - __decompress1 0x08000a95 Thumb Code 86 __dczerorl2.o(.text) - Analysis 0x08000aed Thumb Code 114 write.o(i.Analysis) - Array 0x08000b65 Thumb Code 364 write.o(i.Array) - BKP_DeInit 0x08000cd5 Thumb Code 16 stm32f10x_bkp.o(i.BKP_DeInit) - BKP_ReadBackupRegister 0x08000ce5 Thumb Code 24 stm32f10x_bkp.o(i.BKP_ReadBackupRegister) - BKP_TamperPinCmd 0x08000d01 Thumb Code 6 stm32f10x_bkp.o(i.BKP_TamperPinCmd) - BKP_WriteBackupRegister 0x08000d0d Thumb Code 22 stm32f10x_bkp.o(i.BKP_WriteBackupRegister) - Batch_synchronization 0x08000d29 Thumb Code 42 write.o(i.Batch_synchronization) - BusFault_Handler 0x08000d59 Thumb Code 4 stm32f10x_it.o(i.BusFault_Handler) - DebugMon_Handler 0x08000d5d Thumb Code 2 stm32f10x_it.o(i.DebugMon_Handler) - GPIO_Init 0x08000d5f Thumb Code 278 stm32f10x_gpio.o(i.GPIO_Init) - GPIO_ResetBits 0x08000e75 Thumb Code 4 stm32f10x_gpio.o(i.GPIO_ResetBits) - GPIO_SetBits 0x08000e79 Thumb Code 4 stm32f10x_gpio.o(i.GPIO_SetBits) - GetCRC16 0x08000e7d Thumb Code 50 rs485.o(i.GetCRC16) - HC595_Pin_Init 0x08000eb9 Thumb Code 74 relays.o(i.HC595_Pin_Init) - HC595_Send_Byte 0x08000f09 Thumb Code 60 relays.o(i.HC595_Send_Byte) - HC595_Send_Data 0x08000f4d Thumb Code 66 relays.o(i.HC595_Send_Data) - HardFault_Handler 0x08000f99 Thumb Code 4 stm32f10x_it.o(i.HardFault_Handler) - IWDG_Enable 0x08000f9d Thumb Code 10 stm32f10x_iwdg.o(i.IWDG_Enable) - IWDG_FeedDog 0x08000fad Thumb Code 8 iwdg.o(i.IWDG_FeedDog) - IWDG_ReloadCounter 0x08000fb5 Thumb Code 10 stm32f10x_iwdg.o(i.IWDG_ReloadCounter) - IWDG_SetPrescaler 0x08000fc5 Thumb Code 6 stm32f10x_iwdg.o(i.IWDG_SetPrescaler) - IWDG_SetReload 0x08000fd1 Thumb Code 6 stm32f10x_iwdg.o(i.IWDG_SetReload) - IWDG_WriteAccessCmd 0x08000fdd Thumb Code 6 stm32f10x_iwdg.o(i.IWDG_WriteAccessCmd) - Is_Leap_Year 0x08000fe9 Thumb Code 58 rtc.o(i.Is_Leap_Year) - MemManage_Handler 0x08001023 Thumb Code 4 stm32f10x_it.o(i.MemManage_Handler) - NMI_Handler 0x08001027 Thumb Code 2 stm32f10x_it.o(i.NMI_Handler) - NVIC_Init 0x08001029 Thumb Code 100 misc.o(i.NVIC_Init) - NVIC_PriorityGroupConfig 0x08001099 Thumb Code 10 misc.o(i.NVIC_PriorityGroupConfig) - PID_Calc 0x080010ad Thumb Code 724 pid.o(i.PID_Calc) - PID_Init 0x080013b1 Thumb Code 36 pid.o(i.PID_Init) - PWM1_Init 0x080013e5 Thumb Code 156 pwm.o(i.PWM1_Init) - PWM2_Init 0x08001489 Thumb Code 156 pwm.o(i.PWM2_Init) - PWM3_Init 0x0800152d Thumb Code 134 pwm.o(i.PWM3_Init) - PWM_SetCompare1 0x080015b9 Thumb Code 14 pwm.o(i.PWM_SetCompare1) - PWM_SetCompare2 0x080015cd Thumb Code 16 pwm.o(i.PWM_SetCompare2) - PWM_SetCompare4 0x080015dd Thumb Code 14 pwm.o(i.PWM_SetCompare4) - PWR_BackupAccessCmd 0x080015f1 Thumb Code 6 stm32f10x_pwr.o(i.PWR_BackupAccessCmd) - RCC_APB1PeriphClockCmd 0x080015fd Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) - RCC_APB2PeriphClockCmd 0x0800161d Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) - RCC_APB2PeriphResetCmd 0x0800163d Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) - RCC_BackupResetCmd 0x0800165d Thumb Code 6 stm32f10x_rcc.o(i.RCC_BackupResetCmd) - RCC_GetClocksFreq 0x08001669 Thumb Code 192 stm32f10x_rcc.o(i.RCC_GetClocksFreq) - RCC_GetFlagStatus 0x0800173d Thumb Code 56 stm32f10x_rcc.o(i.RCC_GetFlagStatus) - RCC_HSEConfig 0x08001779 Thumb Code 70 stm32f10x_rcc.o(i.RCC_HSEConfig) - RCC_LSEConfig 0x080017c5 Thumb Code 46 stm32f10x_rcc.o(i.RCC_LSEConfig) - RCC_RTCCLKCmd 0x080017f9 Thumb Code 6 stm32f10x_rcc.o(i.RCC_RTCCLKCmd) - RCC_RTCCLKConfig 0x08001805 Thumb Code 12 stm32f10x_rcc.o(i.RCC_RTCCLKConfig) - RS485_1_Init 0x08001815 Thumb Code 220 rs485.o(i.RS485_1_Init) - RS485_1_Send_Data_1 0x08001901 Thumb Code 68 rs485.o(i.RS485_1_Send_Data_1) - RS485_1_Send_Data_2 0x0800194d Thumb Code 1164 rs485.o(i.RS485_1_Send_Data_2) - RS485_1_Send_Data_3 0x08001dd9 Thumb Code 104 rs485.o(i.RS485_1_Send_Data_3) - RS485_3_Init 0x08001e55 Thumb Code 214 rs485.o(i.RS485_3_Init) - RS485_3_Send_Data 0x08001f3d Thumb Code 68 rs485.o(i.RS485_3_Send_Data) - RTC_ClearITPendingBit 0x08001f89 Thumb Code 12 stm32f10x_rtc.o(i.RTC_ClearITPendingBit) - RTC_EnterConfigMode 0x08001f99 Thumb Code 14 stm32f10x_rtc.o(i.RTC_EnterConfigMode) - RTC_ExitConfigMode 0x08001fad Thumb Code 16 stm32f10x_rtc.o(i.RTC_ExitConfigMode) - RTC_Get 0x08001fc1 Thumb Code 262 rtc.o(i.RTC_Get) - RTC_GetCounter 0x080020d9 Thumb Code 16 stm32f10x_rtc.o(i.RTC_GetCounter) - RTC_GetITStatus 0x080020ed Thumb Code 32 stm32f10x_rtc.o(i.RTC_GetITStatus) - RTC_Get_Week 0x08002111 Thumb Code 116 rtc.o(i.RTC_Get_Week) - RTC_IRQHandler 0x08002189 Thumb Code 52 rtc.o(i.RTC_IRQHandler) - RTC_ITConfig 0x080021c5 Thumb Code 26 stm32f10x_rtc.o(i.RTC_ITConfig) - RTC_Init 0x080021e5 Thumb Code 196 rtc.o(i.RTC_Init) - RTC_Set 0x080022cd Thumb Code 184 rtc.o(i.RTC_Set) - RTC_SetCounter 0x08002395 Thumb Code 24 stm32f10x_rtc.o(i.RTC_SetCounter) - RTC_SetPrescaler 0x080023b1 Thumb Code 26 stm32f10x_rtc.o(i.RTC_SetPrescaler) - RTC_WaitForLastTask 0x080023d1 Thumb Code 16 stm32f10x_rtc.o(i.RTC_WaitForLastTask) - RTC_WaitForSynchro 0x080023e5 Thumb Code 30 stm32f10x_rtc.o(i.RTC_WaitForSynchro) - RTC_synchronization_ins 0x08002409 Thumb Code 176 rtc.o(i.RTC_synchronization_ins) - RX_BUF_Transfer 0x080024c1 Thumb Code 48 bufcut.o(i.RX_BUF_Transfer) - Read_Init 0x080024f5 Thumb Code 48 write.o(i.Read_Init) - SN74CB3Q3253_Init 0x08002535 Thumb Code 46 rs485.o(i.SN74CB3Q3253_Init) - SPI1_Init 0x08002569 Thumb Code 136 myspi.o(i.SPI1_Init) - SPI1_ReadWriteByte 0x080025f9 Thumb Code 78 myspi.o(i.SPI1_ReadWriteByte) - SPI1_SetSpeed 0x0800264d Thumb Code 36 myspi.o(i.SPI1_SetSpeed) - SPI_Cmd 0x08002679 Thumb Code 24 stm32f10x_spi.o(i.SPI_Cmd) - SPI_I2S_GetFlagStatus 0x08002691 Thumb Code 18 stm32f10x_spi.o(i.SPI_I2S_GetFlagStatus) - SPI_I2S_ReceiveData 0x080026a3 Thumb Code 6 stm32f10x_spi.o(i.SPI_I2S_ReceiveData) - SPI_I2S_SendData 0x080026a9 Thumb Code 4 stm32f10x_spi.o(i.SPI_I2S_SendData) - SPI_Init 0x080026ad Thumb Code 60 stm32f10x_spi.o(i.SPI_Init) - Sensor_Communication_task 0x080026e9 Thumb Code 1464 myfreertos.o(i.Sensor_Communication_task) - SysTick_CLKSourceConfig 0x08002dad Thumb Code 40 misc.o(i.SysTick_CLKSourceConfig) - SysTick_Handler 0x08002dd5 Thumb Code 16 stm32f10x_it.o(i.SysTick_Handler) - SysTick_Init 0x08002de5 Thumb Code 76 systick.o(i.SysTick_Init) - SystemInit 0x08002e41 Thumb Code 78 system_stm32f10x.o(i.SystemInit) - TIM2_IRQHandler 0x08002ea1 Thumb Code 32 pwmout.o(i.TIM2_IRQHandler) - TIM2_Init 0x08002ec5 Thumb Code 92 pwmout.o(i.TIM2_Init) - TIM4_IRQHandler 0x08002f21 Thumb Code 60 pwm.o(i.TIM4_IRQHandler) - TIM4_Init 0x08002f69 Thumb Code 84 pwm.o(i.TIM4_Init) - TIM_ARRPreloadConfig 0x08002fc1 Thumb Code 24 stm32f10x_tim.o(i.TIM_ARRPreloadConfig) - TIM_ClearITPendingBit 0x08002fd9 Thumb Code 6 stm32f10x_tim.o(i.TIM_ClearITPendingBit) - TIM_Cmd 0x08002fdf Thumb Code 24 stm32f10x_tim.o(i.TIM_Cmd) - TIM_CtrlPWMOutputs 0x08002ff7 Thumb Code 30 stm32f10x_tim.o(i.TIM_CtrlPWMOutputs) - TIM_GetITStatus 0x08003015 Thumb Code 34 stm32f10x_tim.o(i.TIM_GetITStatus) - TIM_ITConfig 0x08003037 Thumb Code 18 stm32f10x_tim.o(i.TIM_ITConfig) - TIM_OC1Init 0x08003049 Thumb Code 132 stm32f10x_tim.o(i.TIM_OC1Init) - TIM_OC1PreloadConfig 0x080030e1 Thumb Code 18 stm32f10x_tim.o(i.TIM_OC1PreloadConfig) - TIM_OC2Init 0x080030f5 Thumb Code 154 stm32f10x_tim.o(i.TIM_OC2Init) - TIM_OC3Init 0x08003199 Thumb Code 150 stm32f10x_tim.o(i.TIM_OC3Init) - TIM_OC4Init 0x08003239 Thumb Code 114 stm32f10x_tim.o(i.TIM_OC4Init) - TIM_OC4PreloadConfig 0x080032b5 Thumb Code 26 stm32f10x_tim.o(i.TIM_OC4PreloadConfig) - TIM_OCStructInit 0x080032cf Thumb Code 20 stm32f10x_tim.o(i.TIM_OCStructInit) - TIM_SetCompare1 0x080032e3 Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare1) - TIM_SetCompare2 0x080032e7 Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare2) - TIM_SetCompare3 0x080032eb Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare3) - TIM_SetCompare4 0x080032ef Thumb Code 6 stm32f10x_tim.o(i.TIM_SetCompare4) - TIM_TimeBaseInit 0x080032f5 Thumb Code 122 stm32f10x_tim.o(i.TIM_TimeBaseInit) - TimePwm_init 0x08003399 Thumb Code 136 pwmout.o(i.TimePwm_init) - USART1_IRQHandler 0x08003429 Thumb Code 50 rs485.o(i.USART1_IRQHandler) - USART2_IRQHandler 0x08003469 Thumb Code 122 usart.o(i.USART2_IRQHandler) - USART2_Init 0x080034f1 Thumb Code 184 usart.o(i.USART2_Init) - USART_Cmd 0x080035b9 Thumb Code 24 stm32f10x_usart.o(i.USART_Cmd) - USART_GetFlagStatus 0x080035d1 Thumb Code 26 stm32f10x_usart.o(i.USART_GetFlagStatus) - USART_GetITStatus 0x080035eb Thumb Code 84 stm32f10x_usart.o(i.USART_GetITStatus) - USART_ITConfig 0x0800363f Thumb Code 74 stm32f10x_usart.o(i.USART_ITConfig) - USART_Init 0x08003689 Thumb Code 210 stm32f10x_usart.o(i.USART_Init) - USART_ReceiveData 0x08003761 Thumb Code 10 stm32f10x_usart.o(i.USART_ReceiveData) - USART_SendData 0x0800376b Thumb Code 8 stm32f10x_usart.o(i.USART_SendData) - UsageFault_Handler 0x08003773 Thumb Code 4 stm32f10x_it.o(i.UsageFault_Handler) - W25QXX_Erase_Sector 0x08003779 Thumb Code 62 w25q128.o(i.W25QXX_Erase_Sector) - W25QXX_Init 0x080037c1 Thumb Code 68 w25q128.o(i.W25QXX_Init) - W25QXX_Read 0x08003811 Thumb Code 74 w25q128.o(i.W25QXX_Read) - W25QXX_ReadID 0x08003861 Thumb Code 64 w25q128.o(i.W25QXX_ReadID) - W25QXX_ReadSR 0x080038a9 Thumb Code 36 w25q128.o(i.W25QXX_ReadSR) - W25QXX_Wait_Busy 0x080038d5 Thumb Code 18 w25q128.o(i.W25QXX_Wait_Busy) - W25QXX_Write_Enable 0x080038e9 Thumb Code 24 w25q128.o(i.W25QXX_Write_Enable) - W25QXX_Write_NoCheck 0x08003909 Thumb Code 70 w25q128.o(i.W25QXX_Write_NoCheck) - W25QXX_Write_Page 0x08003951 Thumb Code 80 w25q128.o(i.W25QXX_Write_Page) - Write_Init 0x080039a5 Thumb Code 50 write.o(i.Write_Init) - __0printf 0x080039e5 Thumb Code 22 printfa.o(i.__0printf) - __1printf 0x080039e5 Thumb Code 0 printfa.o(i.__0printf) - __2printf 0x080039e5 Thumb Code 0 printfa.o(i.__0printf) - __c89printf 0x080039e5 Thumb Code 0 printfa.o(i.__0printf) - printf 0x080039e5 Thumb Code 0 printfa.o(i.__0printf) - __scatterload_copy 0x08003a05 Thumb Code 14 handlers.o(i.__scatterload_copy) - __scatterload_null 0x08003a13 Thumb Code 2 handlers.o(i.__scatterload_null) - __scatterload_zeroinit 0x08003a15 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) - bufcut_Init 0x080042d7 Thumb Code 24 bufcut.o(i.bufcut_Init) - delay_ms 0x080042f1 Thumb Code 60 systick.o(i.delay_ms) - delay_us 0x08004331 Thumb Code 68 systick.o(i.delay_us) - delay_xms 0x08004379 Thumb Code 24 systick.o(i.delay_xms) - fputc 0x08004391 Thumb Code 44 usart.o(i.fputc) - isAllZeros 0x080043c5 Thumb Code 26 write.o(i.isAllZeros) - iwdg_my_Init 0x080043df Thumb Code 36 iwdg.o(i.iwdg_my_Init) - main 0x08004403 Thumb Code 146 main.o(i.main) - os_init 0x08004495 Thumb Code 28 myfreertos.o(i.os_init) - pvPortMalloc 0x08004fad Thumb Code 262 heap_4.o(i.pvPortMalloc) - pvTaskIncrementMutexHeldCount 0x08005101 Thumb Code 26 tasks.o(i.pvTaskIncrementMutexHeldCount) - pxPortInitialiseStack 0x08005121 Thumb Code 30 port.o(i.pxPortInitialiseStack) - start_task 0x08005145 Thumb Code 46 myfreertos.o(i.start_task) - timelong_Compare 0x080051a1 Thumb Code 164 write.o(i.timelong_Compare) - uxListRemove 0x08005261 Thumb Code 40 list.o(i.uxListRemove) - vListInitialise 0x08005289 Thumb Code 26 list.o(i.vListInitialise) - vListInitialiseItem 0x080052a3 Thumb Code 6 list.o(i.vListInitialiseItem) - vListInsert 0x080052a9 Thumb Code 52 list.o(i.vListInsert) - vListInsertEnd 0x080052dd Thumb Code 24 list.o(i.vListInsertEnd) - vPortEnterCritical 0x080052f5 Thumb Code 68 port.o(i.vPortEnterCritical) - vPortExitCritical 0x0800537d Thumb Code 48 port.o(i.vPortExitCritical) - vPortFree 0x080053ed Thumb Code 120 heap_4.o(i.vPortFree) - vPortSetupTimerInterrupt 0x080054a5 Thumb Code 26 port.o(i.vPortSetupTimerInterrupt) - vPortValidateInterruptPriority 0x080054c5 Thumb Code 86 port.o(i.vPortValidateInterruptPriority) - vQueueAddToRegistry 0x08005565 Thumb Code 38 queue.o(i.vQueueAddToRegistry) - vQueueWaitForMessageRestricted 0x08005591 Thumb Code 74 queue.o(i.vQueueWaitForMessageRestricted) - vTaskDelay 0x080055dd Thumb Code 72 tasks.o(i.vTaskDelay) - vTaskDelete 0x08005651 Thumb Code 192 tasks.o(i.vTaskDelete) - vTaskMissedYield 0x0800575d Thumb Code 8 tasks.o(i.vTaskMissedYield) - vTaskPlaceOnEventList 0x08005769 Thumb Code 42 tasks.o(i.vTaskPlaceOnEventList) - vTaskPlaceOnEventListRestricted 0x080057bd Thumb Code 50 tasks.o(i.vTaskPlaceOnEventListRestricted) - vTaskPriorityInherit 0x08005819 Thumb Code 164 tasks.o(i.vTaskPriorityInherit) - vTaskSetTimeOutState 0x080058c9 Thumb Code 32 tasks.o(i.vTaskSetTimeOutState) - vTaskStartScheduler 0x08005915 Thumb Code 108 tasks.o(i.vTaskStartScheduler) - vTaskSuspendAll 0x080059c1 Thumb Code 12 tasks.o(i.vTaskSuspendAll) - vTaskSwitchContext 0x080059d1 Thumb Code 110 tasks.o(i.vTaskSwitchContext) - xPortStartScheduler 0x08005a79 Thumb Code 140 port.o(i.xPortStartScheduler) - xPortSysTickHandler 0x08005b19 Thumb Code 46 port.o(i.xPortSysTickHandler) - xQueueGenericCreate 0x08005b4d Thumb Code 78 queue.o(i.xQueueGenericCreate) - xQueueGenericReceive 0x08005be9 Thumb Code 416 queue.o(i.xQueueGenericReceive) - xQueueGenericReset 0x08005dd9 Thumb Code 136 queue.o(i.xQueueGenericReset) - xQueueGenericSend 0x08005eb1 Thumb Code 412 queue.o(i.xQueueGenericSend) - xQueueGenericSendFromISR 0x0800609d Thumb Code 234 queue.o(i.xQueueGenericSendFromISR) - xTaskCheckForTimeOut 0x080061d5 Thumb Code 116 tasks.o(i.xTaskCheckForTimeOut) - xTaskCreate 0x08006275 Thumb Code 96 tasks.o(i.xTaskCreate) - xTaskGetSchedulerState 0x080062d5 Thumb Code 24 tasks.o(i.xTaskGetSchedulerState) - xTaskGetTickCount 0x080062f5 Thumb Code 6 tasks.o(i.xTaskGetTickCount) - xTaskIncrementTick 0x08006301 Thumb Code 272 tasks.o(i.xTaskIncrementTick) - xTaskPriorityDisinherit 0x08006461 Thumb Code 168 tasks.o(i.xTaskPriorityDisinherit) - xTaskRemoveFromEventList 0x08006539 Thumb Code 118 tasks.o(i.xTaskRemoveFromEventList) - xTaskResumeAll 0x080065ed Thumb Code 214 tasks.o(i.xTaskResumeAll) - xTimerCreateTimerTask 0x0800670d Thumb Code 56 timers.o(i.xTimerCreateTimerTask) - xTimerGenericCommand 0x08006781 Thumb Code 116 timers.o(i.xTimerGenericCommand) - auchCRCHi 0x08006820 Data 256 rs485.o(.constdata) - auchCRCLo 0x08006920 Data 256 rs485.o(.constdata) - table_week 0x08006a20 Data 12 rtc.o(.constdata) - mon_table 0x08006a2c Data 12 rtc.o(.constdata) - Region$$Table$$Base 0x08006a38 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x08006a58 Number 0 anon$$obj.o(Region$$Table) + __aeabi_memset 0x080001e1 Thumb Code 14 memseta.o(.text) + __aeabi_memset4 0x080001e1 Thumb Code 0 memseta.o(.text) + __aeabi_memset8 0x080001e1 Thumb Code 0 memseta.o(.text) + __aeabi_memclr 0x080001ef Thumb Code 4 memseta.o(.text) + __aeabi_memclr4 0x080001ef Thumb Code 0 memseta.o(.text) + __aeabi_memclr8 0x080001ef Thumb Code 0 memseta.o(.text) + _memset$wrapper 0x080001f3 Thumb Code 18 memseta.o(.text) + __aeabi_fadd 0x08000205 Thumb Code 164 fadd.o(.text) + __aeabi_fsub 0x080002a9 Thumb Code 6 fadd.o(.text) + __aeabi_frsub 0x080002af Thumb Code 6 fadd.o(.text) + __aeabi_fmul 0x080002b5 Thumb Code 100 fmul.o(.text) + __aeabi_fdiv 0x08000319 Thumb Code 124 fdiv.o(.text) + __aeabi_dadd 0x08000395 Thumb Code 322 dadd.o(.text) + __aeabi_dsub 0x080004d7 Thumb Code 6 dadd.o(.text) + __aeabi_drsub 0x080004dd Thumb Code 6 dadd.o(.text) + __aeabi_dmul 0x080004e3 Thumb Code 228 dmul.o(.text) + __aeabi_ddiv 0x080005c7 Thumb Code 222 ddiv.o(.text) + __aeabi_i2f 0x080006a5 Thumb Code 18 fflti.o(.text) + __aeabi_i2d 0x080006b7 Thumb Code 34 dflti.o(.text) + __aeabi_ui2d 0x080006d9 Thumb Code 26 dfltui.o(.text) + __aeabi_f2iz 0x080006f3 Thumb Code 50 ffixi.o(.text) + __aeabi_f2uiz 0x08000725 Thumb Code 40 ffixui.o(.text) + __aeabi_d2iz 0x0800074d Thumb Code 62 dfixi.o(.text) + __aeabi_d2uiz 0x0800078b Thumb Code 50 dfixui.o(.text) + __aeabi_f2d 0x080007bd Thumb Code 38 f2d.o(.text) + __aeabi_cdcmpeq 0x080007e5 Thumb Code 0 cdcmple.o(.text) + __aeabi_cdcmple 0x080007e5 Thumb Code 48 cdcmple.o(.text) + __aeabi_cdrcmple 0x08000815 Thumb Code 48 cdrcmple.o(.text) + __aeabi_d2f 0x08000845 Thumb Code 56 d2f.o(.text) + __aeabi_cfcmpeq 0x0800087d Thumb Code 0 cfcmple.o(.text) + __aeabi_cfcmple 0x0800087d Thumb Code 20 cfcmple.o(.text) + __aeabi_cfrcmple 0x08000891 Thumb Code 20 cfrcmple.o(.text) + __aeabi_uidiv 0x080008a5 Thumb Code 0 uidiv.o(.text) + __aeabi_uidivmod 0x080008a5 Thumb Code 44 uidiv.o(.text) + __aeabi_uldivmod 0x080008d1 Thumb Code 98 uldiv.o(.text) + __aeabi_llsl 0x08000933 Thumb Code 30 llshl.o(.text) + _ll_shift_l 0x08000933 Thumb Code 0 llshl.o(.text) + __aeabi_llsr 0x08000951 Thumb Code 32 llushr.o(.text) + _ll_ushift_r 0x08000951 Thumb Code 0 llushr.o(.text) + __aeabi_lasr 0x08000971 Thumb Code 36 llsshr.o(.text) + _ll_sshift_r 0x08000971 Thumb Code 0 llsshr.o(.text) + __I$use$fp 0x08000995 Thumb Code 0 iusefp.o(.text) + _float_round 0x08000995 Thumb Code 18 fepilogue.o(.text) + _float_epilogue 0x080009a7 Thumb Code 92 fepilogue.o(.text) + _double_round 0x08000a03 Thumb Code 30 depilogue.o(.text) + _double_epilogue 0x08000a21 Thumb Code 156 depilogue.o(.text) + __aeabi_d2ulz 0x08000abd Thumb Code 48 dfixul.o(.text) + __scatterload 0x08000aed Thumb Code 28 init.o(.text) + __scatterload_rt2 0x08000aed Thumb Code 0 init.o(.text) + __decompress 0x08000b11 Thumb Code 0 __dczerorl2.o(.text) + __decompress1 0x08000b11 Thumb Code 86 __dczerorl2.o(.text) + Analysis 0x08000b69 Thumb Code 114 write.o(i.Analysis) + Array 0x08000be1 Thumb Code 364 write.o(i.Array) + BKP_DeInit 0x08000d51 Thumb Code 16 stm32f10x_bkp.o(i.BKP_DeInit) + BKP_ReadBackupRegister 0x08000d61 Thumb Code 24 stm32f10x_bkp.o(i.BKP_ReadBackupRegister) + BKP_TamperPinCmd 0x08000d7d Thumb Code 6 stm32f10x_bkp.o(i.BKP_TamperPinCmd) + BKP_WriteBackupRegister 0x08000d89 Thumb Code 22 stm32f10x_bkp.o(i.BKP_WriteBackupRegister) + Batch_synchronization 0x08000da5 Thumb Code 42 write.o(i.Batch_synchronization) + BusFault_Handler 0x08000dd5 Thumb Code 4 stm32f10x_it.o(i.BusFault_Handler) + CRC16_check 0x08000dd9 Thumb Code 66 rs485.o(i.CRC16_check) + DebugMon_Handler 0x08000e25 Thumb Code 2 stm32f10x_it.o(i.DebugMon_Handler) + GPIO_Init 0x08000e27 Thumb Code 278 stm32f10x_gpio.o(i.GPIO_Init) + GPIO_ResetBits 0x08000f3d Thumb Code 4 stm32f10x_gpio.o(i.GPIO_ResetBits) + GPIO_SetBits 0x08000f41 Thumb Code 4 stm32f10x_gpio.o(i.GPIO_SetBits) + GetCRC16 0x08000f45 Thumb Code 50 rs485.o(i.GetCRC16) + HC595_Pin_Init 0x08000f81 Thumb Code 74 relays.o(i.HC595_Pin_Init) + HC595_Send_Byte 0x08000fd1 Thumb Code 60 relays.o(i.HC595_Send_Byte) + HC595_Send_Data 0x08001015 Thumb Code 66 relays.o(i.HC595_Send_Data) + HardFault_Handler 0x08001061 Thumb Code 4 stm32f10x_it.o(i.HardFault_Handler) + IWDG_Enable 0x08001065 Thumb Code 10 stm32f10x_iwdg.o(i.IWDG_Enable) + IWDG_FeedDog 0x08001075 Thumb Code 8 iwdg.o(i.IWDG_FeedDog) + IWDG_ReloadCounter 0x0800107d Thumb Code 10 stm32f10x_iwdg.o(i.IWDG_ReloadCounter) + IWDG_SetPrescaler 0x0800108d Thumb Code 6 stm32f10x_iwdg.o(i.IWDG_SetPrescaler) + IWDG_SetReload 0x08001099 Thumb Code 6 stm32f10x_iwdg.o(i.IWDG_SetReload) + IWDG_WriteAccessCmd 0x080010a5 Thumb Code 6 stm32f10x_iwdg.o(i.IWDG_WriteAccessCmd) + Is_Leap_Year 0x080010b1 Thumb Code 58 rtc.o(i.Is_Leap_Year) + MemManage_Handler 0x080010eb Thumb Code 4 stm32f10x_it.o(i.MemManage_Handler) + NMI_Handler 0x080010ef Thumb Code 2 stm32f10x_it.o(i.NMI_Handler) + NVIC_Init 0x080010f1 Thumb Code 100 misc.o(i.NVIC_Init) + NVIC_PriorityGroupConfig 0x08001161 Thumb Code 10 misc.o(i.NVIC_PriorityGroupConfig) + PID_Calc 0x08001175 Thumb Code 724 pid.o(i.PID_Calc) + PID_Init 0x08001479 Thumb Code 104 pid.o(i.PID_Init) + PWM1_Init 0x080014f9 Thumb Code 156 pwm.o(i.PWM1_Init) + PWM2_Init 0x0800159d Thumb Code 156 pwm.o(i.PWM2_Init) + PWM3_Init 0x08001641 Thumb Code 134 pwm.o(i.PWM3_Init) + PWM_SetCompare1 0x080016cd Thumb Code 14 pwm.o(i.PWM_SetCompare1) + PWM_SetCompare2 0x080016e1 Thumb Code 16 pwm.o(i.PWM_SetCompare2) + PWM_SetCompare4 0x080016f1 Thumb Code 14 pwm.o(i.PWM_SetCompare4) + PWR_BackupAccessCmd 0x08001705 Thumb Code 6 stm32f10x_pwr.o(i.PWR_BackupAccessCmd) + RCC_APB1PeriphClockCmd 0x08001711 Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) + RCC_APB2PeriphClockCmd 0x08001731 Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) + RCC_APB2PeriphResetCmd 0x08001751 Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) + RCC_BackupResetCmd 0x08001771 Thumb Code 6 stm32f10x_rcc.o(i.RCC_BackupResetCmd) + RCC_GetClocksFreq 0x0800177d Thumb Code 192 stm32f10x_rcc.o(i.RCC_GetClocksFreq) + RCC_GetFlagStatus 0x08001851 Thumb Code 56 stm32f10x_rcc.o(i.RCC_GetFlagStatus) + RCC_HSEConfig 0x0800188d Thumb Code 70 stm32f10x_rcc.o(i.RCC_HSEConfig) + RCC_LSEConfig 0x080018d9 Thumb Code 46 stm32f10x_rcc.o(i.RCC_LSEConfig) + RCC_RTCCLKCmd 0x0800190d Thumb Code 6 stm32f10x_rcc.o(i.RCC_RTCCLKCmd) + RCC_RTCCLKConfig 0x08001919 Thumb Code 12 stm32f10x_rcc.o(i.RCC_RTCCLKConfig) + RS485_1_Init 0x08001929 Thumb Code 220 rs485.o(i.RS485_1_Init) + RS485_1_Send_Data 0x08001a15 Thumb Code 72 rs485.o(i.RS485_1_Send_Data) + RS485_1_Send_Data_1 0x08001a69 Thumb Code 68 rs485.o(i.RS485_1_Send_Data_1) + RS485_1_Send_Data_2 0x08001ab5 Thumb Code 1204 rs485.o(i.RS485_1_Send_Data_2) + RS485_1_Send_Data_3 0x08001f79 Thumb Code 118 rs485.o(i.RS485_1_Send_Data_3) + RS485_3_Init 0x08002009 Thumb Code 214 rs485.o(i.RS485_3_Init) + RS485_3_Send_Data 0x080020f1 Thumb Code 68 rs485.o(i.RS485_3_Send_Data) + RTC_ClearITPendingBit 0x0800213d Thumb Code 12 stm32f10x_rtc.o(i.RTC_ClearITPendingBit) + RTC_EnterConfigMode 0x0800214d Thumb Code 14 stm32f10x_rtc.o(i.RTC_EnterConfigMode) + RTC_ExitConfigMode 0x08002161 Thumb Code 16 stm32f10x_rtc.o(i.RTC_ExitConfigMode) + RTC_Get 0x08002175 Thumb Code 262 rtc.o(i.RTC_Get) + RTC_GetCounter 0x0800228d Thumb Code 16 stm32f10x_rtc.o(i.RTC_GetCounter) + RTC_GetITStatus 0x080022a1 Thumb Code 32 stm32f10x_rtc.o(i.RTC_GetITStatus) + RTC_Get_Week 0x080022c5 Thumb Code 116 rtc.o(i.RTC_Get_Week) + RTC_IRQHandler 0x0800233d Thumb Code 52 rtc.o(i.RTC_IRQHandler) + RTC_ITConfig 0x08002379 Thumb Code 26 stm32f10x_rtc.o(i.RTC_ITConfig) + RTC_Init 0x08002399 Thumb Code 196 rtc.o(i.RTC_Init) + RTC_Set 0x08002481 Thumb Code 184 rtc.o(i.RTC_Set) + RTC_SetCounter 0x08002549 Thumb Code 24 stm32f10x_rtc.o(i.RTC_SetCounter) + RTC_SetPrescaler 0x08002565 Thumb Code 26 stm32f10x_rtc.o(i.RTC_SetPrescaler) + RTC_WaitForLastTask 0x08002585 Thumb Code 16 stm32f10x_rtc.o(i.RTC_WaitForLastTask) + RTC_WaitForSynchro 0x08002599 Thumb Code 30 stm32f10x_rtc.o(i.RTC_WaitForSynchro) + RTC_synchronization_ins 0x080025bd Thumb Code 176 rtc.o(i.RTC_synchronization_ins) + RX_BUF_Transfer 0x08002675 Thumb Code 48 bufcut.o(i.RX_BUF_Transfer) + Read_Init 0x080026a9 Thumb Code 304 write.o(i.Read_Init) + SN74CB3Q3253_Init 0x08002801 Thumb Code 46 rs485.o(i.SN74CB3Q3253_Init) + SPI1_Init 0x08002835 Thumb Code 136 myspi.o(i.SPI1_Init) + SPI1_ReadWriteByte 0x080028c5 Thumb Code 78 myspi.o(i.SPI1_ReadWriteByte) + SPI1_SetSpeed 0x08002919 Thumb Code 36 myspi.o(i.SPI1_SetSpeed) + SPI_Cmd 0x08002945 Thumb Code 24 stm32f10x_spi.o(i.SPI_Cmd) + SPI_I2S_GetFlagStatus 0x0800295d Thumb Code 18 stm32f10x_spi.o(i.SPI_I2S_GetFlagStatus) + SPI_I2S_ReceiveData 0x0800296f Thumb Code 6 stm32f10x_spi.o(i.SPI_I2S_ReceiveData) + SPI_I2S_SendData 0x08002975 Thumb Code 4 stm32f10x_spi.o(i.SPI_I2S_SendData) + SPI_Init 0x08002979 Thumb Code 60 stm32f10x_spi.o(i.SPI_Init) + SensorDataRequestTask 0x080029b5 Thumb Code 20 myfreertos.o(i.SensorDataRequestTask) + Sensor_Communication_task 0x080029cd Thumb Code 1222 myfreertos.o(i.Sensor_Communication_task) + SyncEnvironmentDataRequestTask 0x08002f91 Thumb Code 16 myfreertos.o(i.SyncEnvironmentDataRequestTask) + SysTick_CLKSourceConfig 0x08002fa1 Thumb Code 40 misc.o(i.SysTick_CLKSourceConfig) + SysTick_Handler 0x08002fc9 Thumb Code 16 stm32f10x_it.o(i.SysTick_Handler) + SysTick_Init 0x08002fd9 Thumb Code 76 systick.o(i.SysTick_Init) + SystemInit 0x08003035 Thumb Code 78 system_stm32f10x.o(i.SystemInit) + TIM2_IRQHandler 0x08003095 Thumb Code 32 pwmout.o(i.TIM2_IRQHandler) + TIM2_Init 0x080030b9 Thumb Code 92 pwmout.o(i.TIM2_Init) + TIM4_IRQHandler 0x08003115 Thumb Code 60 pwm.o(i.TIM4_IRQHandler) + TIM4_Init 0x0800315d Thumb Code 84 pwm.o(i.TIM4_Init) + TIM_ARRPreloadConfig 0x080031b5 Thumb Code 24 stm32f10x_tim.o(i.TIM_ARRPreloadConfig) + TIM_ClearITPendingBit 0x080031cd Thumb Code 6 stm32f10x_tim.o(i.TIM_ClearITPendingBit) + TIM_Cmd 0x080031d3 Thumb Code 24 stm32f10x_tim.o(i.TIM_Cmd) + TIM_CtrlPWMOutputs 0x080031eb Thumb Code 30 stm32f10x_tim.o(i.TIM_CtrlPWMOutputs) + TIM_GetITStatus 0x08003209 Thumb Code 34 stm32f10x_tim.o(i.TIM_GetITStatus) + TIM_ITConfig 0x0800322b Thumb Code 18 stm32f10x_tim.o(i.TIM_ITConfig) + TIM_OC1Init 0x0800323d Thumb Code 132 stm32f10x_tim.o(i.TIM_OC1Init) + TIM_OC1PreloadConfig 0x080032d5 Thumb Code 18 stm32f10x_tim.o(i.TIM_OC1PreloadConfig) + TIM_OC2Init 0x080032e9 Thumb Code 154 stm32f10x_tim.o(i.TIM_OC2Init) + TIM_OC3Init 0x0800338d Thumb Code 150 stm32f10x_tim.o(i.TIM_OC3Init) + TIM_OC4Init 0x0800342d Thumb Code 114 stm32f10x_tim.o(i.TIM_OC4Init) + TIM_OC4PreloadConfig 0x080034a9 Thumb Code 26 stm32f10x_tim.o(i.TIM_OC4PreloadConfig) + TIM_OCStructInit 0x080034c3 Thumb Code 20 stm32f10x_tim.o(i.TIM_OCStructInit) + TIM_SetCompare1 0x080034d7 Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare1) + TIM_SetCompare2 0x080034db Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare2) + TIM_SetCompare3 0x080034df Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare3) + TIM_SetCompare4 0x080034e3 Thumb Code 6 stm32f10x_tim.o(i.TIM_SetCompare4) + TIM_TimeBaseInit 0x080034e9 Thumb Code 122 stm32f10x_tim.o(i.TIM_TimeBaseInit) + TimePwm_init 0x0800358d Thumb Code 136 pwmout.o(i.TimePwm_init) + USART1_IRQHandler 0x0800361d Thumb Code 50 rs485.o(i.USART1_IRQHandler) + USART2_IRQHandler 0x0800365d Thumb Code 122 usart.o(i.USART2_IRQHandler) + USART2_Init 0x080036e5 Thumb Code 184 usart.o(i.USART2_Init) + USART_Cmd 0x080037ad Thumb Code 24 stm32f10x_usart.o(i.USART_Cmd) + USART_GetFlagStatus 0x080037c5 Thumb Code 26 stm32f10x_usart.o(i.USART_GetFlagStatus) + USART_GetITStatus 0x080037df Thumb Code 84 stm32f10x_usart.o(i.USART_GetITStatus) + USART_ITConfig 0x08003833 Thumb Code 74 stm32f10x_usart.o(i.USART_ITConfig) + USART_Init 0x0800387d Thumb Code 210 stm32f10x_usart.o(i.USART_Init) + USART_ReceiveData 0x08003955 Thumb Code 10 stm32f10x_usart.o(i.USART_ReceiveData) + USART_SendData 0x0800395f Thumb Code 8 stm32f10x_usart.o(i.USART_SendData) + UsageFault_Handler 0x08003967 Thumb Code 4 stm32f10x_it.o(i.UsageFault_Handler) + W25QXX_Erase_Sector 0x0800396d Thumb Code 62 w25q128.o(i.W25QXX_Erase_Sector) + W25QXX_Init 0x080039b5 Thumb Code 68 w25q128.o(i.W25QXX_Init) + W25QXX_Read 0x08003a05 Thumb Code 74 w25q128.o(i.W25QXX_Read) + W25QXX_ReadID 0x08003a55 Thumb Code 64 w25q128.o(i.W25QXX_ReadID) + W25QXX_ReadSR 0x08003a9d Thumb Code 36 w25q128.o(i.W25QXX_ReadSR) + W25QXX_Wait_Busy 0x08003ac9 Thumb Code 18 w25q128.o(i.W25QXX_Wait_Busy) + W25QXX_Write 0x08003add Thumb Code 180 w25q128.o(i.W25QXX_Write) + W25QXX_Write_Enable 0x08003b95 Thumb Code 24 w25q128.o(i.W25QXX_Write_Enable) + W25QXX_Write_NoCheck 0x08003bb5 Thumb Code 70 w25q128.o(i.W25QXX_Write_NoCheck) + W25QXX_Write_Page 0x08003bfd Thumb Code 80 w25q128.o(i.W25QXX_Write_Page) + Write_Init 0x08003c51 Thumb Code 238 write.o(i.Write_Init) + __0printf 0x08003d59 Thumb Code 22 printfa.o(i.__0printf) + __1printf 0x08003d59 Thumb Code 0 printfa.o(i.__0printf) + __2printf 0x08003d59 Thumb Code 0 printfa.o(i.__0printf) + __c89printf 0x08003d59 Thumb Code 0 printfa.o(i.__0printf) + printf 0x08003d59 Thumb Code 0 printfa.o(i.__0printf) + __scatterload_copy 0x08003d79 Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x08003d87 Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x08003d89 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + bufcut_Init 0x0800464b Thumb Code 24 bufcut.o(i.bufcut_Init) + cmp_str 0x08004663 Thumb Code 34 rs485.o(i.cmp_str) + cp_str_to_prev 0x08004685 Thumb Code 22 rs485.o(i.cp_str_to_prev) + delay_ms 0x0800469d Thumb Code 60 systick.o(i.delay_ms) + delay_us 0x080046dd Thumb Code 68 systick.o(i.delay_us) + delay_xms 0x08004725 Thumb Code 24 systick.o(i.delay_xms) + fputc 0x0800473d Thumb Code 44 usart.o(i.fputc) + isAllZeros 0x08004771 Thumb Code 26 write.o(i.isAllZeros) + iwdg_my_Init 0x0800478b Thumb Code 36 iwdg.o(i.iwdg_my_Init) + main 0x080047af Thumb Code 146 main.o(i.main) + os_init 0x08004841 Thumb Code 68 myfreertos.o(i.os_init) + process_hmi_btn_event 0x080048d9 Thumb Code 70 myfreertos.o(i.process_hmi_btn_event) + process_sensor_data 0x08004929 Thumb Code 544 myfreertos.o(i.process_sensor_data) + pvPortMalloc 0x08005665 Thumb Code 262 heap_4.o(i.pvPortMalloc) + pvTaskIncrementMutexHeldCount 0x080057b9 Thumb Code 26 tasks.o(i.pvTaskIncrementMutexHeldCount) + pxPortInitialiseStack 0x080057d9 Thumb Code 30 port.o(i.pxPortInitialiseStack) + start_task 0x080057fd Thumb Code 46 myfreertos.o(i.start_task) + timelong_Compare 0x08005859 Thumb Code 164 write.o(i.timelong_Compare) + uxListRemove 0x08005919 Thumb Code 40 list.o(i.uxListRemove) + vListInitialise 0x08005941 Thumb Code 26 list.o(i.vListInitialise) + vListInitialiseItem 0x0800595b Thumb Code 6 list.o(i.vListInitialiseItem) + vListInsert 0x08005961 Thumb Code 52 list.o(i.vListInsert) + vListInsertEnd 0x08005995 Thumb Code 24 list.o(i.vListInsertEnd) + vPortEnterCritical 0x080059ad Thumb Code 68 port.o(i.vPortEnterCritical) + vPortExitCritical 0x08005a35 Thumb Code 48 port.o(i.vPortExitCritical) + vPortFree 0x08005aa5 Thumb Code 120 heap_4.o(i.vPortFree) + vPortSetupTimerInterrupt 0x08005b5d Thumb Code 26 port.o(i.vPortSetupTimerInterrupt) + vPortValidateInterruptPriority 0x08005b7d Thumb Code 86 port.o(i.vPortValidateInterruptPriority) + vQueueAddToRegistry 0x08005c1d Thumb Code 38 queue.o(i.vQueueAddToRegistry) + vQueueWaitForMessageRestricted 0x08005c49 Thumb Code 74 queue.o(i.vQueueWaitForMessageRestricted) + vTaskDelay 0x08005c95 Thumb Code 72 tasks.o(i.vTaskDelay) + vTaskDelete 0x08005d09 Thumb Code 192 tasks.o(i.vTaskDelete) + vTaskMissedYield 0x08005e15 Thumb Code 8 tasks.o(i.vTaskMissedYield) + vTaskPlaceOnEventList 0x08005e21 Thumb Code 42 tasks.o(i.vTaskPlaceOnEventList) + vTaskPlaceOnEventListRestricted 0x08005e75 Thumb Code 50 tasks.o(i.vTaskPlaceOnEventListRestricted) + vTaskPriorityInherit 0x08005ed1 Thumb Code 164 tasks.o(i.vTaskPriorityInherit) + vTaskSetTimeOutState 0x08005f81 Thumb Code 32 tasks.o(i.vTaskSetTimeOutState) + vTaskStartScheduler 0x08005fcd Thumb Code 108 tasks.o(i.vTaskStartScheduler) + vTaskSuspendAll 0x08006079 Thumb Code 12 tasks.o(i.vTaskSuspendAll) + vTaskSwitchContext 0x08006089 Thumb Code 110 tasks.o(i.vTaskSwitchContext) + xPortStartScheduler 0x08006131 Thumb Code 140 port.o(i.xPortStartScheduler) + xPortSysTickHandler 0x080061d1 Thumb Code 46 port.o(i.xPortSysTickHandler) + xQueueGenericCreate 0x08006205 Thumb Code 78 queue.o(i.xQueueGenericCreate) + xQueueGenericReceive 0x080062a1 Thumb Code 416 queue.o(i.xQueueGenericReceive) + xQueueGenericReset 0x08006491 Thumb Code 136 queue.o(i.xQueueGenericReset) + xQueueGenericSend 0x08006569 Thumb Code 412 queue.o(i.xQueueGenericSend) + xQueueGenericSendFromISR 0x08006755 Thumb Code 234 queue.o(i.xQueueGenericSendFromISR) + xTaskCheckForTimeOut 0x0800688d Thumb Code 116 tasks.o(i.xTaskCheckForTimeOut) + xTaskCreate 0x0800692d Thumb Code 96 tasks.o(i.xTaskCreate) + xTaskGetSchedulerState 0x0800698d Thumb Code 24 tasks.o(i.xTaskGetSchedulerState) + xTaskGetTickCount 0x080069ad Thumb Code 6 tasks.o(i.xTaskGetTickCount) + xTaskIncrementTick 0x080069b9 Thumb Code 272 tasks.o(i.xTaskIncrementTick) + xTaskPriorityDisinherit 0x08006b19 Thumb Code 168 tasks.o(i.xTaskPriorityDisinherit) + xTaskRemoveFromEventList 0x08006bf1 Thumb Code 118 tasks.o(i.xTaskRemoveFromEventList) + xTaskResumeAll 0x08006ca5 Thumb Code 214 tasks.o(i.xTaskResumeAll) + xTimerCreateTimerTask 0x08006dc5 Thumb Code 56 timers.o(i.xTimerCreateTimerTask) + xTimerGenericCommand 0x08006e39 Thumb Code 116 timers.o(i.xTimerGenericCommand) + auchCRCHi 0x08006ed8 Data 256 rs485.o(.constdata) + auchCRCLo 0x08006fd8 Data 256 rs485.o(.constdata) + table_week 0x080070d8 Data 12 rtc.o(.constdata) + mon_table 0x080070e4 Data 12 rtc.o(.constdata) + Region$$Table$$Base 0x080070f0 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x08007110 Number 0 anon$$obj.o(Region$$Table) SystemCoreClock 0x20000000 Data 4 system_stm32f10x.o(.data) AHBPrescTable 0x20000004 Data 16 system_stm32f10x.o(.data) W25QXX_TYPE 0x20000014 Data 2 w25q128.o(.data) @@ -3476,106 +3532,108 @@ Image Symbol Table current_minute 0x20000018 Data 2 write.o(.data) total_minute 0x2000001a Data 2 write.o(.data) total 0x2000001c Data 108 write.o(.data) - sendbuf 0x20000088 Data 37 rs485.o(.data) - TEM1 0x200000ad Data 1 rs485.o(.data) - TEM2 0x200000ae Data 1 rs485.o(.data) - HUM1 0x200000af Data 1 rs485.o(.data) - HUM2 0x200000b0 Data 1 rs485.o(.data) - CO2_1 0x200000b1 Data 1 rs485.o(.data) - CO2_2 0x200000b2 Data 1 rs485.o(.data) - RED_LIGHT 0x200000b4 Data 2 rs485.o(.data) - WHITE_LIGHT 0x200000b6 Data 2 rs485.o(.data) - BLUE_LIGHT 0x200000b8 Data 2 rs485.o(.data) - red_light1 0x200000ba Data 1 rs485.o(.data) - red_light2 0x200000bb Data 1 rs485.o(.data) - white_light1 0x200000bc Data 1 rs485.o(.data) - white_light2 0x200000bd Data 1 rs485.o(.data) - blue_light1 0x200000be Data 1 rs485.o(.data) - blue_light2 0x200000bf Data 1 rs485.o(.data) - crc_num1 0x200000c0 Data 1 rs485.o(.data) - crc_num2 0x200000c1 Data 1 rs485.o(.data) - RS485_RX_CNT 0x200000c2 Data 1 rs485.o(.data) - RS485_RX_Flag 0x200000c3 Data 1 rs485.o(.data) - a 0x200000c4 Data 1 rtc.o(.data) - b 0x200000c5 Data 1 rtc.o(.data) - cold_tem 0x200000c8 Data 4 pid.o(.data) - red_tem 0x200000cc Data 4 pid.o(.data) - ti 0x200000d0 Data 4 pid.o(.data) - ki 0x200000d4 Data 4 pid.o(.data) - kd 0x200000d8 Data 4 pid.o(.data) - num 0x200000dc Data 4 pid.o(.data) - rs485speed 0x200000e0 Data 8 pid.o(.data) - min_speed_count 0x200000e8 Data 4 pid.o(.data) - max_speed_count 0x200000ec Data 4 pid.o(.data) - USART2_RX_STA 0x200000f4 Data 2 usart.o(.data) - pxCurrentTCB 0x2000010c Data 4 tasks.o(.data) - pubTopic 0x20000180 Data 512 myfreertos.o(.data) - subTopic 0x20000380 Data 512 myfreertos.o(.data) - StartTask_Handler 0x20000580 Data 4 myfreertos.o(.data) - Sensor_CommunicationTask_Handler 0x20000584 Data 4 myfreertos.o(.data) - cnt_flag 0x20000588 Data 1 myfreertos.o(.data) - sub_flag 0x20000589 Data 1 myfreertos.o(.data) - pub_flag 0x2000058a Data 1 myfreertos.o(.data) - time 0x2000058c Data 2 myfreertos.o(.data) - store_stage 0x2000058e Data 1 myfreertos.o(.data) - ins_1 0x2000058f Data 1 myfreertos.o(.data) - diff 0x20000590 Data 4 myfreertos.o(.data) - gpio_state 0x20000594 Data 1 myfreertos.o(.data) - NUM 0x20000595 Data 1 myfreertos.o(.data) - n 0x20000596 Data 1 myfreertos.o(.data) - i 0x20000598 Data 2 myfreertos.o(.data) - chour 0x2000059a Data 1 myfreertos.o(.data) - cminute 0x2000059b Data 1 myfreertos.o(.data) - hot_clod_flag 0x2000059c Data 1 myfreertos.o(.data) - humidity_flag 0x2000059d Data 1 myfreertos.o(.data) - ALARM 0x2000059e Data 1 myfreertos.o(.data) - tick 0x200005a0 Data 2 myfreertos.o(.data) - Feed_Dog_Count 0x200005a2 Data 1 myfreertos.o(.data) - now_stage 0x200005a3 Data 1 myfreertos.o(.data) - tem 0x200005a4 Data 2 myfreertos.o(.data) - hum 0x200005a6 Data 2 myfreertos.o(.data) - red 0x200005a8 Data 2 myfreertos.o(.data) - blue 0x200005aa Data 2 myfreertos.o(.data) - white 0x200005ac Data 2 myfreertos.o(.data) - hour 0x200005ae Data 1 myfreertos.o(.data) - min 0x200005af Data 1 myfreertos.o(.data) - change_stage_rev1 0x200005b0 Data 1 myfreertos.o(.data) - change_stage_rev2 0x200005b1 Data 1 myfreertos.o(.data) - change_stage_rev3 0x200005b2 Data 1 myfreertos.o(.data) - rs485buf 0x200005b3 Data 8 myfreertos.o(.data) - sync_cnt 0x200005bc Data 2 myfreertos.o(.data) - T 0x200005c0 Data 4 myfreertos.o(.data) - H 0x200005c4 Data 4 myfreertos.o(.data) - C 0x200005c8 Data 4 myfreertos.o(.data) - G 0x200005cc Data 4 myfreertos.o(.data) - current_T 0x200005d0 Data 4 myfreertos.o(.data) - Humidity 0x200005d4 Data 4 myfreertos.o(.data) - temperature 0x200005d8 Data 4 myfreertos.o(.data) - handler 0x200005dc Data 4 myfreertos.o(.data) - handler1 0x200005e0 Data 4 myfreertos.o(.data) - handler2 0x200005e4 Data 4 myfreertos.o(.data) - handler3 0x200005e8 Data 4 myfreertos.o(.data) - handler4 0x200005ec Data 4 myfreertos.o(.data) - handler5 0x200005f0 Data 4 myfreertos.o(.data) - handler6 0x200005f4 Data 4 myfreertos.o(.data) - handler7 0x200005f8 Data 4 myfreertos.o(.data) - handler8 0x200005fc Data 4 myfreertos.o(.data) - handler9 0x20000600 Data 4 myfreertos.o(.data) - handler10 0x20000604 Data 4 myfreertos.o(.data) - handler11 0x20000608 Data 4 myfreertos.o(.data) - __stdout 0x2000060c Data 4 stdout.o(.data) - ArrayRead 0x20000610 Data 108 write.o(.bss) - ArrayWrite 0x2000067c Data 108 write.o(.bss) - sendbuf_crc 0x200006e8 Data 20 rs485.o(.bss) - RS485_RX_BUF 0x200006fc Data 128 rs485.o(.bss) - calendar 0x2000077c Data 10 rtc.o(.bss) - pid 0x20000788 Data 76 pid.o(.bss) - USART2_RX_BUF 0x200007d4 Data 255 usart.o(.bss) - xQueueRegistry 0x20000be0 Data 80 queue.o(.bss) - RS485_RX_BUF_COPY 0x20003430 Data 128 myfreertos.o(.bss) - wet_temp 0x200034b0 Data 256 myfreertos.o(.bss) - batch_sync_buf 0x200035b0 Data 11 myfreertos.o(.bss) - __initial_sp 0x200039c0 Data 0 startup_stm32f10x_md.o(STACK) + pidsRead 0x20000088 Data 6 write.o(.data) + pidsWrite 0x2000008e Data 6 write.o(.data) + prev_sendbuf 0x20000094 Data 37 rs485.o(.data) + sendbuf 0x200000b9 Data 37 rs485.o(.data) + TEM1 0x200000de Data 1 rs485.o(.data) + TEM2 0x200000df Data 1 rs485.o(.data) + HUM1 0x200000e0 Data 1 rs485.o(.data) + HUM2 0x200000e1 Data 1 rs485.o(.data) + CO2_1 0x200000e2 Data 1 rs485.o(.data) + CO2_2 0x200000e3 Data 1 rs485.o(.data) + RED_LIGHT 0x200000e4 Data 2 rs485.o(.data) + WHITE_LIGHT 0x200000e6 Data 2 rs485.o(.data) + BLUE_LIGHT 0x200000e8 Data 2 rs485.o(.data) + red_light1 0x200000ea Data 1 rs485.o(.data) + red_light2 0x200000eb Data 1 rs485.o(.data) + white_light1 0x200000ec Data 1 rs485.o(.data) + white_light2 0x200000ed Data 1 rs485.o(.data) + blue_light1 0x200000ee Data 1 rs485.o(.data) + blue_light2 0x200000ef Data 1 rs485.o(.data) + crc_num1 0x200000f0 Data 1 rs485.o(.data) + crc_num2 0x200000f1 Data 1 rs485.o(.data) + RS485_RX_CNT 0x200000f2 Data 1 rs485.o(.data) + RS485_RX_Flag 0x200000f3 Data 1 rs485.o(.data) + a 0x200000f4 Data 1 rtc.o(.data) + b 0x200000f5 Data 1 rtc.o(.data) + cold_tem 0x200000f8 Data 4 pid.o(.data) + red_tem 0x200000fc Data 4 pid.o(.data) + ti 0x20000100 Data 4 pid.o(.data) + ki 0x20000104 Data 4 pid.o(.data) + kd 0x20000108 Data 4 pid.o(.data) + num 0x2000010c Data 4 pid.o(.data) + rs485speed 0x20000110 Data 8 pid.o(.data) + min_speed_count 0x20000118 Data 4 pid.o(.data) + max_speed_count 0x2000011c Data 4 pid.o(.data) + USART2_RX_STA 0x20000124 Data 2 usart.o(.data) + pxCurrentTCB 0x2000013c Data 4 tasks.o(.data) + pubTopic 0x200001b0 Data 512 myfreertos.o(.data) + subTopic 0x200003b0 Data 512 myfreertos.o(.data) + StartTask_Handler 0x200005b0 Data 4 myfreertos.o(.data) + Sensor_CommunicationTask_Handler 0x200005b4 Data 4 myfreertos.o(.data) + cnt_flag 0x200005b8 Data 1 myfreertos.o(.data) + sub_flag 0x200005b9 Data 1 myfreertos.o(.data) + pub_flag 0x200005ba Data 1 myfreertos.o(.data) + time 0x200005bc Data 2 myfreertos.o(.data) + store_stage 0x200005be Data 1 myfreertos.o(.data) + ins_1 0x200005bf Data 1 myfreertos.o(.data) + diff 0x200005c0 Data 4 myfreertos.o(.data) + gpio_state 0x200005c4 Data 1 myfreertos.o(.data) + NUM 0x200005c5 Data 1 myfreertos.o(.data) + n 0x200005c6 Data 1 myfreertos.o(.data) + i 0x200005c8 Data 2 myfreertos.o(.data) + chour 0x200005ca Data 1 myfreertos.o(.data) + cminute 0x200005cb Data 1 myfreertos.o(.data) + hot_clod_flag 0x200005cc Data 1 myfreertos.o(.data) + humidity_flag 0x200005cd Data 1 myfreertos.o(.data) + ALARM 0x200005ce Data 1 myfreertos.o(.data) + tick 0x200005d0 Data 2 myfreertos.o(.data) + Feed_Dog_Count 0x200005d2 Data 1 myfreertos.o(.data) + now_stage 0x200005d3 Data 1 myfreertos.o(.data) + tem 0x200005d4 Data 2 myfreertos.o(.data) + hum 0x200005d6 Data 2 myfreertos.o(.data) + red 0x200005d8 Data 2 myfreertos.o(.data) + blue 0x200005da Data 2 myfreertos.o(.data) + white 0x200005dc Data 2 myfreertos.o(.data) + hour 0x200005de Data 1 myfreertos.o(.data) + min 0x200005df Data 1 myfreertos.o(.data) + rs485buf 0x200005e0 Data 8 myfreertos.o(.data) + sync_cnt 0x200005e8 Data 2 myfreertos.o(.data) + T 0x200005ec Data 4 myfreertos.o(.data) + H 0x200005f0 Data 4 myfreertos.o(.data) + C 0x200005f4 Data 4 myfreertos.o(.data) + G 0x200005f8 Data 4 myfreertos.o(.data) + current_T 0x200005fc Data 4 myfreertos.o(.data) + Humidity 0x20000600 Data 4 myfreertos.o(.data) + temperature 0x20000604 Data 4 myfreertos.o(.data) + handler 0x20000608 Data 4 myfreertos.o(.data) + handler1 0x2000060c Data 4 myfreertos.o(.data) + handler2 0x20000610 Data 4 myfreertos.o(.data) + handler3 0x20000614 Data 4 myfreertos.o(.data) + handler4 0x20000618 Data 4 myfreertos.o(.data) + handler5 0x2000061c Data 4 myfreertos.o(.data) + handler6 0x20000620 Data 4 myfreertos.o(.data) + handler7 0x20000624 Data 4 myfreertos.o(.data) + handler8 0x20000628 Data 4 myfreertos.o(.data) + handler9 0x2000062c Data 4 myfreertos.o(.data) + handler10 0x20000630 Data 4 myfreertos.o(.data) + handler11 0x20000634 Data 4 myfreertos.o(.data) + temp 0x20000638 Data 4 myfreertos.o(.data) + __stdout 0x2000063c Data 4 stdout.o(.data) + W25QXX_BUFFER 0x20000640 Data 4096 w25q128.o(.bss) + ArrayRead 0x20001640 Data 108 write.o(.bss) + ArrayWrite 0x200016ac Data 108 write.o(.bss) + sendbuf_crc 0x20001718 Data 20 rs485.o(.bss) + RS485_RX_BUF 0x2000172c Data 128 rs485.o(.bss) + calendar 0x200017ac Data 10 rtc.o(.bss) + pid 0x200017b8 Data 76 pid.o(.bss) + USART2_RX_BUF 0x20001804 Data 255 usart.o(.bss) + xQueueRegistry 0x20001c10 Data 80 queue.o(.bss) + RS485_RX_BUF_COPY 0x20004460 Data 128 myfreertos.o(.bss) + wet_temp 0x200044e0 Data 256 myfreertos.o(.bss) + batch_sync_buf 0x200045e0 Data 11 myfreertos.o(.bss) + __initial_sp 0x200049f0 Data 0 startup_stm32f10x_md.o(STACK) @@ -3585,323 +3643,337 @@ Memory Map of the image Image Entry point : 0x080000ed - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00007068, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x00006b38]) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00007750, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x00007204]) - Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x00006a58, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x00007110, Max: 0x00010000, ABSOLUTE) Base Addr Size Type Attr Idx E Section Name Object - 0x08000000 0x000000ec Data RO 987 RESET startup_stm32f10x_md.o - 0x080000ec 0x00000000 Code RO 6405 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) - 0x080000ec 0x00000004 Code RO 6782 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) - 0x080000f0 0x00000004 Code RO 6785 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) - 0x080000f4 0x00000000 Code RO 6787 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) - 0x080000f4 0x00000000 Code RO 6789 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) - 0x080000f4 0x00000008 Code RO 6790 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) - 0x080000fc 0x00000000 Code RO 6792 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o) - 0x080000fc 0x00000000 Code RO 6794 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o) - 0x080000fc 0x00000004 Code RO 6783 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) - 0x08000100 0x00000096 Code RO 6236 .emb_text port.o + 0x08000000 0x000000ec Data RO 999 RESET startup_stm32f10x_md.o + 0x080000ec 0x00000000 Code RO 6441 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) + 0x080000ec 0x00000004 Code RO 6818 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) + 0x080000f0 0x00000004 Code RO 6821 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) + 0x080000f4 0x00000000 Code RO 6823 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) + 0x080000f4 0x00000000 Code RO 6825 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) + 0x080000f4 0x00000008 Code RO 6826 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) + 0x080000fc 0x00000000 Code RO 6828 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o) + 0x080000fc 0x00000000 Code RO 6830 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o) + 0x080000fc 0x00000004 Code RO 6819 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) + 0x08000100 0x00000096 Code RO 6248 .emb_text port.o 0x08000196 0x00000002 PAD - 0x08000198 0x00000024 Code RO 988 .text startup_stm32f10x_md.o - 0x080001bc 0x00000024 Code RO 6410 .text mc_w.l(memcpya.o) - 0x080001e0 0x000000b0 Code RO 6717 .text mf_w.l(fadd.o) - 0x08000290 0x00000064 Code RO 6719 .text mf_w.l(fmul.o) - 0x080002f4 0x0000007c Code RO 6721 .text mf_w.l(fdiv.o) - 0x08000370 0x0000014e Code RO 6723 .text mf_w.l(dadd.o) - 0x080004be 0x000000e4 Code RO 6725 .text mf_w.l(dmul.o) - 0x080005a2 0x000000de Code RO 6727 .text mf_w.l(ddiv.o) - 0x08000680 0x00000012 Code RO 6729 .text mf_w.l(fflti.o) - 0x08000692 0x00000022 Code RO 6731 .text mf_w.l(dflti.o) - 0x080006b4 0x0000001a Code RO 6733 .text mf_w.l(dfltui.o) - 0x080006ce 0x00000032 Code RO 6735 .text mf_w.l(ffixi.o) - 0x08000700 0x00000028 Code RO 6737 .text mf_w.l(ffixui.o) - 0x08000728 0x0000003e Code RO 6739 .text mf_w.l(dfixi.o) - 0x08000766 0x00000032 Code RO 6741 .text mf_w.l(dfixui.o) - 0x08000798 0x00000030 Code RO 6747 .text mf_w.l(cdrcmple.o) - 0x080007c8 0x00000038 Code RO 6749 .text mf_w.l(d2f.o) - 0x08000800 0x00000014 Code RO 6751 .text mf_w.l(cfcmple.o) - 0x08000814 0x00000014 Code RO 6753 .text mf_w.l(cfrcmple.o) - 0x08000828 0x0000002c Code RO 6797 .text mc_w.l(uidiv.o) - 0x08000854 0x00000062 Code RO 6799 .text mc_w.l(uldiv.o) - 0x080008b6 0x0000001e Code RO 6801 .text mc_w.l(llshl.o) - 0x080008d4 0x00000020 Code RO 6803 .text mc_w.l(llushr.o) - 0x080008f4 0x00000024 Code RO 6805 .text mc_w.l(llsshr.o) - 0x08000918 0x00000000 Code RO 6816 .text mc_w.l(iusefp.o) - 0x08000918 0x0000006e Code RO 6817 .text mf_w.l(fepilogue.o) - 0x08000986 0x000000ba Code RO 6819 .text mf_w.l(depilogue.o) - 0x08000a40 0x00000030 Code RO 6823 .text mf_w.l(dfixul.o) - 0x08000a70 0x00000024 Code RO 6825 .text mc_w.l(init.o) - 0x08000a94 0x00000056 Code RO 6837 .text mc_w.l(__dczerorl2.o) - 0x08000aea 0x00000002 PAD - 0x08000aec 0x00000078 Code RO 547 i.Analysis write.o - 0x08000b64 0x00000170 Code RO 548 i.Array write.o - 0x08000cd4 0x00000010 Code RO 1770 i.BKP_DeInit stm32f10x_bkp.o - 0x08000ce4 0x0000001c Code RO 1775 i.BKP_ReadBackupRegister stm32f10x_bkp.o - 0x08000d00 0x0000000c Code RO 1777 i.BKP_TamperPinCmd stm32f10x_bkp.o - 0x08000d0c 0x0000001c Code RO 1779 i.BKP_WriteBackupRegister stm32f10x_bkp.o - 0x08000d28 0x00000030 Code RO 549 i.Batch_synchronization write.o - 0x08000d58 0x00000004 Code RO 215 i.BusFault_Handler stm32f10x_it.o - 0x08000d5c 0x00000002 Code RO 216 i.DebugMon_Handler stm32f10x_it.o - 0x08000d5e 0x00000116 Code RO 1034 i.GPIO_Init stm32f10x_gpio.o - 0x08000e74 0x00000004 Code RO 1041 i.GPIO_ResetBits stm32f10x_gpio.o - 0x08000e78 0x00000004 Code RO 1042 i.GPIO_SetBits stm32f10x_gpio.o - 0x08000e7c 0x0000003c Code RO 636 i.GetCRC16 rs485.o - 0x08000eb8 0x00000050 Code RO 523 i.HC595_Pin_Init relays.o - 0x08000f08 0x00000044 Code RO 524 i.HC595_Send_Byte relays.o - 0x08000f4c 0x0000004c Code RO 525 i.HC595_Send_Data relays.o - 0x08000f98 0x00000004 Code RO 217 i.HardFault_Handler stm32f10x_it.o - 0x08000f9c 0x00000010 Code RO 2835 i.IWDG_Enable stm32f10x_iwdg.o - 0x08000fac 0x00000008 Code RO 837 i.IWDG_FeedDog iwdg.o - 0x08000fb4 0x00000010 Code RO 2837 i.IWDG_ReloadCounter stm32f10x_iwdg.o - 0x08000fc4 0x0000000c Code RO 2838 i.IWDG_SetPrescaler stm32f10x_iwdg.o - 0x08000fd0 0x0000000c Code RO 2839 i.IWDG_SetReload stm32f10x_iwdg.o - 0x08000fdc 0x0000000c Code RO 2840 i.IWDG_WriteAccessCmd stm32f10x_iwdg.o - 0x08000fe8 0x0000003a Code RO 729 i.Is_Leap_Year rtc.o - 0x08001022 0x00000004 Code RO 218 i.MemManage_Handler stm32f10x_it.o - 0x08001026 0x00000002 Code RO 219 i.NMI_Handler stm32f10x_it.o - 0x08001028 0x00000070 Code RO 992 i.NVIC_Init misc.o - 0x08001098 0x00000014 Code RO 993 i.NVIC_PriorityGroupConfig misc.o - 0x080010ac 0x00000304 Code RO 855 i.PID_Calc pid.o - 0x080013b0 0x00000034 Code RO 856 i.PID_Init pid.o - 0x080013e4 0x000000a4 Code RO 330 i.PWM1_Init pwm.o - 0x08001488 0x000000a4 Code RO 331 i.PWM2_Init pwm.o - 0x0800152c 0x0000008c Code RO 332 i.PWM3_Init pwm.o - 0x080015b8 0x00000014 Code RO 333 i.PWM_SetCompare1 pwm.o - 0x080015cc 0x00000010 Code RO 334 i.PWM_SetCompare2 pwm.o - 0x080015dc 0x00000014 Code RO 335 i.PWM_SetCompare4 pwm.o - 0x080015f0 0x0000000c Code RO 2877 i.PWR_BackupAccessCmd stm32f10x_pwr.o - 0x080015fc 0x00000020 Code RO 1168 i.RCC_APB1PeriphClockCmd stm32f10x_rcc.o - 0x0800161c 0x00000020 Code RO 1170 i.RCC_APB2PeriphClockCmd stm32f10x_rcc.o - 0x0800163c 0x00000020 Code RO 1171 i.RCC_APB2PeriphResetCmd stm32f10x_rcc.o - 0x0800165c 0x0000000c Code RO 1173 i.RCC_BackupResetCmd stm32f10x_rcc.o - 0x08001668 0x000000d4 Code RO 1178 i.RCC_GetClocksFreq stm32f10x_rcc.o - 0x0800173c 0x0000003c Code RO 1179 i.RCC_GetFlagStatus stm32f10x_rcc.o - 0x08001778 0x0000004c Code RO 1183 i.RCC_HSEConfig stm32f10x_rcc.o - 0x080017c4 0x00000034 Code RO 1186 i.RCC_LSEConfig stm32f10x_rcc.o - 0x080017f8 0x0000000c Code RO 1193 i.RCC_RTCCLKCmd stm32f10x_rcc.o - 0x08001804 0x00000010 Code RO 1194 i.RCC_RTCCLKConfig stm32f10x_rcc.o - 0x08001814 0x000000ec Code RO 637 i.RS485_1_Init rs485.o - 0x08001900 0x0000004c Code RO 639 i.RS485_1_Send_Data_1 rs485.o - 0x0800194c 0x0000048c Code RO 640 i.RS485_1_Send_Data_2 rs485.o - 0x08001dd8 0x0000007c Code RO 641 i.RS485_1_Send_Data_3 rs485.o - 0x08001e54 0x000000e8 Code RO 643 i.RS485_3_Init rs485.o - 0x08001f3c 0x0000004c Code RO 644 i.RS485_3_Send_Data rs485.o - 0x08001f88 0x00000010 Code RO 2938 i.RTC_ClearITPendingBit stm32f10x_rtc.o - 0x08001f98 0x00000014 Code RO 2939 i.RTC_EnterConfigMode stm32f10x_rtc.o - 0x08001fac 0x00000014 Code RO 2940 i.RTC_ExitConfigMode stm32f10x_rtc.o - 0x08001fc0 0x00000118 Code RO 731 i.RTC_Get rtc.o - 0x080020d8 0x00000014 Code RO 2941 i.RTC_GetCounter stm32f10x_rtc.o - 0x080020ec 0x00000024 Code RO 2944 i.RTC_GetITStatus stm32f10x_rtc.o - 0x08002110 0x00000078 Code RO 732 i.RTC_Get_Week rtc.o - 0x08002188 0x0000003c Code RO 733 i.RTC_IRQHandler rtc.o - 0x080021c4 0x00000020 Code RO 2945 i.RTC_ITConfig stm32f10x_rtc.o - 0x080021e4 0x000000cc Code RO 734 i.RTC_Init rtc.o - 0x080022b0 0x0000001a Code RO 735 i.RTC_NVIC_Config rtc.o - 0x080022ca 0x00000002 PAD - 0x080022cc 0x000000c8 Code RO 736 i.RTC_Set rtc.o - 0x08002394 0x0000001c Code RO 2947 i.RTC_SetCounter stm32f10x_rtc.o - 0x080023b0 0x00000020 Code RO 2948 i.RTC_SetPrescaler stm32f10x_rtc.o - 0x080023d0 0x00000014 Code RO 2949 i.RTC_WaitForLastTask stm32f10x_rtc.o - 0x080023e4 0x00000024 Code RO 2950 i.RTC_WaitForSynchro stm32f10x_rtc.o - 0x08002408 0x000000b8 Code RO 737 i.RTC_synchronization_ins rtc.o - 0x080024c0 0x00000034 Code RO 802 i.RX_BUF_Transfer bufcut.o - 0x080024f4 0x00000040 Code RO 550 i.Read_Init write.o - 0x08002534 0x00000034 Code RO 646 i.SN74CB3Q3253_Init rs485.o - 0x08002568 0x00000090 Code RO 393 i.SPI1_Init myspi.o - 0x080025f8 0x00000054 Code RO 394 i.SPI1_ReadWriteByte myspi.o - 0x0800264c 0x0000002c Code RO 395 i.SPI1_SetSpeed myspi.o - 0x08002678 0x00000018 Code RO 3218 i.SPI_Cmd stm32f10x_spi.o - 0x08002690 0x00000012 Code RO 3226 i.SPI_I2S_GetFlagStatus stm32f10x_spi.o - 0x080026a2 0x00000006 Code RO 3229 i.SPI_I2S_ReceiveData stm32f10x_spi.o - 0x080026a8 0x00000004 Code RO 3230 i.SPI_I2S_SendData stm32f10x_spi.o - 0x080026ac 0x0000003c Code RO 3231 i.SPI_Init stm32f10x_spi.o - 0x080026e8 0x000005dc Code RO 6362 i.Sensor_Communication_task myfreertos.o - 0x08002cc4 0x00000008 Code RO 296 i.SetSysClock system_stm32f10x.o - 0x08002ccc 0x000000e0 Code RO 297 i.SetSysClockTo72 system_stm32f10x.o - 0x08002dac 0x00000028 Code RO 996 i.SysTick_CLKSourceConfig misc.o - 0x08002dd4 0x00000010 Code RO 220 i.SysTick_Handler stm32f10x_it.o - 0x08002de4 0x0000005c Code RO 911 i.SysTick_Init systick.o - 0x08002e40 0x00000060 Code RO 299 i.SystemInit system_stm32f10x.o - 0x08002ea0 0x00000024 Code RO 881 i.TIM2_IRQHandler pwmout.o - 0x08002ec4 0x0000005c Code RO 882 i.TIM2_Init pwmout.o - 0x08002f20 0x00000048 Code RO 336 i.TIM4_IRQHandler pwm.o - 0x08002f68 0x00000058 Code RO 337 i.TIM4_Init pwm.o - 0x08002fc0 0x00000018 Code RO 3361 i.TIM_ARRPreloadConfig stm32f10x_tim.o - 0x08002fd8 0x00000006 Code RO 3368 i.TIM_ClearITPendingBit stm32f10x_tim.o - 0x08002fde 0x00000018 Code RO 3373 i.TIM_Cmd stm32f10x_tim.o - 0x08002ff6 0x0000001e Code RO 3375 i.TIM_CtrlPWMOutputs stm32f10x_tim.o - 0x08003014 0x00000022 Code RO 3394 i.TIM_GetITStatus stm32f10x_tim.o - 0x08003036 0x00000012 Code RO 3398 i.TIM_ITConfig stm32f10x_tim.o - 0x08003048 0x00000098 Code RO 3402 i.TIM_OC1Init stm32f10x_tim.o - 0x080030e0 0x00000012 Code RO 3405 i.TIM_OC1PreloadConfig stm32f10x_tim.o - 0x080030f2 0x00000002 PAD - 0x080030f4 0x000000a4 Code RO 3407 i.TIM_OC2Init stm32f10x_tim.o - 0x08003198 0x000000a0 Code RO 3412 i.TIM_OC3Init stm32f10x_tim.o - 0x08003238 0x0000007c Code RO 3417 i.TIM_OC4Init stm32f10x_tim.o - 0x080032b4 0x0000001a Code RO 3419 i.TIM_OC4PreloadConfig stm32f10x_tim.o - 0x080032ce 0x00000014 Code RO 3420 i.TIM_OCStructInit stm32f10x_tim.o - 0x080032e2 0x00000004 Code RO 3434 i.TIM_SetCompare1 stm32f10x_tim.o - 0x080032e6 0x00000004 Code RO 3435 i.TIM_SetCompare2 stm32f10x_tim.o - 0x080032ea 0x00000004 Code RO 3436 i.TIM_SetCompare3 stm32f10x_tim.o - 0x080032ee 0x00000006 Code RO 3437 i.TIM_SetCompare4 stm32f10x_tim.o - 0x080032f4 0x000000a4 Code RO 3444 i.TIM_TimeBaseInit stm32f10x_tim.o - 0x08003398 0x00000090 Code RO 883 i.TimePwm_init pwmout.o - 0x08003428 0x00000040 Code RO 647 i.USART1_IRQHandler rs485.o - 0x08003468 0x00000088 Code RO 943 i.USART2_IRQHandler usart.o - 0x080034f0 0x000000c8 Code RO 944 i.USART2_Init usart.o - 0x080035b8 0x00000018 Code RO 1370 i.USART_Cmd stm32f10x_usart.o - 0x080035d0 0x0000001a Code RO 1373 i.USART_GetFlagStatus stm32f10x_usart.o - 0x080035ea 0x00000054 Code RO 1374 i.USART_GetITStatus stm32f10x_usart.o - 0x0800363e 0x0000004a Code RO 1376 i.USART_ITConfig stm32f10x_usart.o - 0x08003688 0x000000d8 Code RO 1377 i.USART_Init stm32f10x_usart.o - 0x08003760 0x0000000a Code RO 1384 i.USART_ReceiveData stm32f10x_usart.o - 0x0800376a 0x00000008 Code RO 1387 i.USART_SendData stm32f10x_usart.o - 0x08003772 0x00000004 Code RO 221 i.UsageFault_Handler stm32f10x_it.o - 0x08003776 0x00000002 PAD - 0x08003778 0x00000048 Code RO 421 i.W25QXX_Erase_Sector w25q128.o - 0x080037c0 0x00000050 Code RO 422 i.W25QXX_Init w25q128.o - 0x08003810 0x00000050 Code RO 424 i.W25QXX_Read w25q128.o - 0x08003860 0x00000048 Code RO 425 i.W25QXX_ReadID w25q128.o - 0x080038a8 0x0000002c Code RO 426 i.W25QXX_ReadSR w25q128.o - 0x080038d4 0x00000012 Code RO 428 i.W25QXX_Wait_Busy w25q128.o - 0x080038e6 0x00000002 PAD - 0x080038e8 0x00000020 Code RO 431 i.W25QXX_Write_Enable w25q128.o - 0x08003908 0x00000046 Code RO 432 i.W25QXX_Write_NoCheck w25q128.o - 0x0800394e 0x00000002 PAD - 0x08003950 0x00000054 Code RO 433 i.W25QXX_Write_Page w25q128.o - 0x080039a4 0x00000040 Code RO 551 i.Write_Init write.o - 0x080039e4 0x00000020 Code RO 6661 i.__0printf mc_w.l(printfa.o) - 0x08003a04 0x0000000e Code RO 6831 i.__scatterload_copy mc_w.l(handlers.o) - 0x08003a12 0x00000002 Code RO 6832 i.__scatterload_null mc_w.l(handlers.o) - 0x08003a14 0x0000000e Code RO 6833 i.__scatterload_zeroinit mc_w.l(handlers.o) - 0x08003a22 0x00000002 PAD - 0x08003a24 0x00000184 Code RO 6668 i._fp_digits mc_w.l(printfa.o) - 0x08003ba8 0x000006dc Code RO 6669 i._printf_core mc_w.l(printfa.o) - 0x08004284 0x00000024 Code RO 6670 i._printf_post_padding mc_w.l(printfa.o) - 0x080042a8 0x0000002e Code RO 6671 i._printf_pre_padding mc_w.l(printfa.o) - 0x080042d6 0x00000018 Code RO 804 i.bufcut_Init bufcut.o - 0x080042ee 0x00000002 PAD - 0x080042f0 0x00000040 Code RO 912 i.delay_ms systick.o - 0x08004330 0x00000048 Code RO 913 i.delay_us systick.o - 0x08004378 0x00000018 Code RO 914 i.delay_xms systick.o - 0x08004390 0x00000034 Code RO 945 i.fputc usart.o - 0x080043c4 0x0000001a Code RO 552 i.isAllZeros write.o - 0x080043de 0x00000024 Code RO 838 i.iwdg_my_Init iwdg.o - 0x08004402 0x00000092 Code RO 1 i.main main.o - 0x08004494 0x00000030 Code RO 6363 i.os_init myfreertos.o - 0x080044c4 0x00000098 Code RO 5586 i.prvAddCurrentTaskToDelayedList tasks.o - 0x0800455c 0x000000b4 Code RO 5587 i.prvAddNewTaskToReadyList tasks.o - 0x08004610 0x00000064 Code RO 5904 i.prvCheckForValidListAndQueue timers.o - 0x08004674 0x00000064 Code RO 5588 i.prvCheckTasksWaitingTermination tasks.o - 0x080046d8 0x0000002a Code RO 6026 i.prvCopyDataFromQueue queue.o - 0x08004702 0x0000007c Code RO 6027 i.prvCopyDataToQueue queue.o - 0x0800477e 0x00000012 Code RO 5589 i.prvDeleteTCB tasks.o - 0x08004790 0x00000028 Code RO 5905 i.prvGetNextExpireTime timers.o - 0x080047b8 0x0000007c Code RO 6313 i.prvHeapInit heap_4.o - 0x08004834 0x00000028 Code RO 5590 i.prvIdleTask tasks.o - 0x0800485c 0x0000002a Code RO 6029 i.prvInitialiseNewQueue queue.o - 0x08004886 0x00000002 PAD - 0x08004888 0x000000c4 Code RO 5591 i.prvInitialiseNewTask tasks.o - 0x0800494c 0x00000068 Code RO 5592 i.prvInitialiseTaskLists tasks.o - 0x080049b4 0x00000068 Code RO 6314 i.prvInsertBlockIntoFreeList heap_4.o - 0x08004a1c 0x00000058 Code RO 5907 i.prvInsertTimerInActiveList timers.o - 0x08004a74 0x0000001a Code RO 6030 i.prvIsQueueEmpty queue.o - 0x08004a8e 0x0000001e Code RO 6031 i.prvIsQueueFull queue.o - 0x08004aac 0x000000c8 Code RO 6032 i.prvNotifyQueueSetContainer queue.o - 0x08004b74 0x00000080 Code RO 5908 i.prvProcessExpiredTimer timers.o - 0x08004bf4 0x0000010c Code RO 5909 i.prvProcessReceivedCommands timers.o - 0x08004d00 0x00000074 Code RO 5910 i.prvProcessTimerOrBlockTask timers.o - 0x08004d74 0x00000034 Code RO 5593 i.prvResetNextTaskUnblockTime tasks.o - 0x08004da8 0x0000002c Code RO 5911 i.prvSampleTimeNow timers.o - 0x08004dd4 0x000000bc Code RO 5912 i.prvSwitchTimerLists timers.o - 0x08004e90 0x00000070 Code RO 6237 i.prvTaskExitError port.o - 0x08004f00 0x0000001a Code RO 5913 i.prvTimerTask timers.o - 0x08004f1a 0x00000092 Code RO 6033 i.prvUnlockQueue queue.o - 0x08004fac 0x00000154 Code RO 6315 i.pvPortMalloc heap_4.o - 0x08005100 0x00000020 Code RO 5595 i.pvTaskIncrementMutexHeldCount tasks.o - 0x08005120 0x00000024 Code RO 6238 i.pxPortInitialiseStack port.o - 0x08005144 0x0000005c Code RO 6364 i.start_task myfreertos.o - 0x080051a0 0x000000c0 Code RO 553 i.timelong_Compare write.o - 0x08005260 0x00000028 Code RO 5548 i.uxListRemove list.o - 0x08005288 0x0000001a Code RO 5549 i.vListInitialise list.o - 0x080052a2 0x00000006 Code RO 5550 i.vListInitialiseItem list.o - 0x080052a8 0x00000034 Code RO 5551 i.vListInsert list.o - 0x080052dc 0x00000018 Code RO 5552 i.vListInsertEnd list.o - 0x080052f4 0x00000088 Code RO 6240 i.vPortEnterCritical port.o - 0x0800537c 0x00000070 Code RO 6241 i.vPortExitCritical port.o - 0x080053ec 0x000000b8 Code RO 6316 i.vPortFree heap_4.o - 0x080054a4 0x00000020 Code RO 6242 i.vPortSetupTimerInterrupt port.o - 0x080054c4 0x000000a0 Code RO 6243 i.vPortValidateInterruptPriority port.o - 0x08005564 0x0000002c Code RO 6037 i.vQueueAddToRegistry queue.o - 0x08005590 0x0000004a Code RO 6040 i.vQueueWaitForMessageRestricted queue.o - 0x080055da 0x00000002 PAD - 0x080055dc 0x00000074 Code RO 5601 i.vTaskDelay tasks.o - 0x08005650 0x0000010c Code RO 5603 i.vTaskDelete tasks.o - 0x0800575c 0x0000000c Code RO 5605 i.vTaskMissedYield tasks.o - 0x08005768 0x00000054 Code RO 5607 i.vTaskPlaceOnEventList tasks.o - 0x080057bc 0x0000005c Code RO 5608 i.vTaskPlaceOnEventListRestricted tasks.o - 0x08005818 0x000000b0 Code RO 5610 i.vTaskPriorityInherit tasks.o - 0x080058c8 0x0000004c Code RO 5613 i.vTaskSetTimeOutState tasks.o - 0x08005914 0x000000ac Code RO 5614 i.vTaskStartScheduler tasks.o - 0x080059c0 0x00000010 Code RO 5616 i.vTaskSuspendAll tasks.o - 0x080059d0 0x000000a8 Code RO 5617 i.vTaskSwitchContext tasks.o - 0x08005a78 0x000000a0 Code RO 6244 i.xPortStartScheduler port.o - 0x08005b18 0x00000034 Code RO 6245 i.xPortSysTickHandler port.o - 0x08005b4c 0x0000009c Code RO 6045 i.xQueueGenericCreate queue.o - 0x08005be8 0x000001f0 Code RO 6046 i.xQueueGenericReceive queue.o - 0x08005dd8 0x000000d8 Code RO 6047 i.xQueueGenericReset queue.o - 0x08005eb0 0x000001ec Code RO 6048 i.xQueueGenericSend queue.o - 0x0800609c 0x00000138 Code RO 6049 i.xQueueGenericSendFromISR queue.o - 0x080061d4 0x000000a0 Code RO 5618 i.xTaskCheckForTimeOut tasks.o - 0x08006274 0x00000060 Code RO 5619 i.xTaskCreate tasks.o - 0x080062d4 0x00000020 Code RO 5623 i.xTaskGetSchedulerState tasks.o - 0x080062f4 0x0000000c Code RO 5624 i.xTaskGetTickCount tasks.o - 0x08006300 0x00000160 Code RO 5626 i.xTaskIncrementTick tasks.o - 0x08006460 0x000000d8 Code RO 5629 i.xTaskPriorityDisinherit tasks.o - 0x08006538 0x000000b4 Code RO 5630 i.xTaskRemoveFromEventList tasks.o - 0x080065ec 0x00000120 Code RO 5632 i.xTaskResumeAll tasks.o - 0x0800670c 0x00000074 Code RO 5917 i.xTimerCreateTimerTask timers.o - 0x08006780 0x000000a0 Code RO 5918 i.xTimerGenericCommand timers.o - 0x08006820 0x00000200 Data RO 649 .constdata rs485.o - 0x08006a20 0x00000018 Data RO 739 .constdata rtc.o - 0x08006a38 0x00000020 Data RO 6829 Region$$Table anon$$obj.o + 0x08000198 0x00000024 Code RO 1000 .text startup_stm32f10x_md.o + 0x080001bc 0x00000024 Code RO 6446 .text mc_w.l(memcpya.o) + 0x080001e0 0x00000024 Code RO 6448 .text mc_w.l(memseta.o) + 0x08000204 0x000000b0 Code RO 6753 .text mf_w.l(fadd.o) + 0x080002b4 0x00000064 Code RO 6755 .text mf_w.l(fmul.o) + 0x08000318 0x0000007c Code RO 6757 .text mf_w.l(fdiv.o) + 0x08000394 0x0000014e Code RO 6759 .text mf_w.l(dadd.o) + 0x080004e2 0x000000e4 Code RO 6761 .text mf_w.l(dmul.o) + 0x080005c6 0x000000de Code RO 6763 .text mf_w.l(ddiv.o) + 0x080006a4 0x00000012 Code RO 6765 .text mf_w.l(fflti.o) + 0x080006b6 0x00000022 Code RO 6767 .text mf_w.l(dflti.o) + 0x080006d8 0x0000001a Code RO 6769 .text mf_w.l(dfltui.o) + 0x080006f2 0x00000032 Code RO 6771 .text mf_w.l(ffixi.o) + 0x08000724 0x00000028 Code RO 6773 .text mf_w.l(ffixui.o) + 0x0800074c 0x0000003e Code RO 6775 .text mf_w.l(dfixi.o) + 0x0800078a 0x00000032 Code RO 6777 .text mf_w.l(dfixui.o) + 0x080007bc 0x00000026 Code RO 6779 .text mf_w.l(f2d.o) + 0x080007e2 0x00000002 PAD + 0x080007e4 0x00000030 Code RO 6781 .text mf_w.l(cdcmple.o) + 0x08000814 0x00000030 Code RO 6783 .text mf_w.l(cdrcmple.o) + 0x08000844 0x00000038 Code RO 6785 .text mf_w.l(d2f.o) + 0x0800087c 0x00000014 Code RO 6787 .text mf_w.l(cfcmple.o) + 0x08000890 0x00000014 Code RO 6789 .text mf_w.l(cfrcmple.o) + 0x080008a4 0x0000002c Code RO 6833 .text mc_w.l(uidiv.o) + 0x080008d0 0x00000062 Code RO 6835 .text mc_w.l(uldiv.o) + 0x08000932 0x0000001e Code RO 6837 .text mc_w.l(llshl.o) + 0x08000950 0x00000020 Code RO 6839 .text mc_w.l(llushr.o) + 0x08000970 0x00000024 Code RO 6841 .text mc_w.l(llsshr.o) + 0x08000994 0x00000000 Code RO 6852 .text mc_w.l(iusefp.o) + 0x08000994 0x0000006e Code RO 6853 .text mf_w.l(fepilogue.o) + 0x08000a02 0x000000ba Code RO 6855 .text mf_w.l(depilogue.o) + 0x08000abc 0x00000030 Code RO 6859 .text mf_w.l(dfixul.o) + 0x08000aec 0x00000024 Code RO 6861 .text mc_w.l(init.o) + 0x08000b10 0x00000056 Code RO 6873 .text mc_w.l(__dczerorl2.o) + 0x08000b66 0x00000002 PAD + 0x08000b68 0x00000078 Code RO 547 i.Analysis write.o + 0x08000be0 0x00000170 Code RO 548 i.Array write.o + 0x08000d50 0x00000010 Code RO 1782 i.BKP_DeInit stm32f10x_bkp.o + 0x08000d60 0x0000001c Code RO 1787 i.BKP_ReadBackupRegister stm32f10x_bkp.o + 0x08000d7c 0x0000000c Code RO 1789 i.BKP_TamperPinCmd stm32f10x_bkp.o + 0x08000d88 0x0000001c Code RO 1791 i.BKP_WriteBackupRegister stm32f10x_bkp.o + 0x08000da4 0x00000030 Code RO 549 i.Batch_synchronization write.o + 0x08000dd4 0x00000004 Code RO 215 i.BusFault_Handler stm32f10x_it.o + 0x08000dd8 0x0000004c Code RO 635 i.CRC16_check rs485.o + 0x08000e24 0x00000002 Code RO 216 i.DebugMon_Handler stm32f10x_it.o + 0x08000e26 0x00000116 Code RO 1046 i.GPIO_Init stm32f10x_gpio.o + 0x08000f3c 0x00000004 Code RO 1053 i.GPIO_ResetBits stm32f10x_gpio.o + 0x08000f40 0x00000004 Code RO 1054 i.GPIO_SetBits stm32f10x_gpio.o + 0x08000f44 0x0000003c Code RO 636 i.GetCRC16 rs485.o + 0x08000f80 0x00000050 Code RO 523 i.HC595_Pin_Init relays.o + 0x08000fd0 0x00000044 Code RO 524 i.HC595_Send_Byte relays.o + 0x08001014 0x0000004c Code RO 525 i.HC595_Send_Data relays.o + 0x08001060 0x00000004 Code RO 217 i.HardFault_Handler stm32f10x_it.o + 0x08001064 0x00000010 Code RO 2847 i.IWDG_Enable stm32f10x_iwdg.o + 0x08001074 0x00000008 Code RO 849 i.IWDG_FeedDog iwdg.o + 0x0800107c 0x00000010 Code RO 2849 i.IWDG_ReloadCounter stm32f10x_iwdg.o + 0x0800108c 0x0000000c Code RO 2850 i.IWDG_SetPrescaler stm32f10x_iwdg.o + 0x08001098 0x0000000c Code RO 2851 i.IWDG_SetReload stm32f10x_iwdg.o + 0x080010a4 0x0000000c Code RO 2852 i.IWDG_WriteAccessCmd stm32f10x_iwdg.o + 0x080010b0 0x0000003a Code RO 741 i.Is_Leap_Year rtc.o + 0x080010ea 0x00000004 Code RO 218 i.MemManage_Handler stm32f10x_it.o + 0x080010ee 0x00000002 Code RO 219 i.NMI_Handler stm32f10x_it.o + 0x080010f0 0x00000070 Code RO 1004 i.NVIC_Init misc.o + 0x08001160 0x00000014 Code RO 1005 i.NVIC_PriorityGroupConfig misc.o + 0x08001174 0x00000304 Code RO 867 i.PID_Calc pid.o + 0x08001478 0x00000080 Code RO 868 i.PID_Init pid.o + 0x080014f8 0x000000a4 Code RO 330 i.PWM1_Init pwm.o + 0x0800159c 0x000000a4 Code RO 331 i.PWM2_Init pwm.o + 0x08001640 0x0000008c Code RO 332 i.PWM3_Init pwm.o + 0x080016cc 0x00000014 Code RO 333 i.PWM_SetCompare1 pwm.o + 0x080016e0 0x00000010 Code RO 334 i.PWM_SetCompare2 pwm.o + 0x080016f0 0x00000014 Code RO 335 i.PWM_SetCompare4 pwm.o + 0x08001704 0x0000000c Code RO 2889 i.PWR_BackupAccessCmd stm32f10x_pwr.o + 0x08001710 0x00000020 Code RO 1180 i.RCC_APB1PeriphClockCmd stm32f10x_rcc.o + 0x08001730 0x00000020 Code RO 1182 i.RCC_APB2PeriphClockCmd stm32f10x_rcc.o + 0x08001750 0x00000020 Code RO 1183 i.RCC_APB2PeriphResetCmd stm32f10x_rcc.o + 0x08001770 0x0000000c Code RO 1185 i.RCC_BackupResetCmd stm32f10x_rcc.o + 0x0800177c 0x000000d4 Code RO 1190 i.RCC_GetClocksFreq stm32f10x_rcc.o + 0x08001850 0x0000003c Code RO 1191 i.RCC_GetFlagStatus stm32f10x_rcc.o + 0x0800188c 0x0000004c Code RO 1195 i.RCC_HSEConfig stm32f10x_rcc.o + 0x080018d8 0x00000034 Code RO 1198 i.RCC_LSEConfig stm32f10x_rcc.o + 0x0800190c 0x0000000c Code RO 1205 i.RCC_RTCCLKCmd stm32f10x_rcc.o + 0x08001918 0x00000010 Code RO 1206 i.RCC_RTCCLKConfig stm32f10x_rcc.o + 0x08001928 0x000000ec Code RO 637 i.RS485_1_Init rs485.o + 0x08001a14 0x00000054 Code RO 638 i.RS485_1_Send_Data rs485.o + 0x08001a68 0x0000004c Code RO 639 i.RS485_1_Send_Data_1 rs485.o + 0x08001ab4 0x000004c4 Code RO 640 i.RS485_1_Send_Data_2 rs485.o + 0x08001f78 0x00000090 Code RO 641 i.RS485_1_Send_Data_3 rs485.o + 0x08002008 0x000000e8 Code RO 643 i.RS485_3_Init rs485.o + 0x080020f0 0x0000004c Code RO 644 i.RS485_3_Send_Data rs485.o + 0x0800213c 0x00000010 Code RO 2950 i.RTC_ClearITPendingBit stm32f10x_rtc.o + 0x0800214c 0x00000014 Code RO 2951 i.RTC_EnterConfigMode stm32f10x_rtc.o + 0x08002160 0x00000014 Code RO 2952 i.RTC_ExitConfigMode stm32f10x_rtc.o + 0x08002174 0x00000118 Code RO 743 i.RTC_Get rtc.o + 0x0800228c 0x00000014 Code RO 2953 i.RTC_GetCounter stm32f10x_rtc.o + 0x080022a0 0x00000024 Code RO 2956 i.RTC_GetITStatus stm32f10x_rtc.o + 0x080022c4 0x00000078 Code RO 744 i.RTC_Get_Week rtc.o + 0x0800233c 0x0000003c Code RO 745 i.RTC_IRQHandler rtc.o + 0x08002378 0x00000020 Code RO 2957 i.RTC_ITConfig stm32f10x_rtc.o + 0x08002398 0x000000cc Code RO 746 i.RTC_Init rtc.o + 0x08002464 0x0000001a Code RO 747 i.RTC_NVIC_Config rtc.o + 0x0800247e 0x00000002 PAD + 0x08002480 0x000000c8 Code RO 748 i.RTC_Set rtc.o + 0x08002548 0x0000001c Code RO 2959 i.RTC_SetCounter stm32f10x_rtc.o + 0x08002564 0x00000020 Code RO 2960 i.RTC_SetPrescaler stm32f10x_rtc.o + 0x08002584 0x00000014 Code RO 2961 i.RTC_WaitForLastTask stm32f10x_rtc.o + 0x08002598 0x00000024 Code RO 2962 i.RTC_WaitForSynchro stm32f10x_rtc.o + 0x080025bc 0x000000b8 Code RO 749 i.RTC_synchronization_ins rtc.o + 0x08002674 0x00000034 Code RO 814 i.RX_BUF_Transfer bufcut.o + 0x080026a8 0x00000158 Code RO 550 i.Read_Init write.o + 0x08002800 0x00000034 Code RO 646 i.SN74CB3Q3253_Init rs485.o + 0x08002834 0x00000090 Code RO 393 i.SPI1_Init myspi.o + 0x080028c4 0x00000054 Code RO 394 i.SPI1_ReadWriteByte myspi.o + 0x08002918 0x0000002c Code RO 395 i.SPI1_SetSpeed myspi.o + 0x08002944 0x00000018 Code RO 3230 i.SPI_Cmd stm32f10x_spi.o + 0x0800295c 0x00000012 Code RO 3238 i.SPI_I2S_GetFlagStatus stm32f10x_spi.o + 0x0800296e 0x00000006 Code RO 3241 i.SPI_I2S_ReceiveData stm32f10x_spi.o + 0x08002974 0x00000004 Code RO 3242 i.SPI_I2S_SendData stm32f10x_spi.o + 0x08002978 0x0000003c Code RO 3243 i.SPI_Init stm32f10x_spi.o + 0x080029b4 0x00000018 Code RO 6374 i.SensorDataRequestTask myfreertos.o + 0x080029cc 0x000004dc Code RO 6375 i.Sensor_Communication_task myfreertos.o + 0x08002ea8 0x00000008 Code RO 296 i.SetSysClock system_stm32f10x.o + 0x08002eb0 0x000000e0 Code RO 297 i.SetSysClockTo72 system_stm32f10x.o + 0x08002f90 0x00000010 Code RO 6376 i.SyncEnvironmentDataRequestTask myfreertos.o + 0x08002fa0 0x00000028 Code RO 1008 i.SysTick_CLKSourceConfig misc.o + 0x08002fc8 0x00000010 Code RO 220 i.SysTick_Handler stm32f10x_it.o + 0x08002fd8 0x0000005c Code RO 923 i.SysTick_Init systick.o + 0x08003034 0x00000060 Code RO 299 i.SystemInit system_stm32f10x.o + 0x08003094 0x00000024 Code RO 893 i.TIM2_IRQHandler pwmout.o + 0x080030b8 0x0000005c Code RO 894 i.TIM2_Init pwmout.o + 0x08003114 0x00000048 Code RO 336 i.TIM4_IRQHandler pwm.o + 0x0800315c 0x00000058 Code RO 337 i.TIM4_Init pwm.o + 0x080031b4 0x00000018 Code RO 3373 i.TIM_ARRPreloadConfig stm32f10x_tim.o + 0x080031cc 0x00000006 Code RO 3380 i.TIM_ClearITPendingBit stm32f10x_tim.o + 0x080031d2 0x00000018 Code RO 3385 i.TIM_Cmd stm32f10x_tim.o + 0x080031ea 0x0000001e Code RO 3387 i.TIM_CtrlPWMOutputs stm32f10x_tim.o + 0x08003208 0x00000022 Code RO 3406 i.TIM_GetITStatus stm32f10x_tim.o + 0x0800322a 0x00000012 Code RO 3410 i.TIM_ITConfig stm32f10x_tim.o + 0x0800323c 0x00000098 Code RO 3414 i.TIM_OC1Init stm32f10x_tim.o + 0x080032d4 0x00000012 Code RO 3417 i.TIM_OC1PreloadConfig stm32f10x_tim.o + 0x080032e6 0x00000002 PAD + 0x080032e8 0x000000a4 Code RO 3419 i.TIM_OC2Init stm32f10x_tim.o + 0x0800338c 0x000000a0 Code RO 3424 i.TIM_OC3Init stm32f10x_tim.o + 0x0800342c 0x0000007c Code RO 3429 i.TIM_OC4Init stm32f10x_tim.o + 0x080034a8 0x0000001a Code RO 3431 i.TIM_OC4PreloadConfig stm32f10x_tim.o + 0x080034c2 0x00000014 Code RO 3432 i.TIM_OCStructInit stm32f10x_tim.o + 0x080034d6 0x00000004 Code RO 3446 i.TIM_SetCompare1 stm32f10x_tim.o + 0x080034da 0x00000004 Code RO 3447 i.TIM_SetCompare2 stm32f10x_tim.o + 0x080034de 0x00000004 Code RO 3448 i.TIM_SetCompare3 stm32f10x_tim.o + 0x080034e2 0x00000006 Code RO 3449 i.TIM_SetCompare4 stm32f10x_tim.o + 0x080034e8 0x000000a4 Code RO 3456 i.TIM_TimeBaseInit stm32f10x_tim.o + 0x0800358c 0x00000090 Code RO 895 i.TimePwm_init pwmout.o + 0x0800361c 0x00000040 Code RO 647 i.USART1_IRQHandler rs485.o + 0x0800365c 0x00000088 Code RO 955 i.USART2_IRQHandler usart.o + 0x080036e4 0x000000c8 Code RO 956 i.USART2_Init usart.o + 0x080037ac 0x00000018 Code RO 1382 i.USART_Cmd stm32f10x_usart.o + 0x080037c4 0x0000001a Code RO 1385 i.USART_GetFlagStatus stm32f10x_usart.o + 0x080037de 0x00000054 Code RO 1386 i.USART_GetITStatus stm32f10x_usart.o + 0x08003832 0x0000004a Code RO 1388 i.USART_ITConfig stm32f10x_usart.o + 0x0800387c 0x000000d8 Code RO 1389 i.USART_Init stm32f10x_usart.o + 0x08003954 0x0000000a Code RO 1396 i.USART_ReceiveData stm32f10x_usart.o + 0x0800395e 0x00000008 Code RO 1399 i.USART_SendData stm32f10x_usart.o + 0x08003966 0x00000004 Code RO 221 i.UsageFault_Handler stm32f10x_it.o + 0x0800396a 0x00000002 PAD + 0x0800396c 0x00000048 Code RO 421 i.W25QXX_Erase_Sector w25q128.o + 0x080039b4 0x00000050 Code RO 422 i.W25QXX_Init w25q128.o + 0x08003a04 0x00000050 Code RO 424 i.W25QXX_Read w25q128.o + 0x08003a54 0x00000048 Code RO 425 i.W25QXX_ReadID w25q128.o + 0x08003a9c 0x0000002c Code RO 426 i.W25QXX_ReadSR w25q128.o + 0x08003ac8 0x00000012 Code RO 428 i.W25QXX_Wait_Busy w25q128.o + 0x08003ada 0x00000002 PAD + 0x08003adc 0x000000b8 Code RO 429 i.W25QXX_Write w25q128.o + 0x08003b94 0x00000020 Code RO 431 i.W25QXX_Write_Enable w25q128.o + 0x08003bb4 0x00000046 Code RO 432 i.W25QXX_Write_NoCheck w25q128.o + 0x08003bfa 0x00000002 PAD + 0x08003bfc 0x00000054 Code RO 433 i.W25QXX_Write_Page w25q128.o + 0x08003c50 0x00000108 Code RO 551 i.Write_Init write.o + 0x08003d58 0x00000020 Code RO 6697 i.__0printf mc_w.l(printfa.o) + 0x08003d78 0x0000000e Code RO 6867 i.__scatterload_copy mc_w.l(handlers.o) + 0x08003d86 0x00000002 Code RO 6868 i.__scatterload_null mc_w.l(handlers.o) + 0x08003d88 0x0000000e Code RO 6869 i.__scatterload_zeroinit mc_w.l(handlers.o) + 0x08003d96 0x00000002 PAD + 0x08003d98 0x00000184 Code RO 6704 i._fp_digits mc_w.l(printfa.o) + 0x08003f1c 0x000006dc Code RO 6705 i._printf_core mc_w.l(printfa.o) + 0x080045f8 0x00000024 Code RO 6706 i._printf_post_padding mc_w.l(printfa.o) + 0x0800461c 0x0000002e Code RO 6707 i._printf_pre_padding mc_w.l(printfa.o) + 0x0800464a 0x00000018 Code RO 816 i.bufcut_Init bufcut.o + 0x08004662 0x00000022 Code RO 648 i.cmp_str rs485.o + 0x08004684 0x00000016 Code RO 649 i.cp_str_to_prev rs485.o + 0x0800469a 0x00000002 PAD + 0x0800469c 0x00000040 Code RO 924 i.delay_ms systick.o + 0x080046dc 0x00000048 Code RO 925 i.delay_us systick.o + 0x08004724 0x00000018 Code RO 926 i.delay_xms systick.o + 0x0800473c 0x00000034 Code RO 957 i.fputc usart.o + 0x08004770 0x0000001a Code RO 552 i.isAllZeros write.o + 0x0800478a 0x00000024 Code RO 850 i.iwdg_my_Init iwdg.o + 0x080047ae 0x00000092 Code RO 1 i.main main.o + 0x08004840 0x00000098 Code RO 6377 i.os_init myfreertos.o + 0x080048d8 0x00000050 Code RO 6378 i.process_hmi_btn_event myfreertos.o + 0x08004928 0x00000254 Code RO 6379 i.process_sensor_data myfreertos.o + 0x08004b7c 0x00000098 Code RO 5598 i.prvAddCurrentTaskToDelayedList tasks.o + 0x08004c14 0x000000b4 Code RO 5599 i.prvAddNewTaskToReadyList tasks.o + 0x08004cc8 0x00000064 Code RO 5916 i.prvCheckForValidListAndQueue timers.o + 0x08004d2c 0x00000064 Code RO 5600 i.prvCheckTasksWaitingTermination tasks.o + 0x08004d90 0x0000002a Code RO 6038 i.prvCopyDataFromQueue queue.o + 0x08004dba 0x0000007c Code RO 6039 i.prvCopyDataToQueue queue.o + 0x08004e36 0x00000012 Code RO 5601 i.prvDeleteTCB tasks.o + 0x08004e48 0x00000028 Code RO 5917 i.prvGetNextExpireTime timers.o + 0x08004e70 0x0000007c Code RO 6325 i.prvHeapInit heap_4.o + 0x08004eec 0x00000028 Code RO 5602 i.prvIdleTask tasks.o + 0x08004f14 0x0000002a Code RO 6041 i.prvInitialiseNewQueue queue.o + 0x08004f3e 0x00000002 PAD + 0x08004f40 0x000000c4 Code RO 5603 i.prvInitialiseNewTask tasks.o + 0x08005004 0x00000068 Code RO 5604 i.prvInitialiseTaskLists tasks.o + 0x0800506c 0x00000068 Code RO 6326 i.prvInsertBlockIntoFreeList heap_4.o + 0x080050d4 0x00000058 Code RO 5919 i.prvInsertTimerInActiveList timers.o + 0x0800512c 0x0000001a Code RO 6042 i.prvIsQueueEmpty queue.o + 0x08005146 0x0000001e Code RO 6043 i.prvIsQueueFull queue.o + 0x08005164 0x000000c8 Code RO 6044 i.prvNotifyQueueSetContainer queue.o + 0x0800522c 0x00000080 Code RO 5920 i.prvProcessExpiredTimer timers.o + 0x080052ac 0x0000010c Code RO 5921 i.prvProcessReceivedCommands timers.o + 0x080053b8 0x00000074 Code RO 5922 i.prvProcessTimerOrBlockTask timers.o + 0x0800542c 0x00000034 Code RO 5605 i.prvResetNextTaskUnblockTime tasks.o + 0x08005460 0x0000002c Code RO 5923 i.prvSampleTimeNow timers.o + 0x0800548c 0x000000bc Code RO 5924 i.prvSwitchTimerLists timers.o + 0x08005548 0x00000070 Code RO 6249 i.prvTaskExitError port.o + 0x080055b8 0x0000001a Code RO 5925 i.prvTimerTask timers.o + 0x080055d2 0x00000092 Code RO 6045 i.prvUnlockQueue queue.o + 0x08005664 0x00000154 Code RO 6327 i.pvPortMalloc heap_4.o + 0x080057b8 0x00000020 Code RO 5607 i.pvTaskIncrementMutexHeldCount tasks.o + 0x080057d8 0x00000024 Code RO 6250 i.pxPortInitialiseStack port.o + 0x080057fc 0x0000005c Code RO 6380 i.start_task myfreertos.o + 0x08005858 0x000000c0 Code RO 553 i.timelong_Compare write.o + 0x08005918 0x00000028 Code RO 5560 i.uxListRemove list.o + 0x08005940 0x0000001a Code RO 5561 i.vListInitialise list.o + 0x0800595a 0x00000006 Code RO 5562 i.vListInitialiseItem list.o + 0x08005960 0x00000034 Code RO 5563 i.vListInsert list.o + 0x08005994 0x00000018 Code RO 5564 i.vListInsertEnd list.o + 0x080059ac 0x00000088 Code RO 6252 i.vPortEnterCritical port.o + 0x08005a34 0x00000070 Code RO 6253 i.vPortExitCritical port.o + 0x08005aa4 0x000000b8 Code RO 6328 i.vPortFree heap_4.o + 0x08005b5c 0x00000020 Code RO 6254 i.vPortSetupTimerInterrupt port.o + 0x08005b7c 0x000000a0 Code RO 6255 i.vPortValidateInterruptPriority port.o + 0x08005c1c 0x0000002c Code RO 6049 i.vQueueAddToRegistry queue.o + 0x08005c48 0x0000004a Code RO 6052 i.vQueueWaitForMessageRestricted queue.o + 0x08005c92 0x00000002 PAD + 0x08005c94 0x00000074 Code RO 5613 i.vTaskDelay tasks.o + 0x08005d08 0x0000010c Code RO 5615 i.vTaskDelete tasks.o + 0x08005e14 0x0000000c Code RO 5617 i.vTaskMissedYield tasks.o + 0x08005e20 0x00000054 Code RO 5619 i.vTaskPlaceOnEventList tasks.o + 0x08005e74 0x0000005c Code RO 5620 i.vTaskPlaceOnEventListRestricted tasks.o + 0x08005ed0 0x000000b0 Code RO 5622 i.vTaskPriorityInherit tasks.o + 0x08005f80 0x0000004c Code RO 5625 i.vTaskSetTimeOutState tasks.o + 0x08005fcc 0x000000ac Code RO 5626 i.vTaskStartScheduler tasks.o + 0x08006078 0x00000010 Code RO 5628 i.vTaskSuspendAll tasks.o + 0x08006088 0x000000a8 Code RO 5629 i.vTaskSwitchContext tasks.o + 0x08006130 0x000000a0 Code RO 6256 i.xPortStartScheduler port.o + 0x080061d0 0x00000034 Code RO 6257 i.xPortSysTickHandler port.o + 0x08006204 0x0000009c Code RO 6057 i.xQueueGenericCreate queue.o + 0x080062a0 0x000001f0 Code RO 6058 i.xQueueGenericReceive queue.o + 0x08006490 0x000000d8 Code RO 6059 i.xQueueGenericReset queue.o + 0x08006568 0x000001ec Code RO 6060 i.xQueueGenericSend queue.o + 0x08006754 0x00000138 Code RO 6061 i.xQueueGenericSendFromISR queue.o + 0x0800688c 0x000000a0 Code RO 5630 i.xTaskCheckForTimeOut tasks.o + 0x0800692c 0x00000060 Code RO 5631 i.xTaskCreate tasks.o + 0x0800698c 0x00000020 Code RO 5635 i.xTaskGetSchedulerState tasks.o + 0x080069ac 0x0000000c Code RO 5636 i.xTaskGetTickCount tasks.o + 0x080069b8 0x00000160 Code RO 5638 i.xTaskIncrementTick tasks.o + 0x08006b18 0x000000d8 Code RO 5641 i.xTaskPriorityDisinherit tasks.o + 0x08006bf0 0x000000b4 Code RO 5642 i.xTaskRemoveFromEventList tasks.o + 0x08006ca4 0x00000120 Code RO 5644 i.xTaskResumeAll tasks.o + 0x08006dc4 0x00000074 Code RO 5929 i.xTimerCreateTimerTask timers.o + 0x08006e38 0x000000a0 Code RO 5930 i.xTimerGenericCommand timers.o + 0x08006ed8 0x00000200 Data RO 651 .constdata rs485.o + 0x080070d8 0x00000018 Data RO 751 .constdata rtc.o + 0x080070f0 0x00000020 Data RO 6865 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Base: 0x20000000, Size: 0x000039c0, Max: 0x00005000, ABSOLUTE, COMPRESSED[0x000000e0]) + Execution Region RW_IRAM1 (Base: 0x20000000, Size: 0x000049f0, Max: 0x00005000, ABSOLUTE, COMPRESSED[0x000000f4]) Base Addr Size Type Attr Idx E Section Name Object 0x20000000 0x00000014 Data RW 300 .data system_stm32f10x.o 0x20000014 0x00000002 Data RW 436 .data w25q128.o - 0x20000016 0x00000072 Data RW 555 .data write.o - 0x20000088 0x0000003c Data RW 650 .data rs485.o - 0x200000c4 0x00000004 Data RW 740 .data rtc.o - 0x200000c8 0x00000028 Data RW 858 .data pid.o - 0x200000f0 0x00000004 Data RW 915 .data systick.o - 0x200000f4 0x00000002 Data RW 947 .data usart.o - 0x200000f6 0x00000014 Data RW 1198 .data stm32f10x_rcc.o - 0x2000010a 0x00000002 PAD - 0x2000010c 0x0000003c Data RW 5635 .data tasks.o - 0x20000148 0x00000014 Data RW 5924 .data timers.o - 0x2000015c 0x0000000c Data RW 6246 .data port.o - 0x20000168 0x00000018 Data RW 6321 .data heap_4.o - 0x20000180 0x0000048c Data RW 6366 .data myfreertos.o - 0x2000060c 0x00000004 Data RW 6796 .data mc_w.l(stdout.o) - 0x20000610 0x000000d8 Zero RW 554 .bss write.o - 0x200006e8 0x00000094 Zero RW 648 .bss rs485.o - 0x2000077c 0x0000000a Zero RW 738 .bss rtc.o - 0x20000786 0x00000002 PAD - 0x20000788 0x0000004c Zero RW 857 .bss pid.o - 0x200007d4 0x000000ff Zero RW 946 .bss usart.o - 0x200008d3 0x00000001 PAD - 0x200008d4 0x000002e4 Zero RW 5634 .bss tasks.o - 0x20000bb8 0x00000028 Zero RW 5923 .bss timers.o - 0x20000be0 0x00000050 Zero RW 6060 .bss queue.o - 0x20000c30 0x00002800 Zero RW 6320 .bss heap_4.o - 0x20003430 0x0000018b Zero RW 6365 .bss myfreertos.o - 0x200035bb 0x00000005 PAD - 0x200035c0 0x00000400 Zero RW 985 STACK startup_stm32f10x_md.o + 0x20000016 0x0000007e Data RW 555 .data write.o + 0x20000094 0x00000060 Data RW 652 .data rs485.o + 0x200000f4 0x00000004 Data RW 752 .data rtc.o + 0x200000f8 0x00000028 Data RW 870 .data pid.o + 0x20000120 0x00000004 Data RW 927 .data systick.o + 0x20000124 0x00000002 Data RW 959 .data usart.o + 0x20000126 0x00000014 Data RW 1210 .data stm32f10x_rcc.o + 0x2000013a 0x00000002 PAD + 0x2000013c 0x0000003c Data RW 5647 .data tasks.o + 0x20000178 0x00000014 Data RW 5936 .data timers.o + 0x2000018c 0x0000000c Data RW 6258 .data port.o + 0x20000198 0x00000018 Data RW 6333 .data heap_4.o + 0x200001b0 0x0000048c Data RW 6382 .data myfreertos.o + 0x2000063c 0x00000004 Data RW 6832 .data mc_w.l(stdout.o) + 0x20000640 0x00001000 Zero RW 435 .bss w25q128.o + 0x20001640 0x000000d8 Zero RW 554 .bss write.o + 0x20001718 0x00000094 Zero RW 650 .bss rs485.o + 0x200017ac 0x0000000a Zero RW 750 .bss rtc.o + 0x200017b6 0x00000002 PAD + 0x200017b8 0x0000004c Zero RW 869 .bss pid.o + 0x20001804 0x000000ff Zero RW 958 .bss usart.o + 0x20001903 0x00000001 PAD + 0x20001904 0x000002e4 Zero RW 5646 .bss tasks.o + 0x20001be8 0x00000028 Zero RW 5935 .bss timers.o + 0x20001c10 0x00000050 Zero RW 6072 .bss queue.o + 0x20001c60 0x00002800 Zero RW 6332 .bss heap_4.o + 0x20004460 0x0000018b Zero RW 6381 .bss myfreertos.o + 0x200045eb 0x00000005 PAD + 0x200045f0 0x00000400 Zero RW 997 STACK startup_stm32f10x_md.o ============================================================================== @@ -3911,7 +3983,7 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name - 76 4 0 0 0 1816 bufcut.o + 76 4 0 0 0 1832 bufcut.o 0 0 0 0 0 32 core_cm3.o 0 0 0 0 0 11944 event_groups.o 752 176 0 24 10240 4043 heap_4.o @@ -3919,15 +3991,15 @@ Image component sizes 148 0 0 0 0 3238 list.o 146 0 0 0 0 269255 main.o 172 22 0 0 0 2189 misc.o - 1640 214 0 1164 395 5222 myfreertos.o + 2204 320 0 1164 395 8160 myfreertos.o 272 22 0 0 0 1861 myspi.o - 824 64 0 40 76 3066 pid.o + 900 72 0 40 76 3122 pid.o 950 320 0 12 0 10529 port.o 684 50 0 0 0 6304 pwm.o 272 12 0 0 0 1837 pwmout.o 2400 478 0 0 80 14537 queue.o 224 24 0 0 0 1717 relays.o - 2084 252 512 60 148 8152 rs485.o + 2376 276 512 96 148 11026 rs485.o 1132 62 24 4 10 7115 rtc.o 36 8 236 0 1024 880 startup_stm32f10x_md.o 84 16 0 0 0 3355 stm32f10x_bkp.o @@ -3944,12 +4016,12 @@ Image component sizes 252 24 0 4 0 2577 systick.o 3390 878 0 60 740 29519 tasks.o 1274 310 0 20 40 11211 timers.o - 388 38 0 2 255 2564 usart.o - 552 56 0 2 0 6078 w25q128.o - 882 74 0 114 216 5310 write.o + 388 38 0 2 255 2548 usart.o + 736 60 0 2 4096 6977 w25q128.o + 1362 110 0 126 216 5673 write.o ---------------------------------------------------------------------- - 21758 3384 804 1548 13232 463790 Object Totals + 23354 3562 804 1596 17328 470920 Object Totals 0 0 32 0 0 0 (incl. Generated) 18 0 0 2 8 0 (incl. Padding) @@ -3973,10 +4045,12 @@ Image component sizes 36 0 0 0 0 68 llsshr.o 32 0 0 0 0 68 llushr.o 36 0 0 0 0 68 memcpya.o + 36 0 0 0 0 108 memseta.o 2258 90 0 0 0 452 printfa.o 0 0 0 4 0 0 stdout.o 44 0 0 0 0 80 uidiv.o 98 0 0 0 0 92 uldiv.o + 48 0 0 0 0 68 cdcmple.o 48 0 0 0 0 68 cdrcmple.o 20 0 0 0 0 68 cfcmple.o 20 0 0 0 0 68 cfrcmple.o @@ -3990,6 +4064,7 @@ Image component sizes 34 0 0 0 0 76 dflti.o 26 0 0 0 0 76 dfltui.o 228 0 0 0 0 96 dmul.o + 38 0 0 0 0 68 f2d.o 176 0 0 0 0 140 fadd.o 124 0 0 0 0 88 fdiv.o 110 0 0 0 0 168 fepilogue.o @@ -3999,18 +4074,18 @@ Image component sizes 100 0 0 0 0 76 fmul.o ---------------------------------------------------------------------- - 4662 106 0 4 0 2828 Library Totals - 4 0 0 0 0 0 (incl. Padding) + 4786 106 0 4 0 3072 Library Totals + 6 0 0 0 0 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Name - 2706 106 0 4 0 964 mc_w.l - 1952 0 0 0 0 1864 mf_w.l + 2742 106 0 4 0 1072 mc_w.l + 2038 0 0 0 0 2000 mf_w.l ---------------------------------------------------------------------- - 4662 106 0 4 0 2828 Library Totals + 4786 106 0 4 0 3072 Library Totals ---------------------------------------------------------------------- @@ -4019,15 +4094,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 26420 3490 804 1552 13232 454526 Grand Totals - 26420 3490 804 224 13232 454526 ELF Image Totals (compressed) - 26420 3490 804 224 0 0 ROM Totals + 28140 3668 804 1600 17328 461276 Grand Totals + 28140 3668 804 244 17328 461276 ELF Image Totals (compressed) + 28140 3668 804 244 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 27224 ( 26.59kB) - Total RW Size (RW Data + ZI Data) 14784 ( 14.44kB) - Total ROM Size (Code + RO Data + RW Data) 27448 ( 26.80kB) + Total RO Size (Code + RO Data) 28944 ( 28.27kB) + Total RW Size (RW Data + ZI Data) 18928 ( 18.48kB) + Total ROM Size (Code + RO Data + RW Data) 29188 ( 28.50kB) ============================================================================== diff --git a/USER/control.uvguix.Administrator b/USER/control.uvguix.Administrator index 67e56d6..af7a1b0 100644 --- a/USER/control.uvguix.Administrator +++ b/USER/control.uvguix.Administrator @@ -95,7 +95,7 @@ 0 1327 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A00000002000000010000005E453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C6D796672656572746F735C6D796672656572746F732E63000000000C6D796672656572746F732E6300000000C5D4F200FFFFFFFF52453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF55453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C5049442E6300000000055049442E6300000000BECEA100FFFFFFFF55453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C5049442E6800000000055049442E6800000000F0A0A100FFFFFFFF58453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C52656C6179732E63000000000852656C6179732E6300000000BCA8E100FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C73746D3332663130782E68000000000B73746D3332663130782E68000000009CC1B600FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C72733438352E63000000000772733438352E6300000000F7B88600FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C77726974652E63000000000777726974652E6300000000D9ADC200FFFFFFFF6A453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C53544D3332463130785F46574C69625C7372635C73746D3332663130785F74696D2E63000000000F73746D3332663130785F74696D2E6300000000A5C2D700FFFFFFFF59453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C573235513132382E630000000009573235513132382E6300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F40000006600000080070000E0020000 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A00000006000000010000005E453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C6D796672656572746F735C6D796672656572746F732E63000000000C6D796672656572746F732E6300000000FFDC7800FFFFFFFF52453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF55453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C5049442E6300000000055049442E6300000000F0A0A100FFFFFFFF55453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C5049442E6800000000055049442E6800000000BCA8E100FFFFFFFF58453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C52656C6179732E63000000000852656C6179732E63000000009CC1B600FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C73746D3332663130782E68000000000B73746D3332663130782E6800000000F7B88600FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C72733438352E63000000000772733438352E6300000000D9ADC200FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C77726974652E63000000000777726974652E6300000000A5C2D700FFFFFFFF6A453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C53544D3332463130785F46574C69625C7372635C73746D3332663130785F74696D2E63000000000F73746D3332663130785F74696D2E6300000000B3A6BE00FFFFFFFF59453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C573235513132382E630000000009573235513132382E6300000000EAD6A300FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F40000006600000080070000E0020000 @@ -510,11 +510,11 @@ 0 32767 0 - 4096 + 32768 0 16 - 03000000E40200007D07000067030000 + 03000000E40200007D070000C5030000 16 @@ -1114,7 +1114,7 @@ 0 16 - 0300000066000000ED0000000E030000 + 0300000066000000ED000000B0020000 16 @@ -1130,7 +1130,7 @@ 0 32767 0 - 4096 + 32768 0 16 @@ -1150,11 +1150,11 @@ 0 32767 0 - 4096 + 32768 0 16 - 03000000E40200007D07000067030000 + 03000000E40200007D070000C5030000 16 @@ -1204,7 +1204,7 @@ 50000 50000 - 0 + 1 0 0 0 @@ -1214,11 +1214,11 @@ 0 16 - A3040000660000008D0500000C020000 + A10400007D0000008D05000098000000 16 - 70000000870000006001000050010000 + 0A0000000A0000006E0000006E000000 @@ -1683,7 +1683,7 @@ 3119 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F4000000F40000004F00000090050000DD0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A004000066000000900500003C020000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000C9020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F00000003E030000000000004F000000F0000000C90200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000002C02000090050000CE020000000000001502000090050000B702000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000C902000080070000CD02000001000000010000100400000001000000F2FDFFFF76010000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000004203000080070000F503000000000000CD02000080070000DE0300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F4000000F40000004F00000090050000DD0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A004000066000000900500003C020000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000C9020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F0000000E0020000000000004F000000F0000000C90200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000002C02000090050000CE020000000000001502000090050000B702000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000C902000080070000CD02000001000000010000100400000001000000F2FDFFFF76010000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000E402000080070000F503000000000000CD02000080070000DE0300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 @@ -1722,7 +1722,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1746,10 +1746,10 @@ 0 100 - 2 + 6 ..\myfreertos\myfreertos.c - 16 + 0 140 165 1 @@ -1758,18 +1758,18 @@ .\main.c - 46 - 4 - 30 + 38 + 13 + 32 1 0 ..\HARDWARE\PID.c - 40 + 64 111 - 141 + 124 1 0 @@ -1803,9 +1803,9 @@ ..\HARDWARE\rs485.c - 41 - 535 - 554 + 43 + 455 + 467 1 0 diff --git a/myfreertos/myfreertos.c b/myfreertos/myfreertos.c index 9d9253a..40e3c58 100644 --- a/myfreertos/myfreertos.c +++ b/myfreertos/myfreertos.c @@ -1,5 +1,7 @@ #include "myfreertos.h" +#define SENSOR_ADDRESS 0x02 + char pubTopic[512] = "/sys/hp8oQhMZJ67/Device1/thing/event/property/post"; // Publish topic char subTopic[512] = "/sys/hp8oQhMZJ67/Device1/thing/service/property/set"; // Subscribe topic @@ -25,6 +27,24 @@ void Sensor_Communication_task(void *pvParameters); void Host_Computer_Communication(void); +// 10seconds delay +#define SENSOR_DATA_REQUEST_PERIOD pdMS_TO_TICKS(5000) + +// 60seconds delay +#define SYNC_ENVIRONMENT_DATA_REQUEST_PERIOD pdMS_TO_TICKS(60000) + +/** + * sensor data request: 02 03 +*/ +void SensorDataRequestTask(void *pvParameters); + +/** + * sync environment data: EE B5 01 +*/ +void SyncEnvironmentDataRequestTask(void *pvParameters); + + + int isZeros(u8 arr[]); u8 RS485_RX_BUF_COPY[128] = {0}; u8 cnt_flag = 0, sub_flag = 0, pub_flag = 0; @@ -51,16 +71,24 @@ u8 Feed_Dog_Count = 0; // Feeding dog timing u8 now_stage = 1; // Current operational phase u16 tem, hum, red, blue, white; u8 hour, min; -u8 change_stage_rev1 = 0; -u8 change_stage_rev2 = 0; -u8 change_stage_rev3 = 0; -u8 rs485buf[8] = {0x02, 0x03, 0x00, 0x01, 0x00, 0x09, 0xD4, 0x3F}; // Sensor exchange data +u8 rs485buf[8] = {SENSOR_ADDRESS, 0x03, 0x00, 0x01, 0x00, 0x09, 0xD4, 0x3F}; // Sensor exchange data u16 sync_cnt = 0; // 同步环境控制参数的计数器,到0同步 int T = 0, H = 0, C = 0, G = 0, current_T = 0; extern u8 total[]; float Humidity = 0; float temperature = 0; + +// pages in hmi +#define page_index 43 +#define page_curve 45 +#define page_setting 46 +#define page_upgrade 23 +#define page_scan_wifi 48 +#define page_wifi_setting 49 +#define page_param_adjust 50 +#define page_status 51 + // u8 RS485_RX_BUF[64]; /********************* @@ -77,6 +105,13 @@ void os_init(void) (void *)NULL, (UBaseType_t)START_TASK_PRIO, (TaskHandle_t *)&StartTask_Handler); + + // 创建传感器数据请求任务 + xTaskCreate(SensorDataRequestTask, "SensorDataRequestTask", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY + 1, NULL); + + xTaskCreate(SyncEnvironmentDataRequestTask, "SyncEnvironmentDataRequestTask", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY + 2, NULL); + + vTaskStartScheduler(); } @@ -128,10 +163,33 @@ void start_task(void *pvParameters) // (TaskHandle_t* )&LEDTask_Handler); // if(handler4==pdPASS){printf("控灯任务创建成功\r\n");} // else{printf("控灯任务创建失败\r\n");} + + vTaskDelete(StartTask_Handler); // 删除开始任务 taskEXIT_CRITICAL(); // 退出临界区 } + +void SensorDataRequestTask(void *pvParameters) { + while (1) { + // 发送传感器数据请求的操作 + RS485_1_Send_Data_1(rs485buf, 8); + + vTaskDelay(SENSOR_DATA_REQUEST_PERIOD); + } +} + +void SyncEnvironmentDataRequestTask(void *pvParameters) { + while (1) { + // 发送传感器数据请求的操作 + RS485_1_Send_Data_3(); + + vTaskDelay(SYNC_ENVIRONMENT_DATA_REQUEST_PERIOD); + } +} + + +u8 temp[4] = {0xaa,0xbb,0xcc,0xdd}; void Sensor_Communication_task(void *pvParameters) { @@ -155,133 +213,99 @@ void Sensor_Communication_task(void *pvParameters) now_stage = timelong_Compare(); // // printf("%d %d\r\n",chour,cminute); Array(&now_stage, &hour, &min, &tem, &hum, &red, &blue, &white); // 更新对应阶段号的参数 - // printf("current stage: %d\r\n",now_stage); - RS485_1_Send_Data_1(rs485buf, 8); //(RS485_RX_CNT=0已被注释) - // printf("send finish\r\n"); - delay_xms(200); - // RX_BUF_Printf(128); - if (sync_cnt <= 0) - { - RS485_1_Send_Data_3(); - sync_cnt = 600; - } - else - { - sync_cnt--; - } - delay_xms(200); + printf("current stage: %d\r\n",now_stage); + + // RS485_1_Send_Data_1(rs485buf, 8); //(RS485_RX_CNT=0已被注释) + // delay_xms(50); + + + // // RX_BUF_Printf(128); + // if (sync_cnt <= 0) + // { + // RS485_1_Send_Data_3(); + // sync_cnt = 10; + // } + // else + // { + // sync_cnt--; + // } + delay_xms(50); // RX_BUF_Printf(128); bufcut_Init(RS485_RX_BUF_COPY, RS485_RX_BUF, 0, 128); RS485_RX_CNT = 0; - // HC595_Send_Byte(0x00); // close all - while ((isAllZeros(RS485_RX_BUF_COPY, 128) == 0)) + while (isAllZeros(RS485_RX_BUF_COPY, 128) == 0) { - - if (RS485_RX_BUF_COPY[0] == 0x02 && RS485_RX_BUF_COPY[1] == 0x03) // 判断是否校验成功 + if (RS485_RX_BUF_COPY[0] == 0x02 && RS485_RX_BUF_COPY[1] == 0x03 && CRC16_check(RS485_RX_BUF_COPY, 21) == 1) { - // -21 - // RS485_RX_BUF_COPY[3] = 0xFF; - // RS485_RX_BUF_COPY[4] = 0xB1; - - T = RS485_RX_BUF_COPY[3]; - T = T << 8 | RS485_RX_BUF_COPY[4]; - // 支持负数温度 - if (T & 0x8000) - { - T = ((~T + 1) & 0xFFFF); - } - - H = RS485_RX_BUF_COPY[5]; - H = H << 8 | RS485_RX_BUF_COPY[6]; + // receive message from sensor - C = RS485_RX_BUF_COPY[19]; - C = C << 8 | RS485_RX_BUF_COPY[20]; - - /*GPIO1->报警铃 GPIO3->加热棒 GPIO4—>新风风扇 GPIO5->加湿器 GPIO6->压缩机 */ - - if ((T < (tem - 20) || T > (tem + 20) || H < (hum - 100) || H > (hum + 100)) && (tick > 600)) // 温度偏差2℃报警,湿度偏差10报警 - { - HC595_Send_Byte(gpio_state |= 0x01); // 打开报警铃 GPIO1->PB1 |=0000 0001 0x01 - ALARM = 1; + u8 temp_data[23] = {0}; + for (int i=0;i<23;i++) { + temp_data[i] = RS485_RX_BUF_COPY[i]; } - else - { - HC595_Send_Byte(gpio_state &= 0xFE); // 关闭报警铃 &=1111 1110 0xFE - ALARM = 0; - } - if (T < 600 && T > -400) - { - diff = current_T - T; - if (diff < 0) - diff = -diff; - if (diff < 3 || current_T == 0) // 最近两次温差相差0.3℃,消除传感器感应出错的影响 - { - pid.set_tem = tem / 10.0; - pid.now_tem = T / 10.0; - PID_Calc(); - // send sign to 485 - // out: 0-200 - - // num=(((pid.OUT*400)/pid.pwmcycle)-1);//请问这个pid.OUT与pwm占空比的值是如何换算过来的 - // TIM_SetCompare3(TIM3,num); - // TIM_SetCompare3(TIM3,0.845*num); - // printf("%d\r\n",num); - // 0-200对应0-100%,如果pid.out=50,占空比就是25%,//num=50*400/200=100,100/400=25% - // printf("%d ,%d ,%d ,%d ,%f ,%f ,%f ,%f ,%f ,%f ,%f ,%.3f\r\n",T,H,C,num,(pid.set_tem*10),pid.Kp,ki,kd,pid.Pout,pid.Iout,pid.Dout,num/399.0); - current_T = T; - } - } - - if (H > (hum + 50)) // 湿度高于设定值5,打开新风风扇 GPIO4->PD1 - { - HC595_Send_Byte(gpio_state |= 0x08); // 打开新风风扇 |=0000 1000 0x08 - HC595_Send_Byte(gpio_state &= 0xEF); // 关闭加湿器 &=1110 1111 0xEF - humidity_flag = 1; // 除湿 - } - if (H < (hum - 50)) // 湿度低于设定值5,打开加湿器 GPIO5->PD0 - { - HC595_Send_Byte(gpio_state |= 0x10); // 启动加湿器 |=0001 0000 0x10 - HC595_Send_Byte(gpio_state &= 0xF7); // 关闭风扇 &=1111 0111 0xF7 - humidity_flag = 2; - } - - if (humidity_flag == 1 && H <= hum) - { - HC595_Send_Byte(gpio_state &= 0xE7); // 关闭风扇 关闭加湿器 &=1110 0111 0xE7 - humidity_flag = 0; - } - - if (humidity_flag == 2 && H >= hum) - { - HC595_Send_Byte(gpio_state &= 0xE7); // 关闭加湿器 关闭风扇 &=1110 0111 0xE7 - humidity_flag = 0; - } - RS485_1_Send_Data_2(); // 上传参数 - delay_xms(200); + process_sensor_data(temp_data); RX_BUF_Transfer(0, 23); } - + else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB6 && RS485_RX_BUF_COPY[2] == 0x01) + { + // batch update params in a stage + // total length: 22 + if (CRC16_check(RS485_RX_BUF_COPY, 16) == 1) { + Batch_synchronization(&n, RS485_RX_BUF_COPY); + Array(&now_stage, &hour, &min, &tem, &hum, &red, &blue, &white); // update param correspond to current stage + } + RX_BUF_Transfer(0, 22); + } else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB6 && RS485_RX_BUF_COPY[2] == 0x03) { - Analysis(&n, &i, RS485_RX_BUF_COPY); - Array(&now_stage, &hour, &min, &tem, &hum, &red, &blue, &white); // 更新对应阶段号的参数 - Write_Init(); - RX_BUF_Transfer(0, 11); + // update single environment param + // total length: 13 + if (CRC16_check(RS485_RX_BUF_COPY, 7) == 1) { + Analysis(&n, &i, RS485_RX_BUF_COPY); + Array(&now_stage, &hour, &min, &tem, &hum, &red, &blue, &white); // update param correspond to current stage + Write_Init(); + } + RX_BUF_Transfer(0, 13); } else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB6 && RS485_RX_BUF_COPY[2] == 0x04) { - change_stage_rev1 = RS485_RX_BUF_COPY[3]; - RTC_synchronization_ins(2023, 9, 1, 0, 00, 00); - now_stage = change_stage_rev1; - store_stage = change_stage_rev1; - Write_Init(); - RX_BUF_Transfer(0, 8); + // change running stage + // total length: 10 + if (CRC16_check(RS485_RX_BUF_COPY, 4) == 1) { + int target_stage = RS485_RX_BUF_COPY[3]; + RTC_synchronization_ins(2023, 9, 1, 0, 00, 00); + now_stage = target_stage; + store_stage = target_stage; + Write_Init(); + } + RX_BUF_Transfer(0, 10); } - else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB6 && RS485_RX_BUF_COPY[2] == 0x01) + else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB6 && RS485_RX_BUF_COPY[2] == 0x05) { - Batch_synchronization(&n, RS485_RX_BUF_COPY); - Array(&now_stage, &hour, &min, &tem, &hum, &red, &blue, &white); // 更新对应阶段号的参数 - RX_BUF_Transfer(0, 20); + // change pid params + // total length: 12 + if (CRC16_check(RS485_RX_BUF_COPY, 6) == 1) { + int param_index = RS485_RX_BUF_COPY[3]; + switch(param_index) { + case 0x01: + { + pid.Kp = RS485_RX_BUF_COPY[4] * 256.0 + RS485_RX_BUF_COPY[5]; + break; + } + case 0x02: + { + pid.Ki = (RS485_RX_BUF_COPY[4] * 256.0 + RS485_RX_BUF_COPY[5]) / 100000.0; + break; + } + case 0x03: + { + pid.Kd = RS485_RX_BUF_COPY[4] * 256.0 + RS485_RX_BUF_COPY[5]; + break; + } + } + Write_Init(); + } + RX_BUF_Transfer(0, 12); } else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB1 && RS485_RX_BUF_COPY[2] == 0x11 && RS485_RX_BUF_COPY[15] == 0xFF && RS485_RX_BUF[16] == 0xFF) { @@ -293,6 +317,8 @@ void Sensor_Communication_task(void *pvParameters) } else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB1 && RS485_RX_BUF_COPY[2] == 0x11 && RS485_RX_BUF_COPY[12] == 0xFF && RS485_RX_BUF[13] == 0xFF) { + // btn down or up + process_hmi_btn_event(RS485_RX_BUF_COPY[3] * 256 + RS485_RX_BUF_COPY[4], RS485_RX_BUF_COPY[5] * 256 + RS485_RX_BUF_COPY[6], RS485_RX_BUF_COPY[9]); RX_BUF_Transfer(0, 14); } else if (RS485_RX_BUF_COPY[0] == 0xEE && RS485_RX_BUF_COPY[1] == 0xB1 && RS485_RX_BUF_COPY[2] == 0x01 && RS485_RX_BUF_COPY[7] == 0xFF && RS485_RX_BUF_COPY[8] == 0xFF) @@ -302,8 +328,7 @@ void Sensor_Communication_task(void *pvParameters) else { int ZERO_Count = 0; - // if()与while()的顺序不能变 - if ((RS485_RX_BUF_COPY[0] != 0x00)) // 不为0,处理掉 + if ((RS485_RX_BUF_COPY[0] != 0x00)) { RX_BUF_Transfer(0, 1); } @@ -316,6 +341,10 @@ void Sensor_Communication_task(void *pvParameters) } } + + + + if (red <= 1000 && blue <= 1000) { @@ -327,6 +356,108 @@ void Sensor_Communication_task(void *pvParameters) } } +/** + * process sensor data +*/ +void process_sensor_data(u8 *data) { + T = data[3]; + T = T << 8 | data[4]; + // Negative temperature treatment + if (T & 0x8000) + { + T = ((~T + 1) & 0xFFFF); + } + + H = data[5]; + H = H << 8 | data[6]; + + C = data[19]; + C = C << 8 | data[20]; + + /*GPIO1->报警铃 GPIO3->加热棒 GPIO4—>新风风扇 GPIO5->加湿器 GPIO6->压缩机 */ + + if ((T < (tem - 20) || T > (tem + 20) || H < (hum - 100) || H > (hum + 100)) && (tick > 600)) // 温度偏差2℃报警,湿度偏差10报警 + { + HC595_Send_Byte(gpio_state |= 0x01); // 打开报警铃 GPIO1->PB1 |=0000 0001 0x01 + ALARM = 1; + } + else + { + HC595_Send_Byte(gpio_state &= 0xFE); // 关闭报警铃 &=1111 1110 0xFE + ALARM = 0; + } + if (T < 600 && T > -400) + { + diff = current_T - T; + if (diff < 0) + diff = -diff; + if (diff < 3 || current_T == 0) // 最近两次温差相差0.3℃,消除传感器感应出错的影响 + { + pid.set_tem = tem / 10.0; + pid.now_tem = T / 10.0; + PID_Calc(); + // send sign to 485 + // out: 0-200 + + // num=(((pid.OUT*400)/pid.pwmcycle)-1);//请问这个pid.OUT与pwm占空比的值是如何换算过来的 + // TIM_SetCompare3(TIM3,num); + // TIM_SetCompare3(TIM3,0.845*num); + // printf("%d\r\n",num); + // 0-200对应0-100%,如果pid.out=50,占空比就是25%,//num=50*400/200=100,100/400=25% + // printf("%d ,%d ,%d ,%d ,%f ,%f ,%f ,%f ,%f ,%f ,%f ,%.3f\r\n",T,H,C,num,(pid.set_tem*10),pid.Kp,ki,kd,pid.Pout,pid.Iout,pid.Dout,num/399.0); + current_T = T; + } + } + + if (H > (hum + 50)) // 湿度高于设定值5,打开新风风扇 GPIO4->PD1 + { + HC595_Send_Byte(gpio_state |= 0x08); // 打开新风风扇 |=0000 1000 0x08 + HC595_Send_Byte(gpio_state &= 0xEF); // 关闭加湿器 &=1110 1111 0xEF + humidity_flag = 1; // 除湿 + } + if (H < (hum - 50)) // 湿度低于设定值5,打开加湿器 GPIO5->PD0 + { + HC595_Send_Byte(gpio_state |= 0x10); // 启动加湿器 |=0001 0000 0x10 + HC595_Send_Byte(gpio_state &= 0xF7); // 关闭风扇 &=1111 0111 0xF7 + humidity_flag = 2; + } + + if (humidity_flag == 1 && H <= hum) + { + HC595_Send_Byte(gpio_state &= 0xE7); // 关闭风扇 关闭加湿器 &=1110 0111 0xE7 + humidity_flag = 0; + } + + if (humidity_flag == 2 && H >= hum) + { + HC595_Send_Byte(gpio_state &= 0xE7); // 关闭加湿器 关闭风扇 &=1110 0111 0xE7 + humidity_flag = 0; + } + + RS485_1_Send_Data_2(); // 上传参数 + delay_xms(200); +} + +/** + * hmi event process +*/ +void process_hmi_btn_event(u8 page, u8 btn_index, u8 value) { + switch(page) { + case page_param_adjust: + { + // change current stage + if (btn_index >= 45 && btn_index <= 50 && value == 0x01) { + int target_stage = btn_index - 44; + RTC_synchronization_ins(2023, 9, 1, 0, 00, 00); + now_stage = target_stage; + store_stage = target_stage; + Write_Init(); + } + break; + } + } +} + // void Host_Computer_Communication(void) //{ // if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB6) diff --git a/myfreertos/myfreertos.h b/myfreertos/myfreertos.h index 86443fd..017ce04 100644 --- a/myfreertos/myfreertos.h +++ b/myfreertos/myfreertos.h @@ -24,6 +24,8 @@ #include "mqtt_api.h" void os_init(void); +void process_sensor_data(u8 *data); +void process_hmi_btn_event(u8 page_index, u8 btn_index, u8 value); #endif