Pārlūkot izejas kodu

归档计量1-3键,支持掉电保存计量数据

zzw 7 mēneši atpakaļ
vecāks
revīzija
f70c4e9551
100 mainītis faili ar 0 papildinājumiem un 303895 dzēšanām
  1. 0 27
      Projects/macro/switch_ota_app_V1.0.1/CRC.c
  2. 0 7
      Projects/macro/switch_ota_app_V1.0.1/CRC.h
  3. 0 196
      Projects/macro/switch_ota_app_V1.0.1/EEPROM.c
  4. 0 29
      Projects/macro/switch_ota_app_V1.0.1/EEPROM.h
  5. 0 154
      Projects/macro/switch_ota_app_V1.0.1/GLOBAL.c
  6. 0 169
      Projects/macro/switch_ota_app_V1.0.1/GLOBAL.h
  7. 0 51
      Projects/macro/switch_ota_app_V1.0.1/Listings/CRC.lst
  8. 0 243
      Projects/macro/switch_ota_app_V1.0.1/Listings/EEPROM.lst
  9. 0 182
      Projects/macro/switch_ota_app_V1.0.1/Listings/GLOBAL.lst
  10. 0 4851
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY.m51
  11. 0 5468
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP.m51
  12. 0 5469
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V101.m51
  13. 0 5420
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V101_.m51
  14. 0 5472
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V102.m51
  15. 0 5469
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V102_test.m51
  16. 0 5426
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V103.m51
  17. 0 5426
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V104.m51
  18. 0 5239
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY.m51
  19. 0 5468
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP.m51
  20. 0 5469
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V101.m51
  21. 0 5421
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V101_.m51
  22. 0 5453
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V102.m51
  23. 0 5469
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V102_test.m51
  24. 0 5453
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V103.m51
  25. 0 5477
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V104.m51
  26. 0 4851
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY.m51
  27. 0 5468
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP.m51
  28. 0 5469
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V101.m51
  29. 0 5472
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V102.m51
  30. 0 5469
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V102_test.m51
  31. 0 5477
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V103.m51
  32. 0 5888
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V104.m51
  33. 0 5657
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY.m51
  34. 0 5852
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP.m51
  35. 0 5853
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_DEBUG.m51
  36. 0 5853
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V1.0.m51
  37. 0 5420
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V100_test.m51
  38. 0 5853
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V101.m51
  39. 0 5861
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V102.m51
  40. 0 5853
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V102_test.m51
  41. 0 5861
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V103.m51
  42. 0 6007
      Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V104.m51
  43. 0 281
      Projects/macro/switch_ota_app_V1.0.1/Listings/STARTUP_TENX52.lst
  44. 0 156
      Projects/macro/switch_ota_app_V1.0.1/Listings/TM52F1386_bsp.lst
  45. 0 1233
      Projects/macro/switch_ota_app_V1.0.1/Listings/gpio_ctrl.lst
  46. 0 367
      Projects/macro/switch_ota_app_V1.0.1/Listings/iap.lst
  47. 0 1094
      Projects/macro/switch_ota_app_V1.0.1/Listings/main.lst
  48. 0 4851
      Projects/macro/switch_ota_app_V1.0.1/Listings/main.m51
  49. 0 650
      Projects/macro/switch_ota_app_V1.0.1/Listings/mcu_api.lst
  50. 0 2560
      Projects/macro/switch_ota_app_V1.0.1/Listings/protocol.lst
  51. 0 62
      Projects/macro/switch_ota_app_V1.0.1/Listings/sTimeout.lst
  52. 0 802
      Projects/macro/switch_ota_app_V1.0.1/Listings/system.lst
  53. 0 97
      Projects/macro/switch_ota_app_V1.0.1/Listings/time2.lst
  54. 0 210
      Projects/macro/switch_ota_app_V1.0.1/Listings/uart.lst
  55. 0 235
      Projects/macro/switch_ota_app_V1.0.1/Listings/uart2.lst
  56. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/CRC.obj
  57. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/EEPROM.obj
  58. 0 2
      Projects/macro/switch_ota_app_V1.0.1/Objects/ExtDll.iex
  59. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/GLOBAL.obj
  60. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY
  61. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.bin
  62. 0 136
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.build_log.htm
  63. 0 1316
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.hex
  64. 0 16
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.lnp
  65. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.log
  66. 0 4386
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx
  67. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx.bin
  68. 0 32769
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx.crc
  69. 0 18402
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx.crc16_WriterVerify
  70. 0 32801
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx.crc2
  71. 0 38
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_.tin
  72. 0 2
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_.tin.bak
  73. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP
  74. 0 1485
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.hex
  75. 0 18
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.lnp
  76. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.log
  77. 0 4386
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.tenx
  78. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.tenx.bin
  79. 0 34
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_.tin
  80. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_.tin.bak
  81. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_Driver.log
  82. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101
  83. 0 1486
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.hex
  84. 0 18
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.lnp
  85. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.log
  86. 0 4386
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.tenx
  87. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.tenx.bin
  88. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_
  89. 0 1472
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.hex
  90. 0 18
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.lnp
  91. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.log
  92. 0 4386
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.tenx
  93. BIN
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.tenx.bin
  94. 0 34
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.tin
  95. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.tin.bak
  96. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_Driver.log
  97. 0 34
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101__.tin
  98. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101__.tin.bak
  99. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101__Driver.log
  100. 0 0
      Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101__bin.bin

+ 0 - 27
Projects/macro/switch_ota_app_V1.0.1/CRC.c

@@ -1,27 +0,0 @@
-#include <REGtenxTM52F1386.H>
-#include <intrins.h>
-
-/*******************************************************************
-** 函数名称: crc_calcu
-** 函数描述: 数据CRC校验
-** 输入参数: 无
-** 输出参数: ret   CRC的校验值
-*******************************************************************/
-unsigned int crc_calcu(unsigned char *p,unsigned int len)
-{
-	unsigned int ret=0;
-	unsigned int i=0;
-	CRCIN = 0;
-	CRCDH = 0xff;
-	CRCDL = 0xff;
-	for(i = 0;i<len;i++)
-	{
-		CRCIN = p[i];   //将要检验的数据送入到CRCIN寄存器里
-	}
-
-	ret = CRCDH;
-	ret = ret<<8;
-	ret = ret|CRCDL;
-	return ret;    //返回校验值
-}
-

+ 0 - 7
Projects/macro/switch_ota_app_V1.0.1/CRC.h

@@ -1,7 +0,0 @@
-#ifndef CRC_H
-#define CRC_H
-
-unsigned int crc_calcu(unsigned char *p,unsigned int len);
-
-
-#endif

+ 0 - 196
Projects/macro/switch_ota_app_V1.0.1/EEPROM.c

@@ -1,196 +0,0 @@
-/***********************************************************************************************************
-  显示效果:					
-  用户通过仿真,能够对EEPROM的特定区域地址内容进行读写操作,并验证数据操作正确与否。			
-  eeprom写数据
-  连续写字节不能太多
-  写单个字节的时间根据写的内容的前后不同,时间不等。	以及电源电压相关
-  理论上随着写的次数增加,写的时间会相应增加,建议以单个字节1ms-2ms的时间为基准
-***********************************************************************************************************/
-#include <REGtenxTM52F1386.h>
-#include "TM52F1386_bsp.h"
-#include <intrins.h>
-#include "EEPROM.h"
-
-
-#define		IAPTE_0P8_MS	AUX2=(AUX2&0xf9)|0x02
-#define		IAPTE_3P2_MS	AUX2=(AUX2&0xf9)|0x04
-#define		IAPTE_6P4_MS	AUX2=(AUX2&0xf9)|0x06
-#define		IAPTE_DISABLE	AUX2=(AUX2&0xf9)
-
-// 设置最大20字节存参数
-unsigned char xdata eeprom_address_write[30]  _at_   0XDC00;             //eeprom指定地址,第一页用于状态数据+参数配置
-unsigned char code eeprom_address_read[30]  _at_   0XDC00;             //eeprom指定地址
-
-// 设置最大20字节存参数
-unsigned char xdata eeprom_address_write_backup[30]  _at_   0XDE00;             //eeprom指定地址,第二页,参数配置备份区,第一页读取失败从第二页读取参数备份
-unsigned char code eeprom_address_read_backup[30]  _at_   0XDE00;             //eeprom指定地址
-
-/*
-参数数据(10,实际从1开始,0字节保留):0-9:开机状态(通电勿扰)全局设置1字节-1,三个继电器开机状态3个字节-2-3-4,背光等级1个字节-5 , 开关、场景设置-6-7-8,人感1字节-9
-
-实时数据(6):10:19:当前继电器状态3个字节-10-11-12,雷达状态1字节-13,点动倒计时未结束1个字节-15-16-17,ota状态1字节-19(最后一字节)
-
-点动开关参数(9):,点动开关2个字节(使能1,时间2)-20-21-22,-23-24-25,-26-27-28
-*/
-unsigned char write_mileage[30];//0:人感开关,1:开机状态全局开关,2:按键1默认状态,3:按键2默认状态,4:按键3默认状态
-unsigned char read_mileage[30];
-
-unsigned char write_mileage_backup[30];//0:人感开关,1:开机状态全局开关,2:按键1默认状态,3:按键2默认状态,4:按键3默认状态
-unsigned char read_mileage_backup[30];
-//unsigned char II=0;
-/**********************************************************************************************************
-** 函数名称: iap_eeprom_write
-** 函数描述: iap_EEPROM写数据配置函数  
-** 输入参数: addr:存储地址,范围0~127
-             buf:数据的首地址
-			len:数据长度(addr+len不要超过128)
-** 输出参数: 无 
-**********************************************************************************************************/
-void iap_eeprom_write(unsigned char addr, unsigned char *buf, unsigned char len)       
-{
-	unsigned char i=0,temp_ea=0,temp_lvrpd=0;
-	temp_ea = EA;
-	EA = 0;
-	temp_lvrpd = LVRCON & 0x10;  // LVR的状态位  
-	LVRCON = (LVRCON &~ 0x10) | (1 << 4); //关闭LVR功能
-
- 	IAPWE_SFR=0XE2;    //使能iap
- 	IAPWE_SFR=0XBA;    //使能iap	  
-	eeprom_address_write[0] = 0x00;//是所在页的整页都擦除
-	bsp_delay_ms(5);
-	
- 	IAPWE_SFR=0XE2;    //使能iap
- 	IAPWE_SFR=0X4C;    //使能iap
-	
-	for(i = 0; i<len; i++) {
-		IAPTE_6P4_MS;        //设置IAP看门狗复位时间
-		eeprom_address_write[addr + i] = *buf;//
-		buf++;
-	}
-	
-	LVRCON = (LVRCON &~ 0x10) | (temp_lvrpd << 4); //还原LVR
-  IAPWE_SFR = 0x00;    //关闭IAP
-	IAPTE_DISABLE;
-	EA = temp_ea;
-}
-
-/**********************************************************************************************************
-** 函数名称: iap_eeprom_write_backup
-** 函数描述: iap_EEPROM写数据配置函数  
-** 输入参数: addr:存储地址,范围0~127
-             buf:数据的首地址
-			len:数据长度(addr+len不要超过128)
-** 输出参数: 无 
-**********************************************************************************************************/
-void iap_eeprom_write_backup(unsigned char addr, unsigned char *buf, unsigned char len)       
-{
-	unsigned char i=0,temp_ea=0,temp_lvrpd=0;
-	temp_ea = EA;
-	EA = 0;
-	temp_lvrpd = LVRCON & 0x10;  // LVR的状态位  
-	LVRCON = (LVRCON &~ 0x10) | (1 << 4); //关闭LVR功能
-
- 	IAPWE_SFR=0XE2;    //使能iap
- 	IAPWE_SFR=0XBA;    //使能iap	  
-	eeprom_address_write_backup[0] = 0x00;//是所在页的整页都擦除
-	bsp_delay_ms(5);
-	
- 	IAPWE_SFR=0XE2;    //使能iap
- 	IAPWE_SFR=0X4C;    //使能iap
-	
-	for(i = 0; i<len; i++) {
-		IAPTE_6P4_MS;        //设置IAP看门狗复位时间
-		eeprom_address_write_backup[addr + i] = *buf;//
-		buf++;
-	}
-	
-	LVRCON = (LVRCON &~ 0x10) | (temp_lvrpd << 4); //还原LVR
-  IAPWE_SFR = 0x00;    //关闭IAP
-	IAPTE_DISABLE;
-	EA = temp_ea;
-}
-/**********************************************************************************************************
-** 函数名称: iap_eeprom_read
-** 函数描述: iap_EEPROM读数据配置函数  
-** 输入参数: addr:存储地址,范围0~127
-             buf:数据的首地址
-			len:数据长度(addr+len不要超过128)
-** 输出参数: 无 
-**********************************************************************************************************/
-void iap_eeprom_read(unsigned char addr, unsigned char *buf, unsigned char len)    //eeprom读
-{
- unsigned char i=0,temp_ea=0,temp_lvrpd=0;
-	
-	temp_ea = EA;
-	EA = 0; 
-	for(i = 0;i<len;i++) {
-		*buf = eeprom_address_read[addr+i];
-		buf++;
-	}	
-	EA = temp_ea;
-}
-
-/**********************************************************************************************************
-** 函数名称: iap_eeprom_read_backup
-** 函数描述: iap_EEPROM读数据配置函数  
-** 输入参数: addr:存储地址,范围0~127
-             buf:数据的首地址
-			len:数据长度(addr+len不要超过128)
-** 输出参数: 无 
-**********************************************************************************************************/
-void iap_eeprom_read_backup(unsigned char addr, unsigned char *buf, unsigned char len)    //eeprom读
-{
- unsigned char i=0,temp_ea=0,temp_lvrpd=0;
-	
-	temp_ea = EA;
-	EA = 0; 
-	for(i = 0;i<len;i++) {
-		*buf = eeprom_address_read_backup[addr+i];
-		buf++;
-	}	
-	EA = temp_ea;
-}
-
-
-/*
-void test(void)
-{
-	
-	bsp_clock_init();                    // 系统快钟18.432 div 2 =  9.216Mhz
-	gpio_init();
-	write_mileage[0] = 0x22;
-	write_mileage[1] = 0x33;
-	write_mileage[2] = 0x44;
-	write_mileage[3] = 0x55;
-  iap_eeprom_write(0,write_mileage,4); //写四个字节(0x22 0x33 0x44 0x55)      
-	bsp_delay_ms(50);                    
-
-	read_mileage[0] = 0;
-	read_mileage[1] = 0;
-	read_mileage[2] = 0;
-	read_mileage[3] = 0;
-	iap_eeprom_read(0,read_mileage,4);  //读四个字节与之前写的四个字节是否一致(0x22 0x33 0x44 0x55)
-	
-	write_mileage[0] = 0x66;
-	write_mileage[1] = 0x77;
-	write_mileage[2] = 0x88;
-	write_mileage[3] = 0x99;
-  iap_eeprom_write(0,write_mileage,4); //写四个字节(0x66 0x77 0x88 0x99) 	                                     
-	bsp_delay_ms(50);                     
-
-	read_mileage[0] = 0;
-	read_mileage[1] = 0;
-	read_mileage[2] = 0;
-	read_mileage[3] = 0;
-	iap_eeprom_read(0,read_mileage,4);  //读四个字节与之前写的四个字节是否一致(0x66 0x77 0x88 0x99)
-
-  while(1) 
-	{
-		if (0x66 == read_mileage[0]) {
-			LED1 = 0;
-		} 
-		else {
-			LED1 = 1;
-		} 
-	}
-}*/

+ 0 - 29
Projects/macro/switch_ota_app_V1.0.1/EEPROM.h

@@ -1,29 +0,0 @@
-/*******************************************************************************
-*
-*   scheduler 
-*   Soft version:   switch V1.00
-*   File Name:      time2.h
-*   Author   :      zzw (zhangzw_3@163.com)
-*   creation date:  2024-01-17
-*	module description: time2 1ms
-*   Copyright (C) reserve
-*
-********************************************************************************/
-#if !defined(__EEPROM_H__)
-#define __EEPROM_H__
-
-
-extern unsigned char write_mileage[30];//最大写入30个有效字节
-extern unsigned char read_mileage[30];
-
-extern unsigned char write_mileage_backup[30];//最大写入30个有效字节
-extern unsigned char read_mileage_backup[30];
-
-void iap_eeprom_write(unsigned char addr, unsigned char *buf, unsigned char len);
-void iap_eeprom_read(unsigned char addr, unsigned char *buf, unsigned char len);
-
-void iap_eeprom_write_backup(unsigned char addr, unsigned char *buf, unsigned char len);
-void iap_eeprom_read_backup(unsigned char addr, unsigned char *buf, unsigned char len);
-
-#endif
-/* EOF */

+ 0 - 154
Projects/macro/switch_ota_app_V1.0.1/GLOBAL.c

@@ -1,154 +0,0 @@
-/*******************************************************************************
-*
-*   SW AS 
-*   Soft version:   
-*   File Name:      GLOBAL.c
-*   Author   :      zzw (zhangzw_3@163.com)
-*   creation date:  2022-07-20
-*   module description:定义系统中的全局变量 
-*   Copyright (C) 
-*
-********************************************************************************/
-#include "GLOBAL.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-///////////////////////////////////////////
-volatile            DBit _BitParament0;
-volatile word   	  tickcount;      /* Timer tick count   		*/
-volatile byte 	    sysTickfor10ms;	/* 10millisecond timer 		*/
-volatile byte 		  sysTickfor100ms;/* 100millisecond timer 	*/
-volatile byte 		  sysTickfor1000ms;/* 100millisecond timer 	*/
-
-SWParameters   switchState;//面板状态
-
-unsigned char  gRelayOnOff=0;//继电器状态
-byte gLedState = 0;//按键灯状态
-byte gRelayState = 0; // 4bit 继电器值
-
-byte ZG_Joining;//模块进入配网模式, 指示灯快速闪烁10秒
-WORD ZG_JoinCounter;//模块进入配网计数器,倒计时开始
-byte ZG_Joining_S;//模块进入配网模式
-
-
-byte  Brightflag;  //强光标志位,1:白天,0,夜晚
-byte BrightPWMH=6;           //强光灯强光PWM占空比
-byte NightPWMH=1;           //暗光PWM占空比
-byte Light_Intensity;//光强度
-//byte mKeyLedWeakLight;//背光最大亮度值,根据光感设置
-byte mBLedWeakLight;//背光最大亮度值,根据光感设置
-
-unsigned int gRadarKeepTimer=0;//有人存在时,LED灯等相关动作保持时间
-byte gRadarCheckNull;//雷达监测,1为无人,0为有人
-
-byte shockCounter;//震动计数器
-byte shockStart;//按键按下震动触发
-
-byte appControlLedEnable = 0; // app控制背光灯点亮使能位,0:忽略,1:强制点亮10秒
-
-
-
-byte burn_in_test_start=0;//产测标志位
-u32 burn_in_test_counter=0;//产测计数器
-u32 burn_in_test_timeout=0;//产测开机30秒内收到信标才有效
-
-
-u32 IAPUpdateFlag = 0; 
-u32 OTA_Reciv_Datalen;
-
-static const char g_sas8Base64digits[] =
-"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-//编码
-void Base64Encode(char *ps8Dest, const char *ps8Source, int s32InLen)
-{
-    if (ps8Dest==NULL || ps8Source==NULL || s32InLen<=0)
-    {
-        return;
-    }
-	
-	for (; s32InLen >= 3; s32InLen -= 3)
-	{
-		*ps8Dest++ = g_sas8Base64digits[ps8Source[0] >> 2];
-		*ps8Dest++ = g_sas8Base64digits[((ps8Source[0] << 4) & 0x30) | (ps8Source[1] >> 4)];
-		*ps8Dest++ = g_sas8Base64digits[((ps8Source[1] << 2) & 0x3c) | (ps8Source[2] >> 6)];
-		*ps8Dest++ = g_sas8Base64digits[ps8Source[2] & 0x3f];
-	    ps8Source += 3;
-	}
-	
-	if (s32InLen > 0)
-	{
-		unsigned char fragment;
-		
-		*ps8Dest++ = g_sas8Base64digits[ps8Source[0] >> 2];
-		fragment = (ps8Source[0] << 4) & 0x30;
-		
-		if (s32InLen > 1)
-			fragment |= ps8Source[1] >> 4;
-		
-		*ps8Dest++ = g_sas8Base64digits[fragment];
-		*ps8Dest++ = (s32InLen < 2) ? '=' : g_sas8Base64digits[(ps8Source[1] << 2) & 0x3c];
-		*ps8Dest++ = '=';
-	}
-	
-	*ps8Dest = '\0';
-}
-
-//解码
-void Base64Decode(char *ps8Dest, const char *ps8Source, int s32InLen)
-{
-    int s32Num = 64;
-    int i,j;
-    char as8ValuePre[4];
-    char s8Temp;
-    int s32Flag = 0;
-	
-    if (ps8Dest==NULL || ps8Source==NULL || s32InLen<=0)
-    {
-        return;
-    }
-    for (i=0; i<s32InLen; i++)
-	{
-		s32Flag = 0;
-		for (j=0; j<64; j++)
-        {
-			if (ps8Source[i] == g_sas8Base64digits[j])
-			{
-                as8ValuePre[i%4] = j;
-                s32Flag = 1;
-                break;
-			}
-		}
-		if (s32Flag == 0)
-		{
-			break;
-		}
-		if (i%4 == 3)
-		{
-			s8Temp = (as8ValuePre[1]>>4)&0x3;
-			*ps8Dest++ = (as8ValuePre[0]<<2) | s8Temp ;
-			s8Temp = (as8ValuePre[2]>>2)&0xF;
-			*ps8Dest++ = (as8ValuePre[1]<<4) | s8Temp ;
-			s8Temp = (as8ValuePre[3])&0x3F;
-			*ps8Dest++ = (as8ValuePre[2]<<6) | s8Temp ;
-		}
-    }
-    i--;
-    if (i%4==1)
-    {
-        s8Temp = (as8ValuePre[1]>>4)&0x3;
-        *ps8Dest++ = (as8ValuePre[0]<<2) | s8Temp ;
-	}
-	else if (i%4==2)
-    {
-        s8Temp = (as8ValuePre[1]>>4)&0x3;
-        *ps8Dest++ = (as8ValuePre[0]<<2) | s8Temp ;
-		s8Temp = (as8ValuePre[2]>>2)&0xF;
-		*ps8Dest++ = (as8ValuePre[1]<<4) | s8Temp ;
-	}
-	
-	*ps8Dest = '\0';
-}
-
-/* EOF */

+ 0 - 169
Projects/macro/switch_ota_app_V1.0.1/GLOBAL.h

@@ -1,169 +0,0 @@
-/*******************************************************************************
-*
-*   SW 
-*   Soft version:   
-*   File Name:      GLOBAL.h
-*   Author   :      zzw (zhangzw_3@163.com)
-*   creation date:  2011-05-22
-*   module description:声明SW系统中的全局变量 
-*   Copyright (C) 
-*
-********************************************************************************/
-
-#if !defined(_GLOBAL_H_)
-#define _GLOBAL_H_
-
-
-// ************************* Typedef data type  *********************************
-typedef unsigned 	char  	u08;
-typedef          	char  	s08;
-typedef unsigned 	short 	u16;
-typedef          	short 	s16;
-typedef unsigned 	long 	u32;
-typedef          	long 	s32;
-typedef unsigned 	char  	uchar;
-typedef unsigned 	int   	uint;
-
-
-typedef unsigned char   	BOOL;
-typedef unsigned char		BYTE;
-typedef unsigned int		WORD;
-
-
-typedef unsigned char		byte;
-typedef unsigned int		word;
-typedef unsigned long		dword;
-
-typedef unsigned char		UCHAR;
-typedef unsigned int		UINT;
-typedef unsigned short  	USHORT;
-
-
-#ifndef NULL
-#define NULL 0
-#endif
-///////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////
-// 
-// UART消息及外设ID定义
-//
-#define COM1		0 // 
-#define COM2		1 // 
-
-
-/************************ 位变量定义 ***********************/
-typedef union {
-  byte Byte;
-  struct {
-    byte bit0        :1;                                       
-    byte bit1        :1;                                       
-    byte bit2        :1;                                      
-    byte bit3        :1;                                       
-    byte bit4        :1;                                       
-    byte bit5        :1; 
-    byte bit6        :1; 
-    byte bit7        :1;                                       
-  } Bits;
-} DBit;
-
-typedef struct SW_Parameters
-{
-  u16  SWID;			         //模块ID号
-	u08  KeyIn[6];           //按键状态,未按下时0xff
-	u08  step[6];           //01:按键触发,02:闪烁设置,03:全亮,04:闪烁:05:待机背光
-	u32  flicker[6]; //闪烁总时间
-
-  u08  relay_allstatus;   //继电器开机状态全局标志,开关上电状态设置
-  u08  relay_status[3];   //继电器开机1-3状态,开关上电状态设置
-  u08  relay_new_status[3]; //实时最新的状态,继电器断电前的最新状态
-
-  u08  plus_en[3];//点动触发标志,被设置为点动开关,且有按键按下则置1,点动倒计时结束清零
-  u32  plus_counter[3];//点动开关时间,倒计时计数器
-  u32  plus_auto_time[3];//点动开关自动关闭的时间固定值,通过APP设置保存的
-  u08  plus_mod[3];//对应按键开启点动配置
-
-  u08  mod[6]; //0:开关,1:场景
-	//u08  SCENE[4];			   //4个场景模式状态
-	u08  SWITCH[3];		   //4个普通灯的状态
-
-	//u08  LED[4];	     //4个背光状态
-  //u08  LongKey[4];   //长按标志位,LongKey[1-4]:KEY1-KEY4
-
-  //u08  DEBUG;//调试状态,背光常亮
-  //u08  shock;//震动设置,1有效
-  u08  human;//人感设置,1有效
-  u08  gRadarCheckNull;//无人标志位
- // u08  light;//光感设置,1有效
-  u08  led_level;//led背光亮度等级
-  //u08  bluelight;//氛围灯设置,1有效
-
-  u08  zigbee_work_state;//zigbee网络状态,0:不在网,1:在网,2:脱网报警(60S)
-  //u08  update_config;//APP更新配置参数
-  u32  time;//倒计时
-	
-	u08  KeyPress;			     //1号按键状态,0未被按下,1被按下
-  u32  buttonPressTime;
-} SWParameters;
-
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////
-extern volatile              DBit _BitParament0;
-#define sys10msFlag 		_BitParament0.Bits.bit0 	/* 10ms标志 			*/
-
-//#define sysstate             _BitParament0.Bits.bit7 	/* 0代表无故障,1表示故障开启故障指示灯 */
-#define Nightledvalue        0x0C00	 //背光灯调暗AD采集阈值
-
-extern volatile word   	    tickcount;      /* Timer tick count   		*/
-extern volatile byte 		sysTickfor10ms;	/* 10millisecond timer 		*/
-extern volatile byte 		sysTickfor100ms;/* 100millisecond timer 	*/
-extern volatile byte 		sysTickfor1000ms;/* 100millisecond timer 	*/
-
-
-extern  SWParameters   switchState;
-extern unsigned char gRelayOnOff;
-extern byte gLedState;//按键灯状态
-extern byte gRelayState;// 4bit 继电器值
-
-
-#define CONDITION_NORMAL_TO_BEFOR_JOINING 101
-#define CONDITION_BEFOR_JOINING_TO_JOINING 102 //触发入网后倒计时状态
-#define CONDITION_JOINGING_TO_NORMAL 103
-#define CONDITION_JOINGING__NOT_JION 104
-
-
-#define PWMPRD 18432	// 1ms周期
-#define PWMLEVEL1 32 //4608/72	// 一档 25%占空比,64太亮,降低测试
-#define PWMLEVEL2 64 //9216/72	// 二挡 50%占空比,128太亮,降低测试
-#define PWMLEVEL3 255 //18432/72 // 三挡 100%占空比
-
-extern byte ZG_Joining;//模块进入配网模式, 指示灯快速闪烁10秒
-extern WORD ZG_JoinCounter;//模块进入配网计数器,倒计时开始
-
-extern unsigned int gRadarKeepTimer;
-//#define  mKeyLedFlash 240	  //亮度变化间隔(频率),默认24ms变化改变一个光强度
-
-extern  byte  gRadarCheckNull;//雷达监测,1为无人,0为有人
-
-extern byte appControlLedEnable;//APP控制是否联动背光灯标志位
-
-extern byte shockCounter;//震动计数器
-extern byte shockStart;//按键按下震动触发
-
-
-extern byte burn_in_test_start;//产测标志位
-extern u32 burn_in_test_counter;//产测计数器
-extern u32 burn_in_test_timeout;//产测开机30秒内收到信标才有效
-
-extern u32 IAPUpdateFlag; 
-extern u32 OTA_Reciv_Datalen;
-
-extern void Base64Encode(char *ps8Dest, const char *ps8Source, int s32InLen);
-extern void Base64Decode(char *ps8Dest, const char *ps8Source, int s32InLen);
-
-
-
-#endif // !defined(_GLOBAL_H_)
-
-/* EOF */

+ 0 - 51
Projects/macro/switch_ota_app_V1.0.1/Listings/CRC.lst

@@ -1,51 +0,0 @@
-C51 COMPILER V9.53.0.0   CRC                                                               04/27/2024 11:38:09 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE CRC
-OBJECT MODULE PLACED IN .\Objects\CRC.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE CRC.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DEBUG O
-                    -BJECTEXTEND PRINT(.\Listings\CRC.lst) TABS(2) OBJECT(.\Objects\CRC.obj)
-
-line level    source
-
-   1          #include <REGtenxTM52F1386.H>
-   2          #include <intrins.h>
-   3          
-   4          /*******************************************************************
-   5          ** 函数名称: crc_calcu
-   6          ** 函数描述: 数据CRC校验
-   7          ** 输入参数: 无
-   8          ** 输出参数: ret   CRC的校验值
-   9          *******************************************************************/
-  10          unsigned int crc_calcu(unsigned char *p,unsigned int len)
-  11          {
-  12   1        unsigned int ret=0;
-  13   1        unsigned int i=0;
-  14   1        CRCIN = 0;
-  15   1        CRCDH = 0xff;
-  16   1        CRCDL = 0xff;
-  17   1        for(i = 0;i<len;i++)
-  18   1        {
-  19   2          CRCIN = p[i];   //将要检验的数据送入到CRCIN寄存器里
-  20   2        }
-  21   1      
-  22   1        ret = CRCDH;
-  23   1        ret = ret<<8;
-  24   1        ret = ret|CRCDL;
-  25   1        return ret;    //返回校验值
-  26   1      }
-  27          
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =    114    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =   ----       7
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

+ 0 - 243
Projects/macro/switch_ota_app_V1.0.1/Listings/EEPROM.lst

@@ -1,243 +0,0 @@
-C51 COMPILER V9.53.0.0   EEPROM                                                            04/27/2024 11:38:08 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE EEPROM
-OBJECT MODULE PLACED IN .\Objects\EEPROM.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE EEPROM.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DEBU
-                    -G OBJECTEXTEND PRINT(.\Listings\EEPROM.lst) TABS(2) OBJECT(.\Objects\EEPROM.obj)
-
-line level    source
-
-   1          /*********************************************************************************************************
-             -**
-   2            显示效果:          
-   3            用户通过仿真,能够对EEPROM的特定区域地址内容进行读写操作,并验证数据操作正确与否。      
-   4            eeprom写数据
-   5            连续写字节不能太多
-   6            写单个字节的时间根据写的内容的前后不同,时间不等。  以及电源电压相关
-   7            理论上随着写的次数增加,写的时间会相应增加,建议以单个字节1ms-2ms的时间为基准
-   8          **********************************************************************************************************
-             -*/
-   9          #include <REGtenxTM52F1386.h>
-  10          #include "TM52F1386_bsp.h"
-  11          #include <intrins.h>
-  12          #include "EEPROM.h"
-  13          
-  14          
-  15          #define   IAPTE_0P8_MS  AUX2=(AUX2&0xf9)|0x02
-  16          #define   IAPTE_3P2_MS  AUX2=(AUX2&0xf9)|0x04
-  17          #define   IAPTE_6P4_MS  AUX2=(AUX2&0xf9)|0x06
-  18          #define   IAPTE_DISABLE AUX2=(AUX2&0xf9)
-  19          
-  20          // 设置最大20字节存参数
-  21          unsigned char xdata eeprom_address_write[30]  _at_   0XDC00;             //eeprom指定地址,第一页用于状态数
-             -据+参数配置
-  22          unsigned char code eeprom_address_read[30]  _at_   0XDC00;             //eeprom指定地址
-  23          
-  24          // 设置最大20字节存参数
-  25          unsigned char xdata eeprom_address_write_backup[30]  _at_   0XDE00;             //eeprom指定地址,第二页,
-             -参数配置备份区,第一页读取失败从第二页读取参数备份
-  26          unsigned char code eeprom_address_read_backup[30]  _at_   0XDE00;             //eeprom指定地址
-  27          
-  28          /*
-  29          参数数据(10,实际从1开始,0字节保留):0-9:开机状态(通电勿扰)全局设置1字节-1,三个继电器开机状态3个字节-
-             -2-3-4,背光等级1个字节-5 , 开关、场景设置-6-7-8,人感1字节-9
-  30          
-  31          实时数据(6):10:19:当前继电器状态3个字节-10-11-12,雷达状态1字节-13,点动倒计时未结束1个字节-15-16-17,o
-             -ta状态1字节-19(最后一字节)
-  32          
-  33          点动开关参数(9):,点动开关2个字节(使能1,时间2)-20-21-22,-23-24-25,-26-27-28
-  34          */
-  35          unsigned char write_mileage[30];//0˸пأ1״̬ȫֿأ21Ĭ״̬32Ĭ״̬4
-             -3Ĭ״̬
-  36          unsigned char read_mileage[30];
-  37          
-  38          unsigned char write_mileage_backup[30];//0˸пأ1״̬ȫֿأ21Ĭ״̬32Ĭ
-             -̬43Ĭ״̬
-  39          unsigned char read_mileage_backup[30];
-  40          //unsigned char II=0;
-  41          /*********************************************************************************************************
-             -*
-  42          ** 函数名称: iap_eeprom_write
-  43          ** 函数描述: iap_EEPROM写数据配置函数  
-  44          ** 输入参数: addr:存储地址,范围0~127
-  45                       buf:数据的首地址
-C51 COMPILER V9.53.0.0   EEPROM                                                            04/27/2024 11:38:08 PAGE 2   
-
-  46                len:数据长度(addr+len不要超过128)
-  47          ** 输出参数: 无 
-  48          **********************************************************************************************************
-             -/
-  49          void iap_eeprom_write(unsigned char addr, unsigned char *buf, unsigned char len)       
-  50          {
-  51   1        unsigned char i=0,temp_ea=0,temp_lvrpd=0;
-  52   1        temp_ea = EA;
-  53   1        EA = 0;
-  54   1        temp_lvrpd = LVRCON & 0x10;  // LVR的状态位  
-  55   1        LVRCON = (LVRCON &~ 0x10) | (1 << 4); //关闭LVR功能
-  56   1      
-  57   1        IAPWE_SFR=0XE2;    //使能iap
-  58   1        IAPWE_SFR=0XBA;    //使能iap    
-  59   1        eeprom_address_write[0] = 0x00;//是所在页的整页都擦除
-  60   1        bsp_delay_ms(5);
-  61   1        
-  62   1        IAPWE_SFR=0XE2;    //使能iap
-  63   1        IAPWE_SFR=0X4C;    //使能iap
-  64   1        
-  65   1        for(i = 0; i<len; i++) {
-  66   2          IAPTE_6P4_MS;        //设置IAP看门狗复位时间
-  67   2          eeprom_address_write[addr + i] = *buf;//
-  68   2          buf++;
-  69   2        }
-  70   1        
-  71   1        LVRCON = (LVRCON &~ 0x10) | (temp_lvrpd << 4); //还原LVR
-  72   1        IAPWE_SFR = 0x00;    //关闭IAP
-  73   1        IAPTE_DISABLE;
-  74   1        EA = temp_ea;
-  75   1      }
-  76          
-  77          /*********************************************************************************************************
-             -*
-  78          ** 函数名称: iap_eeprom_write_backup
-  79          ** 函数描述: iap_EEPROM写数据配置函数  
-  80          ** 输入参数: addr:存储地址,范围0~127
-  81                       buf:数据的首地址
-  82                len:数据长度(addr+len不要超过128)
-  83          ** 输出参数: 无 
-  84          **********************************************************************************************************
-             -/
-  85          void iap_eeprom_write_backup(unsigned char addr, unsigned char *buf, unsigned char len)       
-  86          {
-  87   1        unsigned char i=0,temp_ea=0,temp_lvrpd=0;
-  88   1        temp_ea = EA;
-  89   1        EA = 0;
-  90   1        temp_lvrpd = LVRCON & 0x10;  // LVR的状态位  
-  91   1        LVRCON = (LVRCON &~ 0x10) | (1 << 4); //关闭LVR功能
-  92   1      
-  93   1        IAPWE_SFR=0XE2;    //使能iap
-  94   1        IAPWE_SFR=0XBA;    //使能iap    
-  95   1        eeprom_address_write_backup[0] = 0x00;//是所在页的整页都擦除
-  96   1        bsp_delay_ms(5);
-  97   1        
-  98   1        IAPWE_SFR=0XE2;    //使能iap
-  99   1        IAPWE_SFR=0X4C;    //使能iap
- 100   1        
- 101   1        for(i = 0; i<len; i++) {
- 102   2          IAPTE_6P4_MS;        //设置IAP看门狗复位时间
- 103   2          eeprom_address_write_backup[addr + i] = *buf;//
- 104   2          buf++;
-C51 COMPILER V9.53.0.0   EEPROM                                                            04/27/2024 11:38:08 PAGE 3   
-
- 105   2        }
- 106   1        
- 107   1        LVRCON = (LVRCON &~ 0x10) | (temp_lvrpd << 4); //还原LVR
- 108   1        IAPWE_SFR = 0x00;    //关闭IAP
- 109   1        IAPTE_DISABLE;
- 110   1        EA = temp_ea;
- 111   1      }
- 112          /*********************************************************************************************************
-             -*
- 113          ** 函数名称: iap_eeprom_read
- 114          ** 函数描述: iap_EEPROM读数据配置函数  
- 115          ** 输入参数: addr:存储地址,范围0~127
- 116                       buf:数据的首地址
- 117                len:数据长度(addr+len不要超过128)
- 118          ** 输出参数: 无 
- 119          **********************************************************************************************************
-             -/
- 120          void iap_eeprom_read(unsigned char addr, unsigned char *buf, unsigned char len)    //eeprom读
- 121          {
- 122   1       unsigned char i=0,temp_ea=0,temp_lvrpd=0;
- 123   1        
- 124   1        temp_ea = EA;
- 125   1        EA = 0; 
- 126   1        for(i = 0;i<len;i++) {
- 127   2          *buf = eeprom_address_read[addr+i];
- 128   2          buf++;
- 129   2        } 
- 130   1        EA = temp_ea;
- 131   1      }
- 132          
- 133          /*********************************************************************************************************
-             -*
- 134          ** 函数名称: iap_eeprom_read_backup
- 135          ** 函数描述: iap_EEPROM读数据配置函数  
- 136          ** 输入参数: addr:存储地址,范围0~127
- 137                       buf:数据的首地址
- 138                len:数据长度(addr+len不要超过128)
- 139          ** 输出参数: 无 
- 140          **********************************************************************************************************
-             -/
- 141          void iap_eeprom_read_backup(unsigned char addr, unsigned char *buf, unsigned char len)    //eeprom读
- 142          {
- 143   1       unsigned char i=0,temp_ea=0,temp_lvrpd=0;
- 144   1        
- 145   1        temp_ea = EA;
- 146   1        EA = 0; 
- 147   1        for(i = 0;i<len;i++) {
- 148   2          *buf = eeprom_address_read_backup[addr+i];
- 149   2          buf++;
- 150   2        } 
- 151   1        EA = temp_ea;
- 152   1      }
- 153          
- 154          
- 155          /*
- 156          void test(void)
- 157          {
- 158            
- 159            bsp_clock_init();                    // 系统快钟18.432 div 2 =  9.216Mhz
- 160            gpio_init();
- 161            write_mileage[0] = 0x22;
- 162            write_mileage[1] = 0x33;
-C51 COMPILER V9.53.0.0   EEPROM                                                            04/27/2024 11:38:08 PAGE 4   
-
- 163            write_mileage[2] = 0x44;
- 164            write_mileage[3] = 0x55;
- 165            iap_eeprom_write(0,write_mileage,4); //写四个字节(0x22 0x33 0x44 0x55)      
- 166            bsp_delay_ms(50);                    
- 167          
- 168            read_mileage[0] = 0;
- 169            read_mileage[1] = 0;
- 170            read_mileage[2] = 0;
- 171            read_mileage[3] = 0;
- 172            iap_eeprom_read(0,read_mileage,4);  //读四个字节与之前写的四个字节是否一致(0x22 0x33 0x44 0x55)
- 173            
- 174            write_mileage[0] = 0x66;
- 175            write_mileage[1] = 0x77;
- 176            write_mileage[2] = 0x88;
- 177            write_mileage[3] = 0x99;
- 178            iap_eeprom_write(0,write_mileage,4); //写四个字节(0x66 0x77 0x88 0x99)                                
-             -       
- 179            bsp_delay_ms(50);                     
- 180          
- 181            read_mileage[0] = 0;
- 182            read_mileage[1] = 0;
- 183            read_mileage[2] = 0;
- 184            read_mileage[3] = 0;
- 185            iap_eeprom_read(0,read_mileage,4);  //读四个字节与之前写的四个字节是否一致(0x66 0x77 0x88 0x99)
- 186          
- 187            while(1) 
- 188            {
- 189              if (0x66 == read_mileage[0]) {
- 190                LED1 = 0;
- 191              } 
- 192              else {
- 193                LED1 = 1;
- 194              } 
- 195            }
- 196          }*/
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =    432    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =    120      26
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

+ 0 - 182
Projects/macro/switch_ota_app_V1.0.1/Listings/GLOBAL.lst

@@ -1,182 +0,0 @@
-C51 COMPILER V9.53.0.0   GLOBAL                                                            04/27/2024 11:38:08 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE GLOBAL
-OBJECT MODULE PLACED IN .\Objects\GLOBAL.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE GLOBAL.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DEBU
-                    -G OBJECTEXTEND PRINT(.\Listings\GLOBAL.lst) TABS(2) OBJECT(.\Objects\GLOBAL.obj)
-
-line level    source
-
-   1          /*******************************************************************************
-   2          *
-   3          *   SW AS 
-   4          *   Soft version:   
-   5          *   File Name:      GLOBAL.c
-   6          *   Author   :      zzw (zhangzw_3@163.com)
-   7          *   creation date:  2022-07-20
-   8          *   module description:定义系统中的全局变量 
-   9          *   Copyright (C) 
-  10          *
-  11          ********************************************************************************/
-  12          #include "GLOBAL.h"
-  13          #include <stdio.h>
-  14          #include <stdlib.h>
-  15          #include <string.h>
-  16          
-  17          ///////////////////////////////////////////
-  18          volatile            DBit _BitParament0;
-  19          volatile word       tickcount;      /* Timer tick count       */
-  20          volatile byte       sysTickfor10ms; /* 10millisecond timer    */
-  21          volatile byte       sysTickfor100ms;/* 100millisecond timer   */
-  22          volatile byte       sysTickfor1000ms;/* 100millisecond timer  */
-  23          
-  24          SWParameters   switchState;//面板状态
-  25          
-  26          unsigned char  gRelayOnOff=0;//继电器状态
-  27          byte gLedState = 0;//按键灯状态
-  28          byte gRelayState = 0; // 4bit 继电器值
-  29          
-  30          byte ZG_Joining;//模块进入配网模式, 指示灯快速闪烁10秒
-  31          WORD ZG_JoinCounter;//模块进入配网计数器,倒计时开始
-  32          byte ZG_Joining_S;//模块进入配网模式
-  33          
-  34          
-  35          byte  Brightflag;  //强光标志位,1:白天,0,夜晚
-  36          byte BrightPWMH=6;           //强光灯强光PWM占空比
-  37          byte NightPWMH=1;           //暗光PWM占空比
-  38          byte Light_Intensity;//光强度
-  39          //byte mKeyLedWeakLight;//背光最大亮度值,根据光感设置
-  40          byte mBLedWeakLight;//背光最大亮度值,根据光感设置
-  41          
-  42          unsigned int gRadarKeepTimer=0;//有人存在时,LED灯等相关动作保持时间
-  43          byte gRadarCheckNull;//雷达监测,1为无人,0为有人
-  44          
-  45          byte shockCounter;//震动计数器
-  46          byte shockStart;//按键按下震动触发
-  47          
-  48          byte appControlLedEnable = 0; // app控制背光灯点亮使能位,0:忽略,1:强制点亮10秒
-  49          
-  50          
-  51          
-  52          byte burn_in_test_start=0;//产测标志位
-  53          u32 burn_in_test_counter=0;//产测计数器
-  54          u32 burn_in_test_timeout=0;//产测开机30秒内收到信标才有效
-C51 COMPILER V9.53.0.0   GLOBAL                                                            04/27/2024 11:38:08 PAGE 2   
-
-  55          
-  56          
-  57          u32 IAPUpdateFlag = 0; 
-  58          u32 OTA_Reciv_Datalen;
-  59          
-  60          static const char g_sas8Base64digits[] =
-  61          "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-  62          
-  63          //编码
-  64          void Base64Encode(char *ps8Dest, const char *ps8Source, int s32InLen)
-  65          {
-  66   1          if (ps8Dest==NULL || ps8Source==NULL || s32InLen<=0)
-  67   1          {
-  68   2              return;
-  69   2          }
-  70   1        
-  71   1        for (; s32InLen >= 3; s32InLen -= 3)
-  72   1        {
-  73   2          *ps8Dest++ = g_sas8Base64digits[ps8Source[0] >> 2];
-  74   2          *ps8Dest++ = g_sas8Base64digits[((ps8Source[0] << 4) & 0x30) | (ps8Source[1] >> 4)];
-  75   2          *ps8Dest++ = g_sas8Base64digits[((ps8Source[1] << 2) & 0x3c) | (ps8Source[2] >> 6)];
-  76   2          *ps8Dest++ = g_sas8Base64digits[ps8Source[2] & 0x3f];
-  77   2            ps8Source += 3;
-  78   2        }
-  79   1        
-  80   1        if (s32InLen > 0)
-  81   1        {
-  82   2          unsigned char fragment;
-  83   2          
-  84   2          *ps8Dest++ = g_sas8Base64digits[ps8Source[0] >> 2];
-  85   2          fragment = (ps8Source[0] << 4) & 0x30;
-  86   2          
-  87   2          if (s32InLen > 1)
-  88   2            fragment |= ps8Source[1] >> 4;
-  89   2          
-  90   2          *ps8Dest++ = g_sas8Base64digits[fragment];
-  91   2          *ps8Dest++ = (s32InLen < 2) ? '=' : g_sas8Base64digits[(ps8Source[1] << 2) & 0x3c];
-  92   2          *ps8Dest++ = '=';
-  93   2        }
-  94   1        
-  95   1        *ps8Dest = '\0';
-  96   1      }
-  97          
-  98          //解码
-  99          void Base64Decode(char *ps8Dest, const char *ps8Source, int s32InLen)
- 100          {
- 101   1          int s32Num = 64;
- 102   1          int i,j;
- 103   1          char as8ValuePre[4];
- 104   1          char s8Temp;
- 105   1          int s32Flag = 0;
- 106   1        
- 107   1          if (ps8Dest==NULL || ps8Source==NULL || s32InLen<=0)
- 108   1          {
- 109   2              return;
- 110   2          }
- 111   1          for (i=0; i<s32InLen; i++)
- 112   1        {
- 113   2          s32Flag = 0;
- 114   2          for (j=0; j<64; j++)
- 115   2              {
- 116   3            if (ps8Source[i] == g_sas8Base64digits[j])
-C51 COMPILER V9.53.0.0   GLOBAL                                                            04/27/2024 11:38:08 PAGE 3   
-
- 117   3            {
- 118   4                      as8ValuePre[i%4] = j;
- 119   4                      s32Flag = 1;
- 120   4                      break;
- 121   4            }
- 122   3          }
- 123   2          if (s32Flag == 0)
- 124   2          {
- 125   3            break;
- 126   3          }
- 127   2          if (i%4 == 3)
- 128   2          {
- 129   3            s8Temp = (as8ValuePre[1]>>4)&0x3;
- 130   3            *ps8Dest++ = (as8ValuePre[0]<<2) | s8Temp ;
- 131   3            s8Temp = (as8ValuePre[2]>>2)&0xF;
- 132   3            *ps8Dest++ = (as8ValuePre[1]<<4) | s8Temp ;
- 133   3            s8Temp = (as8ValuePre[3])&0x3F;
- 134   3            *ps8Dest++ = (as8ValuePre[2]<<6) | s8Temp ;
- 135   3          }
- 136   2          }
- 137   1          i--;
- 138   1          if (i%4==1)
- 139   1          {
- 140   2              s8Temp = (as8ValuePre[1]>>4)&0x3;
- 141   2              *ps8Dest++ = (as8ValuePre[0]<<2) | s8Temp ;
- 142   2        }
- 143   1        else if (i%4==2)
- 144   1          {
- 145   2              s8Temp = (as8ValuePre[1]>>4)&0x3;
- 146   2              *ps8Dest++ = (as8ValuePre[0]<<2) | s8Temp ;
- 147   2          s8Temp = (as8ValuePre[2]>>2)&0xF;
- 148   2          *ps8Dest++ = (as8ValuePre[1]<<4) | s8Temp ;
- 149   2        }
- 150   1        
- 151   1        *ps8Dest = '\0';
- 152   1      }
- 153          
- 154          /* EOF */
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =   1289    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =    203      30
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 4851
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5468
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5469
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V101.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5420
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V101_.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5472
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V102.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5469
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V102_test.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5426
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V103.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5426
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_1KEY_APP_V104.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5239
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5468
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5469
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V101.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5421
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V101_.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5453
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V102.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5469
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V102_test.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5453
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V103.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5477
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_2KEY_APP_V104.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 4851
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5468
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5469
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V101.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5472
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V102.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5469
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V102_test.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5477
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V103.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5888
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_3KEY_APP_V104.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5657
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5852
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5853
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_DEBUG.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5853
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V1.0.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5420
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V100_test.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5853
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V101.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5861
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V102.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5853
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V102_test.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 5861
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V103.m51


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 6007
Projects/macro/switch_ota_app_V1.0.1/Listings/HSW_6KEY_APP_V104.m51


+ 0 - 281
Projects/macro/switch_ota_app_V1.0.1/Listings/STARTUP_TENX52.lst

@@ -1,281 +0,0 @@
-A51 MACRO ASSEMBLER  STARTUP_TENX52                                                       04/27/2024 11:38:08 PAGE     1
-
-
-MACRO ASSEMBLER A51 V8.02b
-OBJECT MODULE PLACED IN .\Objects\STARTUP_TENX52.obj
-ASSEMBLER INVOKED BY: C:\Keil_v5_51\C51\BIN\A51.EXE STARTUP_TENX52.A51 INCDIR(..\..\..\Drivers) SET(LARGE) DEBUG PRINT(.
-                      \Listings\STARTUP_TENX52.lst) OBJECT(.\Objects\STARTUP_TENX52.obj) EP
-
-LOC  OBJ            LINE     SOURCE
-
-                       1     $nomod51 
-                       2     ;------------------------------------------------------------------------------
-                       3     ;Description:
-                       4     ;  This code is executed after a reset.  Besides the usual C51 startup 
-                       5     ;  settings, Some specific TM52FXXXX  initializations are done here such as the
-                       6     ;  LCD RAM clear. When the startup code execution is complete, this code jumps to ?C_START 
-                             that 
-                       7     ;  is typically the main() function in the C code.
-                       8     ;  
-                       9     ;
-                      10     ;  This example demo code is provided as is and has no warranty,
-                      11     ;  implied or otherwise.  You are free to use/modify any of the provided
-                      12     ;  code at your own risk in your applications with the expressed limitation
-                      13     ;  of liability  so long as your product using the code contains
-                      14     ;  at least one TM52FXXXX product (device).
-                      15     ;------------------------------------------------------------------------------
-                      16     ;  User-defined <h> Power-On Initialization of Memory 
-                      17     ;
-                      18     ;  With the following EQU statements the initialization of memory
-                      19     ;  at processor reset can be defined:
-                      20     ;
-                      21     ; <o> IDATALEN: IDATA memory size <0x0-0x100>
-                      22     ;     <i> Note: The absolute start-address of IDATA memory is always 0
-                      23     ;     <i>       The IDATA space overlaps physically the DATA and BIT areas.
-  0080                24     IDATALEN        EQU     80H   ; the length of IDATA memory in bytes to clear
-                      25     ;
-                      26     ; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF> 
-                      27     ;     <i> The absolute start address of XDATA memory
-                      28     ;     <i> TM52FXXXX users need to fill this in based on where SRAM memory mapped.
-  FFFF                29     XDATAEND        EQU     0FFFFH ; the absolute end-address of XDATA memory
-                      30     ;
-                      31     ; <o> XDATALEN: XDATA memory size <0x0-0xFFFF> 
-                      32     ;     <i> The length of XDATA memory in bytes.
-                      33     ;     <i> NOTE: The length equates for XDATALEN  should be changed to 
-                      34     ;     <i>       non-zero values indicating the amount of XDATA 
-                      35     ;     <i>       memory to be initialized to 0x00.  The start address equates 
-                      36     ;     <i>       (XDATASTART ) must be set to the respective starting
-                      37     ;     <i>       addresses as mapped in TM52FXXXX if the memory is to be initialized.
-  0000                38     XDATALEN        EQU     0H      ; the length of XDATA memory in bytes to clear.
-                      39     ;
-                      40     ; <o> LCDDATASTART: LCD DATA memory start address <0x0-0xFFFF> 
-                      41     ;     <i> The absolute start address of LCD DATA memory
-                      42     ;     <i> TM52XX users need to fill this in based on where LCD DATA memory mapped.
-  F000                43     LCDDATASTART    EQU     0F000H  ; the absolute start-address of LCD DATA memory
-                      44     ;
-                      45     ; <o> LCDDATALEN: XDATA memory size <0x0-0xFF> 
-                      46     ;     <i> The length of LCD DATA memory in bytes.
-                      47     ;     <i> NOTE: The length equates for LCDDATALEN should be changed to 
-                      48     ;     <i>       non-zero values indicating the amount of LCD DATA 
-                      49     ;     <i>       memory to be initialized to 0x00.  The start address equates 
-                      50     ;     <i>       (LCDDATASTART) must be set to the respective starting
-                      51     ;     <i>       addresses as mapped in TM52FXXXX if the memory is to be initialized.
-  0000                52     LCDDATALEN      EQU     0H      ; the length of XDATA memory in bytes to clear.
-                      53     ;
-                      54     ; <o> PDATASTART: PDATA memory start address <0x0-0xFFFF> 
-                      55     ;     <i> The absolute start address of PDATA memory
-  0000                56     PDATASTART      EQU     0H              ; the absolute start-address of PDATA memory
-A51 MACRO ASSEMBLER  STARTUP_TENX52                                                       04/27/2024 11:38:08 PAGE     2
-
-                      57     ;
-                      58     ; <o> PDATALEN: PDATA memory size <0x0-0xFF> 
-                      59     ;     <i> The length of PDATA memory in bytes.
-  0000                60     PDATALEN        EQU     0H              ; the length of PDATA memory in bytes to clear.
-                      61     ;
-                      62     ;</h>
-                      63     ;------------------------------------------------------------------------------
-                      64     ;
-                      65     ;<h> Reentrant Stack Initialization
-                      66     ;
-                      67     ;  The following EQU statements define the stack pointer for reentrant
-                      68     ;  functions and initialized it:
-                      69     ;
-                      70     ; <h> Stack Space for reentrant functions in the SMALL model.
-                      71     ;  <q> IBPSTACK: Enable SMALL model reentrant stack
-                      72     ;     <i> Stack space for reentrant functions in the SMALL model.
-  0000                73     IBPSTACK        EQU     0           ; set to 1 if small reentrant is used.
-                      74     ;  <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
-                      75     ;     <i> Set the top of the stack to the highest location.
-  0100                76     IBPSTACKTOP     EQU     0xFF +1     ; default 0FFH+1  
-                      77     ; </h>
-                      78     ;
-                      79     ; <h> Stack Space for reentrant functions in the LARGE model.      
-                      80     ;  <q> XBPSTACK: Enable LARGE model reentrant stack
-                      81     ;     <i> Stack space for reentrant functions in the LARGE model.
-  0000                82     XBPSTACK        EQU     0           ; set to 1 if large reentrant is used.
-                      83     ;  <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
-                      84     ;     <i> Set the top of the stack to the highest location.
-  0000                85     XBPSTACKTOP     EQU     0xFFFF +1   ; default 0FFFFH+1 
-                      86     ; </h>
-                      87     ;
-                      88     ; <h> Stack Space for reentrant functions in the COMPACT model.    
-                      89     ;  <q> PBPSTACK: Enable COMPACT model reentrant stack
-                      90     ;     <i> Stack space for reentrant functions in the COMPACT model.
-  0000                91     PBPSTACK        EQU     0           ; set to 1 if compact reentrant is used.
-                      92     ;
-                      93     ;   <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
-                      94     ;     <i> Set the top of the stack to the highest location.
-  0100                95     PBPSTACKTOP     EQU     0xFF +1     ; default 0FFH+1  
-                      96     ;</h>
-                      97     ;</h>
-                      98     ;------------------------------------------------------------------------------
-                      99     ;
-                     100     ;  Memory Page for Using the Compact Model with 64 KByte xdata RAM
-                     101     ;  <e>Compact Model Page Definition
-                     102     ;
-                     103     ;  <i>Define the XDATA page used for PDATA variables. 
-                     104     ;  <i>PPAGE must conform with the PPAGE set in the linker invocation.
-                     105     ;
-                     106     ; Enable pdata memory page initalization
-  0000               107     PPAGEENABLE     EQU     0           ; set to 1 if pdata object are used.
-                     108     ;
-                     109     ; <o> PPAGE number <0x0-0xFF> 
-                     110     ; <i> uppermost 256-byte address of the page used for PDATA variables.
-  0000               111     PPAGE           EQU     0
-                     112     ;
-                     113     ; <o> SFR address which supplies uppermost address byte <0x0-0xFF> 
-                     114     ; <i> most 8051 variants use P2 as uppermost address byte
-  00A0               115     PPAGE_SFR       DATA    0A0H
-                     116     ;
-                     117     ; </e>
-                     118     ;; </e>
-                     119     ;;------------------------------------------------------------------------------
-                     120     
-                     121     ; Standard SFR Symbols 
-  00E0               122     ACC     DATA    0E0H
-A51 MACRO ASSEMBLER  STARTUP_TENX52                                                       04/27/2024 11:38:08 PAGE     3
-
-  00F0               123     B       DATA    0F0H
-  0081               124     SP      DATA    81H
-  0082               125     DPL     DATA    82H
-  0083               126     DPH     DATA    83H
-                     127     
-                     128                     NAME    ?C_STARTUP
-                     129     
-                     130     
-                     131     ?C_C51STARTUP   SEGMENT   CODE
-                     132     ?STACK          SEGMENT   IDATA
-                     133     
-----                 134                     RSEG    ?STACK
-0000                 135                     DS      1
-                     136     
-                     137                     EXTRN CODE (?C_START)
-                     138                     PUBLIC  ?C_STARTUP
-                     139     
-----                 140                     CSEG    AT      0
-0000 020000   F      141     ?C_STARTUP:     LJMP    STARTUP1
-                     142     
-----                 143                     RSEG    ?C_C51STARTUP
-                     144     
-0000                 145     STARTUP1:
-                     146     
-                     147     IF IDATALEN <> 0
-0000 787F            148                     MOV     R0,#IDATALEN - 1
-0002 E4              149                     CLR     A
-0003 F6              150     IDATALOOP:      MOV     @R0,A
-0004 D8FD            151                     DJNZ    R0,IDATALOOP
-                     152     ENDIF
-                     153     
-                     154     IF XDATALEN <> 0
-                                             MOV     DPTR,#(XDATAEND-XDATALEN)+1
-                                             MOV     R7,#LOW (XDATALEN)
-                               IF (LOW (XDATALEN)) <> 0
-                                             MOV     R6,#(HIGH (XDATALEN)) +1
-                               ELSE
-                                             MOV     R6,#HIGH (XDATALEN)
-                               ENDIF
-                                             CLR     A
-                             XDATALOOP:      MOVX    @DPTR,A
-                                             INC     DPTR
-                                             DJNZ    R7,XDATALOOP
-                                             DJNZ    R6,XDATALOOP
-                             ENDIF
-                     168     
-                     169     IF LCDDATALEN <> 0
-                                             MOV     DPTR,#LCDDATASTART
-                                             MOV     R7,#LCDDATALEN
-                                             CLR     A
-                             LCDDATALOOP:    MOVX    @DPTR,A
-                                             INC     DPTR
-                                             DJNZ    R7,LCDDATALOOP
-                             ENDIF
-                     177     
-                     178     
-                     179     IF PPAGEENABLE <> 0
-                                             MOV     PPAGE_SFR,#PPAGE
-                             ENDIF
-                     182     
-                     183     IF PDATALEN <> 0
-                                             MOV     R0,#LOW (PDATASTART)
-                                             MOV     R7,#LOW (PDATALEN)
-                                             CLR     A
-                             PDATALOOP:      MOVX    @R0,A
-                                             INC     R0
-A51 MACRO ASSEMBLER  STARTUP_TENX52                                                       04/27/2024 11:38:08 PAGE     4
-
-                                             DJNZ    R7,PDATALOOP
-                             ENDIF
-                     191     
-                     192     IF IBPSTACK <> 0
-                             EXTRN DATA (?C_IBP)
-                             
-                                             MOV     ?C_IBP,#LOW IBPSTACKTOP
-                             ENDIF
-                     197     
-                     198     IF XBPSTACK <> 0
-                             EXTRN DATA (?C_XBP)
-                             
-                                             MOV     ?C_XBP,#HIGH XBPSTACKTOP
-                                             MOV     ?C_XBP+1,#LOW XBPSTACKTOP
-                             ENDIF
-                     204     
-                     205     IF PBPSTACK <> 0
-                             EXTRN DATA (?C_PBP)
-                                             MOV     ?C_PBP,#LOW PBPSTACKTOP
-                             ENDIF
-                     209     
-0006 758100   F      210                     MOV     SP,#?STACK-1  ; init SP for hardware stack 
-                     211     
-                     212     ; This code is required if you use L51_BANK.A51 with Banking Mode 4
-                     213     ;<h> Code Banking
-                     214     ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
-                     215     
-                             
-                             
-                                             
-                             
-                     220     ;</h>
-0009 020000   F      221                     LJMP    ?C_START    ;call main() function in the C code
-                     222     
-                     223                     END
-A51 MACRO ASSEMBLER  STARTUP_TENX52                                                       04/27/2024 11:38:08 PAGE     5
-
-SYMBOL TABLE LISTING
------- ----- -------
-
-
-N A M E             T Y P E  V A L U E   ATTRIBUTES
-
-?C_C51STARTUP. . .  C SEG    000CH       REL=UNIT
-?C_START . . . . .  C ADDR   -----       EXT
-?C_STARTUP . . . .  C ADDR   0000H   A   
-?STACK . . . . . .  I SEG    0001H       REL=UNIT
-ACC. . . . . . . .  D ADDR   00E0H   A   
-B. . . . . . . . .  D ADDR   00F0H   A   
-DPH. . . . . . . .  D ADDR   0083H   A   
-DPL. . . . . . . .  D ADDR   0082H   A   
-IBPSTACK . . . . .  N NUMB   0000H   A   
-IBPSTACKTOP. . . .  N NUMB   0100H   A   
-IDATALEN . . . . .  N NUMB   0080H   A   
-IDATALOOP. . . . .  C ADDR   0003H   R   SEG=?C_C51STARTUP
-LCDDATALEN . . . .  N NUMB   0000H   A   
-LCDDATASTART . . .  N NUMB   F000H   A   
-PBPSTACK . . . . .  N NUMB   0000H   A   
-PBPSTACKTOP. . . .  N NUMB   0100H   A   
-PDATALEN . . . . .  N NUMB   0000H   A   
-PDATASTART . . . .  N NUMB   0000H   A   
-PPAGE. . . . . . .  N NUMB   0000H   A   
-PPAGEENABLE. . . .  N NUMB   0000H   A   
-PPAGE_SFR. . . . .  D ADDR   00A0H   A   
-SP . . . . . . . .  D ADDR   0081H   A   
-STARTUP1 . . . . .  C ADDR   0000H   R   SEG=?C_C51STARTUP
-XBPSTACK . . . . .  N NUMB   0000H   A   
-XBPSTACKTOP. . . .  N NUMB   0000H   A   
-XDATAEND . . . . .  N NUMB   FFFFH   A   
-XDATALEN . . . . .  N NUMB   0000H   A   
-
-
-REGISTER BANK(S) USED: 0 
-
-
-ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

+ 0 - 156
Projects/macro/switch_ota_app_V1.0.1/Listings/TM52F1386_bsp.lst

@@ -1,156 +0,0 @@
-C51 COMPILER V9.53.0.0   TM52F1386_BSP                                                     04/27/2024 11:38:09 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE TM52F1386_BSP
-OBJECT MODULE PLACED IN .\Objects\TM52F1386_bsp.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE ..\..\..\Drivers\TM52F1386_bsp.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDI
-                    -R(..\..\..\Drivers) DEBUG OBJECTEXTEND PRINT(.\Listings\TM52F1386_bsp.lst) TABS(2) OBJECT(.\Objects\TM52F1386_bsp.obj)
-
-line level    source
-
-   1          #include <REGtenxTM52F1386.h>
-   2          #include <intrins.h>
-   3          #include "TM52F1386_bsp.h"
-   4          
-   5          /*********************************************************************************************************
-             -*
-   6          **函数名称  bsp_clock_init()
-   7          **函数描述 :设置内部FRC/2为系统时钟
-   8          **输    入 :无
-   9          **输    出 :无
-  10          **说    明 :快时钟系统主频为 18.432/2M   默认二分频
-  11          **********************************************************************************************************
-             -/
-  12          void bsp_clock_init()      
-  13          {
-  14   1        SELFCK = 0;          //切换到慢时钟
-  15   1          
-  16   1        CLKCON = 0x02;       //时钟二分频
-  17   1      //  CLKCON = 0x03;       //时钟一分频
-  18   1        
-  19   1        STPPCK = 0;      //开启部分模块使用快时钟
-  20   1        STPFCK = 0;      //开启快时钟
-  21   1        SELFCK = 1;      //切换到快时钟
-  22   1      }
-  23          
-  24          /*********************************************************************************************************
-             -*
-  25          **函数名称  bsp_FXT_clock_init()
-  26          **函数描述 :设置FXT外部快速晶体振荡器/2为系统时钟
-  27          **输    入 :无
-  28          **输    出 :无
-  29          **说    明 :注意 P20 P21需要配置为接外部快速晶振
-  30          **********************************************************************************************************
-             -/
-  31          void bsp_FXT_clock_init()      
-  32          {
-  33   1        SELFCK = 0;          //切换到慢时钟
-  34   1      
-  35   1        CLKCON = 0x02;       //时钟二分频
-  36   1      //  CLKCON = 0x03;       //时钟一分频
-  37   1      
-  38   1        FCKTYPE = 1;     //FXT
-  39   1        STPPCK = 0;      //开启快时钟
-  40   1        STPFCK = 0;      //开启部分模块使用快时钟
-  41   1        //延时2ms等待晶体振荡器稳定
-  42   1        bsp_delay_ms(2);
-  43   1        SELFCK = 1;      //切换到快时钟
-  44   1      }
-  45          
-  46          /*********************************************************************************************************
-             -*
-  47          **函数名称  bsp_SXT_clock_init()
-  48          **函数描述 :设置SXT外部慢速晶体振荡器/2为系统时钟
-  49          **输    入 :无
-C51 COMPILER V9.53.0.0   TM52F1386_BSP                                                     04/27/2024 11:38:09 PAGE 2   
-
-  50          **输    出 :无
-  51          **说    明 :注意 P20 P21需要配置为接外部快速晶振
-  52          **********************************************************************************************************
-             -/
-  53          void bsp_SXT_clock_init()      
-  54          {
-  55   1        SELFCK = 0;      //切换到慢时钟
-  56   1        
-  57   1        CLKCON = 0x02;   //时钟二分频 
-  58   1      //  CLKCON = 0x03;       //时钟一分频
-  59   1        STPPCK = 0;      //开启快时钟
-  60   1        STPFCK = 0;      //开启部分模块使用快时钟
-  61   1        SELFCK = 1;      //切换到快时钟
-  62   1        SCKTYPE = 1;     //SXT
-  63   1        SELFCK = 0;      //切换到慢时钟
-  64   1      }
-  65          
-  66          /*********************************************************************************************************
-             -*
-  67          **函数名称  bsp_delay_100us()
-  68          **函数描述 :100us单位延时函数
-  69          **输    入 :
-  70          **输    出 :无
-  71          **说    明 :基于内部时钟二分频计算,非精确延时 
-  72          **********************************************************************************************************
-             -/
-  73          void bsp_delay_100us(unsigned int cnt)   //该函数不是精确延时,根据内部时钟FRC二分频计算得来的
-  74          {
-  75   1        unsigned int i;
-  76   1        unsigned char delay_cnt;
-  77   1        for(i = 0;i<cnt;i++)
-  78   1        {
-  79   2          delay_cnt = 23;
-  80   2          while(delay_cnt--)
-  81   2          {
-  82   3            delay_10nop();
-  83   3          }
-  84   2        }
-  85   1      }
-  86          
-  87          /*********************************************************************************************************
-             -*
-  88          **函数名称  bsp_delay_100us()
-  89          **函数描述 :100us单位延时函数
-  90          **输    入 :
-  91          **输    出 :无
-  92          **说    明 :基于内部时钟二分频计算,非精确延时 
-  93          **********************************************************************************************************
-             -/
-  94          void bsp_delay_ms(unsigned int ms)      //该函数不是精确延时,根据内部时钟FRC二分频计算得来的
-  95          {
-  96   1        unsigned int i;
-  97   1        unsigned char delay_cnt;
-  98   1        for(i = 0;i<ms;i++)
-  99   1        {
- 100   2          delay_cnt =95;
- 101   2          while(delay_cnt--)
- 102   2          {
- 103   3            delay_10nop();
- 104   3            delay_10nop();
- 105   3            delay_10nop();
- 106   3            delay_10nop();
-C51 COMPILER V9.53.0.0   TM52F1386_BSP                                                     04/27/2024 11:38:09 PAGE 3   
-
- 107   3          }
- 108   2        }
- 109   1      }
- 110          
- 111          
- 112          
- 113          
- 114          
- 115          
- 116          
- 117          
- 118          
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =    155    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =   ----    ----
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 1233
Projects/macro/switch_ota_app_V1.0.1/Listings/gpio_ctrl.lst


+ 0 - 367
Projects/macro/switch_ota_app_V1.0.1/Listings/iap.lst

@@ -1,367 +0,0 @@
-C51 COMPILER V9.53.0.0   IAP                                                               04/27/2024 11:38:09 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE IAP
-OBJECT MODULE PLACED IN .\Objects\iap.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE iap.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DEBUG O
-                    -BJECTEXTEND PRINT(.\Listings\iap.lst) TABS(2) OBJECT(.\Objects\iap.obj)
-
-line level    source
-
-   1          #include <REGtenxTM52F1386.H>
-   2          #include "CRC.h" 
-   3          #include "iap.h" 
-   4          
-   5          
-   6          
-   7          
-   8          //以下两个指针必须是xdata类型
-   9          unsigned char xdata *p_info_addr;          //指向信息存储器区域 - 读写
-  10          unsigned char xdata *p_write_app_addr;     //指向app区域 - 写
-  11          unsigned char code  *p_read_app_addr;      //指向app区域 - 读
-  12          
-  13          static  bit iap_flag=0;     //0:正常   1:异常
-  14          
-  15          unsigned char CheckBuf[20]={0};                  //读取升级标记的数组
-  16          
-  17          /******************************************************************************************
-  18          ** 函数名称: erasure_INFO_page
-  19          ** 函数描述: 擦除信息存储器区域的一页数据
-  20          ** 输入参数: 地址
-  21          ** 输出参数: 状态:0 正常, 1 异常
-  22          *******************************************************************************************/
-  23          static bit erasure_INFO_page(unsigned int addr)
-  24          {
-  25   1        unsigned char temp_ea;
-  26   1        
-  27   1        if(addr < 0x800)       //INFO区 5~8,用户可写
-  28   1        {
-  29   2          return 1;            //返回异常值
-  30   2        }
-  31   1        
-  32   1        iap_flag = 0;          //iap_flag标志清零
-  33   1        
-  34   1        temp_ea = EA;
-  35   1        EA = 0;
-  36   1        
-  37   1        LVRCON = LVRCON|0x10;  //关闭LVR
-  38   1        
-  39   1        p_info_addr = (unsigned char *)addr;
-  40   1        
-  41   1        AUX2 = AUX2&0xF9|0x06; //设置IAP超时时间
-  42   1        
-  43   1        //写入0XA1和0xBA, 开启 INFO 区域擦除  
-  44   1        IAPWE_SFR=0XA1;
-  45   1        IAPWE_SFR=0XBA; 
-  46   1        
-  47   1        //INFO区域不需要设置 SWCMD 寄存器
-  48   1        
-  49   1        *p_info_addr = 0;      //触发页擦除
-  50   1        
-  51   1        if(IAPWE_SFR & IAPTO)  //置位表示超时
-  52   1        {
-  53   2          iap_flag = 1;        //iap_flag标志置位
-  54   2        }
-C51 COMPILER V9.53.0.0   IAP                                                               04/27/2024 11:38:09 PAGE 2   
-
-  55   1        
-  56   1        AUX2 = AUX2&0xF9;      //关闭IAP看门狗
-  57   1        IAPWE_SFR = 0x00;      //禁止IAP擦除
-  58   1        SWCMD = 0x00;          //关闭IAP权限
-  59   1        
-  60   1        LVRCON = LVRCON&~0x10; //开启LVR
-  61   1        
-  62   1        EA = temp_ea; 
-  63   1        
-  64   1        return  iap_flag;
-  65   1      }
-  66          
-  67          /******************************************************************************************
-  68          ** 函数名称: read_INFO_byte
-  69          ** 函数描述: 读取信息存储器区域的数据
-  70          ** 输入参数: 地址 数组的首地址、长度 
-  71          ** 输出参数: 无
-  72          *******************************************************************************************/
-  73          static void read_INFO_byte(unsigned int addr, unsigned char *buf, unsigned int len)
-  74          {
-  75   1        unsigned int i;
-  76   1        
-  77   1        p_info_addr =(unsigned char*)addr;
-  78   1        
-  79   1        for(i = 0; i<len; i++)
-  80   1        {
-  81   2          buf[i] = *p_info_addr;
-  82   2          p_info_addr++;  
-  83   2        }
-  84   1      }
-  85          
-  86          /******************************************************************************************
-  87          ** 函数名称: write_INFO_byte
-  88          ** 函数描述: 写入信息存储器区域的数据
-  89          ** 输入参数: 地址 数组的首地址、长度 
-  90          ** 输出参数: 状态:0 正常, 1 异常
-  91          *******************************************************************************************/
-  92          static bit write_INFO_byte(unsigned int addr, unsigned char *buf, unsigned int len)
-  93          {
-  94   1        unsigned char temp_ea;
-  95   1        unsigned int i;
-  96   1        
-  97   1        iap_flag = 0;           //iap_flag标志清零
-  98   1        
-  99   1        temp_ea = EA;
- 100   1        EA = 0;
- 101   1        
- 102   1        LVRCON = LVRCON|0x10;   //关闭LVR
- 103   1        
- 104   1        p_info_addr = (unsigned char *)addr;
- 105   1        
- 106   1        AUX2 = AUX2&0xF9|0x06;  //设置IAP超时时间
- 107   1        
- 108   1        //写入0XA1和0X4C, 开启 INFO 区域擦除  
- 109   1        IAPWE_SFR=0XA1;
- 110   1        IAPWE_SFR=0X4C; 
- 111   1        
- 112   1        //INFO区域不需要设置 SWCMD 寄存器
- 113   1        for(i = 0; i<len; i++)
- 114   1        {
- 115   2          *p_info_addr = buf[i];//触发写
- 116   2          p_info_addr++;
-C51 COMPILER V9.53.0.0   IAP                                                               04/27/2024 11:38:09 PAGE 3   
-
- 117   2        }
- 118   1        
- 119   1        if(IAPWE_SFR & IAPTO)   //置位表示超时
- 120   1        {
- 121   2          iap_flag = 1;         //iap_flag标志置位
- 122   2        }
- 123   1        
- 124   1        AUX2 = AUX2&0xF9;       //关闭IAP看门狗
- 125   1        IAPWE_SFR = 0x00;       //禁止IAP擦除
- 126   1        SWCMD = 0x00;           //关闭IAP权限
- 127   1        
- 128   1        LVRCON = LVRCON&~0x10;  //开启LVR
- 129   1        
- 130   1        EA = temp_ea; 
- 131   1        
- 132   1        return  iap_flag; 
- 133   1      }
- 134          
- 135          /******************************************************************************************
- 136          ** 函数名称: user_write_INFO_byte
- 137          ** 函数描述: 存储INFO数据的函数,供用户使用
- 138          ** 输入参数: 地址 数组的首地址、长度 
- 139          ** 输出参数: 状态:0 正常, 1 异常
- 140          *******************************************************************************************/
- 141          bit user_write_INFO_byte(unsigned int addr, unsigned char *buf, unsigned int len)
- 142          {
- 143   1        bit flag=0;
- 144   1        unsigned int crc_write=0,crc_read=0;
- 145   1        
- 146   1        //页首地址才会执行页擦除,一页512byte
- 147   1        if(addr==0 || ((addr%0x200)==0))    
- 148   1        {
- 149   2          flag = erasure_INFO_page(addr);    
- 150   2          if(flag)  return  flag;         //异常就返回
- 151   2        }
- 152   1        
- 153   1        //先擦除页,再写入数据
- 154   1        flag = write_INFO_byte(addr,buf,len);
- 155   1        if(flag)  return  flag;           //异常就返回
- 156   1        crc_write = crc_calcu(buf,len);   //计算写之前的CRC值
- 157   1        
- 158   1        //读出比较CRC值
- 159   1        read_INFO_byte(addr,buf,len);
- 160   1        crc_read = crc_calcu(buf,len);    //从flash里读出数据,在计算CRC值
- 161   1        
- 162   1        if(crc_write != crc_read)         //判断读写的数据是否一致
- 163   1        {
- 164   2          flag = 1; 
- 165   2        }
- 166   1        
- 167   1        return  flag;
- 168   1      }
- 169          
- 170          /******************************************************************************************
- 171          ** 函数名称: user_read_INFO_byte
- 172          ** 函数描述: 读INFO数据的函数,供用户使用
- 173          ** 输入参数: 地址 数组的首地址、长度 
- 174          ** 输出参数: 无
- 175          *******************************************************************************************/
- 176          void user_read_INFO_byte(unsigned int addr, unsigned char *buf, unsigned int len)
- 177          {
- 178   1        read_INFO_byte(addr, buf,len);  
-C51 COMPILER V9.53.0.0   IAP                                                               04/27/2024 11:38:09 PAGE 4   
-
- 179   1      }
- 180          
- 181          /******************************************************************************************
- 182          ** 函数名称: erasure_APP_page
- 183          ** 函数描述: 擦除信app区域的一页数据
- 184          ** 输入参数: 地址
- 185          ** 输出参数: 状态:0 正常, 1 异常
- 186          *******************************************************************************************/
- 187          static bit erasure_APP_page(unsigned int addr)
- 188          {
- 189   1        unsigned char temp_ea;
- 190   1        
- 191   1        iap_flag = 0;           //iap_flag标志清零
- 192   1        
- 193   1        temp_ea = EA;
- 194   1        EA = 0;
- 195   1        
- 196   1        LVRCON = LVRCON|0x10;   //关闭LVR
- 197   1        
- 198   1        p_write_app_addr = (unsigned char *)addr;
- 199   1        
- 200   1        AUX2 = AUX2&0xF9|0x06;  //设置IAP超时时间
- 201   1        
- 202   1        //写入0xE2和0xBA, 开启APP 区域擦除  
- 203   1        IAPWE_SFR=0XE2;
- 204   1        IAPWE_SFR=0XBA; 
- 205   1        
- 206   1        //写入0x65和0xA7,开启APP区域擦除和写入权限
- 207   1        SWCMD=0x65;   
- 208   1        SWCMD=0xA7;
- 209   1        
- 210   1        *p_write_app_addr = 0;  //触发页擦除
- 211   1        
- 212   1        if(IAPWE_SFR & IAPTO)   //置位表示超时
- 213   1        {
- 214   2          iap_flag = 1;         //iap_flag标志置位
- 215   2        }
- 216   1        
- 217   1        AUX2 = AUX2&0xF9;       //关闭IAP看门狗
- 218   1        IAPWE_SFR = 0x00;       //禁止IAP擦除
- 219   1        SWCMD = 0x00;           //关闭IAP权限
- 220   1        
- 221   1        LVRCON = LVRCON&~0x10;  //开启LVR
- 222   1        
- 223   1        EA = temp_ea; 
- 224   1        
- 225   1        return  iap_flag;
- 226   1      }
- 227          
- 228          /******************************************************************************************
- 229          ** 函数名称: read_APP_byte
- 230          ** 函数描述: 读取APP区域的数据
- 231          ** 输入参数: 地址 数组的首地址、长度 
- 232          ** 输出参数: 无
- 233          *******************************************************************************************/
- 234          static void read_APP_byte(unsigned int addr, unsigned char *buf, unsigned int len)
- 235          {
- 236   1        unsigned int i;
- 237   1        
- 238   1        p_read_app_addr =(unsigned char*)addr;
- 239   1        
- 240   1        for(i = 0; i<len; i++)
-C51 COMPILER V9.53.0.0   IAP                                                               04/27/2024 11:38:09 PAGE 5   
-
- 241   1        {
- 242   2          buf[i] = *p_read_app_addr;
- 243   2          p_read_app_addr++;  
- 244   2        }
- 245   1      }
- 246          
- 247          /******************************************************************************************
- 248          ** 函数名称: write_APP_byte
- 249          ** 函数描述: 写入APP的数据
- 250          ** 输入参数: 地址 数组的首地址、长度 
- 251          ** 输出参数: 状态:0 正常, 1 异常
- 252          *******************************************************************************************/
- 253          static bit write_APP_byte(unsigned int addr, unsigned char *buf, unsigned int len)
- 254          {
- 255   1        unsigned char temp_ea;
- 256   1        unsigned int i;
- 257   1        
- 258   1        iap_flag = 0;           //iap_flag标志清零
- 259   1        
- 260   1        temp_ea = EA;
- 261   1        EA = 0;
- 262   1        
- 263   1        LVRCON = LVRCON|0x10;   //关闭LVR
- 264   1        
- 265   1        p_write_app_addr = (unsigned char *)addr;
- 266   1        
- 267   1        AUX2 = AUX2&0xF9|0x06;  //设置IAP超时时间
- 268   1        
- 269   1        //写入0xE2和0X4C, 开启APP 区域擦除  
- 270   1        IAPWE_SFR=0XE2;
- 271   1        IAPWE_SFR=0X4C; 
- 272   1        
- 273   1        //写入0x65和0xA7,开启APP区域擦除和写入权限
- 274   1        SWCMD=0x65;   
- 275   1        SWCMD=0xA7;
- 276   1        
- 277   1        for(i = 0; i<len; i++)
- 278   1        {
- 279   2          *p_write_app_addr = buf[i];     //触发写
- 280   2          p_write_app_addr++;
- 281   2        }
- 282   1        
- 283   1        if(IAPWE_SFR & IAPTO)   //置位表示超时
- 284   1        {
- 285   2          iap_flag = 1;         //iap_flag标志置位
- 286   2        }
- 287   1        
- 288   1        AUX2 = AUX2&0xF9;       //关闭IAP看门狗
- 289   1        IAPWE_SFR = 0x00;       //禁止IAP擦除
- 290   1        SWCMD = 0x00;           //关闭IAP权限
- 291   1        
- 292   1        LVRCON = LVRCON&~0x10;  //开启LVR
- 293   1        
- 294   1        EA = temp_ea; 
- 295   1        
- 296   1        return  iap_flag; 
- 297   1      }
- 298          
- 299          /******************************************************************************************
- 300          ** 函数名称: user_write_APP_byte
- 301          ** 函数描述: 存储APP数据的函数,供用户使用
- 302          ** 输入参数: 地址 数组的首地址、长度 
-C51 COMPILER V9.53.0.0   IAP                                                               04/27/2024 11:38:09 PAGE 6   
-
- 303          ** 输出参数: 状态:0 正常, 1 异常
- 304          *******************************************************************************************/
- 305          bit user_write_APP_byte(unsigned int addr, unsigned char *buf, unsigned int len)
- 306          {
- 307   1        bit flag=0;
- 308   1        unsigned int crc_write=0,crc_read=0;
- 309   1        
- 310   1        //页首地址才会执行页擦除
- 311   1        if(addr==0 || ((addr%0x200)==0))    
- 312   1        {
- 313   2          flag = erasure_APP_page(addr);    
- 314   2          if(flag)  return  flag;         //异常就返回
- 315   2        }
- 316   1        
- 317   1        //先擦除页,再写入数据
- 318   1        flag = write_APP_byte(addr,buf,len);
- 319   1        if(flag)  return  flag;           //异常就返回
- 320   1        crc_write = crc_calcu(buf,len);   //计算写之前的CRC值
- 321   1        
- 322   1        //读出比较CRC值
- 323   1        read_APP_byte(addr,buf,len);
- 324   1        crc_read = crc_calcu(buf,len);    //从flash里读出数据,在计算CRC值
- 325   1        
- 326   1        if(crc_write != crc_read)
- 327   1        {
- 328   2          flag = 1; 
- 329   2        }
- 330   1        
- 331   1        return  flag;
- 332   1      }
- 333          
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =   1116    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =     26      63
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =      1       2
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 1094
Projects/macro/switch_ota_app_V1.0.1/Listings/main.lst


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 4851
Projects/macro/switch_ota_app_V1.0.1/Listings/main.m51


+ 0 - 650
Projects/macro/switch_ota_app_V1.0.1/Listings/mcu_api.lst

@@ -1,650 +0,0 @@
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE MCU_API
-OBJECT MODULE PLACED IN .\Objects\mcu_api.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE mcu_api.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DEB
-                    -UG OBJECTEXTEND PRINT(.\Listings\mcu_api.lst) TABS(2) OBJECT(.\Objects\mcu_api.obj)
-
-line level    source
-
-   1          /**
-   2          * @file  mcu_api.c
-   3          * @brief this file contains basic fuctions and DP data report fucntion which is base on DP type
-   4          * @author qinlang
-   5          * @date 2022.05.06
-   6          * @par email:qinlang.chen@tuya.com
-   7          * @copyright HANGZHOU TUYA INFORMATION TECHNOLOGY CO.,LTD
-   8          * @par company
-   9          * http://www.tuya.com
-  10          */
-  11          
-  12          #include "zigbee.h"
-  13          
-  14          /**
-  15          * @brief hex translate to bcd 
-  16          * @param[in] {Value_H} higher bits data 
-  17          * @param[in] {Value_L} lower bits data
-  18          * @return  bcd type data
-  19          */
-  20          unsigned char hex_to_bcd(unsigned char Value_H,unsigned char Value_L)
-  21          {
-  22   1        unsigned char bcd_value;
-  23   1        
-  24   1        if((Value_H >= '0') && (Value_H <= '9')){
-  25   2          Value_H -= '0';
-  26   2        }
-  27   1        else if((Value_H >= 'A') && (Value_H <= 'F')){
-  28   2          Value_H = Value_H - 'A' + 10;
-  29   2        }
-  30   1        else if((Value_H >= 'a') && (Value_H <= 'f')){
-  31   2          Value_H = Value_H - 'a' + 10;
-  32   2        }
-  33   1      
-  34   1        bcd_value = Value_H & 0x0f;
-  35   1        bcd_value <<= 4;
-  36   1      
-  37   1        if((Value_L >= '0') && (Value_L <= '9')){
-  38   2          Value_L -= '0';
-  39   2        }
-  40   1        else if((Value_L >= 'A') && (Value_L <= 'F')){
-  41   2          Value_L = Value_L - 'a' + 10;
-  42   2        }
-  43   1        else if((Value_L >= 'a') && (Value_L <= 'f')){
-  44   2          Value_L = Value_L - 'a' + 10;
-  45   2        }
-  46   1        
-  47   1        bcd_value |= Value_L & 0x0f;
-  48   1      
-  49   1        return bcd_value;
-  50   1      }
-  51          
-  52          /**
-  53          * @brief get string len 
-  54          * @param[in] {str} higher bits data 
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 2   
-
-  55          * @return string len 
-  56          */
-  57          unsigned long my_strlen(unsigned char *str)  
-  58          {
-  59   1        unsigned long len = 0;
-  60   1        if(str == NULL){ 
-  61   2          return 0;
-  62   2        }
-  63   1        
-  64   1        for(len = 0; *str ++ != '\0'; ){
-  65   2          len ++;
-  66   2        }
-  67   1        
-  68   1        return len;
-  69   1      }
-  70          
-  71          /**
-  72          * @brief  assign ch to the first count bytes of the memory address src
-  73          * @param[in] {src}    srouce address
-  74          * @param[in] {ch}     set value 
-  75          * @param[in] {count}  length of set address 
-  76          * @return void
-  77          */
-  78          void *my_memset(void *src,unsigned char ch,unsigned short count)
-  79          {
-  80   1        unsigned char *tmp = (unsigned char *)src;
-  81   1        if(src == NULL){
-  82   2          return NULL;
-  83   2        }
-  84   1        
-  85   1        while(count --){
-  86   2          *tmp ++ = ch;
-  87   2        }
-  88   1        return src;
-  89   1      }
-  90          
-  91          /**
-  92          * @brief copy count bytes data from src to dest
-  93          * @param[in] {src}    srouce address
-  94          * @param[in] {dest}   destination address
-  95          * @param[in] {count}  length of copy data
-  96          * @return void
-  97          */
-  98          void *my_memcpy(void *dest, const void *src, unsigned short count)  
-  99          {  
- 100   1        unsigned char *pdest = (unsigned char *)dest;  
- 101   1        const unsigned char *psrc  = (const unsigned char *)src;  
- 102   1        unsigned short i;
- 103   1        
- 104   1        if(dest == NULL || src == NULL){ 
- 105   2          return NULL;
- 106   2        }
- 107   1        
- 108   1        if((pdest <= psrc) || (pdest > psrc + count)){  
- 109   2          for(i = 0; i < count; i ++){  
- 110   3            pdest[i] = psrc[i];  
- 111   3          }  
- 112   2        }
- 113   1        else{
- 114   2          for(i = count; i > 0; i --){  
- 115   3            pdest[i - 1] = psrc[i - 1];  
- 116   3          }  
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 3   
-
- 117   2        }  
- 118   1        
- 119   1        return dest;  
- 120   1      }
- 121          
- 122          /**
- 123          * @brief copy string src to string dest
- 124          * @param[in] {src}    srouce address
- 125          * @param[in] {dest}   destination address
- 126          * @return the tail of destination 
- 127          */
- 128          char *my_strcpy(char *dest, const char *src)  
- 129          {
- 130   1        char *p = dest;
- 131   1        while(*src!='\0'){
- 132   2          *dest++ = *src++;
- 133   2        }
- 134   1        *dest = '\0';
- 135   1        return p;
- 136   1      }
- 137          
- 138          /**
- 139          * @brief compare string s1 with string s2
- 140          * @param[in] {s1}  srouce address
- 141          * @param[in] {s2}  destination address
- 142          * @return compare result
- 143          */
- 144          int my_strcmp(char *s1 , char *s2)
- 145          {
- 146   1        while( *s1 && *s2 && *s1 == *s2 ){
- 147   2          s1++;
- 148   2          s2++;
- 149   2        }
- 150   1        return *s1 - *s2;
- 151   1      }
- 152          
- 153          /**
- 154          * @brief int translate to byte
- 155          * @param[in] {number} int data 
- 156          * @param[out] {value} the result array     
- 157          * @return void
- 158          */
- 159          void int_to_byte(unsigned long number,unsigned char value[4])
- 160          {
- 161   1        value[0] = number >> 24;
- 162   1        value[1] = number >> 16;
- 163   1        value[2] = number >> 8;
- 164   1        value[3] = number & 0xff;
- 165   1      }
- 166          
- 167          /**
- 168          * @brief byte data translate to int 
- 169          * @param[in] {value}  the byte array 
- 170          * @return result of int data 
- 171          */
- 172          unsigned long byte_to_int(const unsigned char value[4])
- 173          {
- 174   1        unsigned long nubmer = 0;
- 175   1      
- 176   1        nubmer = (unsigned long)value[0];
- 177   1        nubmer <<= 8;
- 178   1        nubmer |= (unsigned long)value[1];
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 4   
-
- 179   1        nubmer <<= 8;
- 180   1        nubmer |= (unsigned long)value[2];
- 181   1        nubmer <<= 8;
- 182   1        nubmer |= (unsigned long)value[3];
- 183   1        
- 184   1        return nubmer;
- 185   1      }
- 186          
- 187          
- 188          /**
- 189          * @brief report bool type DP data to zigbee module 
- 190          * @param[in]  {dpid}  dp id
- 191          * @param[in]  {value} Data contents of dp 
- 192          * @return send result 
- 193          */
- 194          unsigned char mcu_dp_bool_update(unsigned char dpid,unsigned char value)
- 195          {
- 196   1        unsigned short length = 0;
- 197   1        
- 198   1        length = set_zigbee_uart_byte(length,dpid);
- 199   1        length = set_zigbee_uart_byte(length,DP_TYPE_BOOL);
- 200   1       
- 201   1        length = set_zigbee_uart_byte(length,0);
- 202   1        length = set_zigbee_uart_byte(length,1);
- 203   1      
- 204   1        if(value == FALSE){
- 205   2          length = set_zigbee_uart_byte(length,FALSE);
- 206   2        }
- 207   1        else{
- 208   2          length = set_zigbee_uart_byte(length,1);
- 209   2        }
- 210   1        
- 211   1        zigbee_uart_write_frame(DATA_REPORT_CMD,length);
- 212   1        
- 213   1        return SUCCESS;
- 214   1      }
- 215          
- 216          
- 217          /**
- 218          * @brief report enum type DP data to zigbee module 
- 219          * @param[in]  {dpid}  dp id
- 220          * @param[in]  {value} Data contents of dp 
- 221          * @return send result 
- 222          */
- 223          unsigned char mcu_dp_enum_update(unsigned char dpid,unsigned char value)
- 224          {
- 225   1        unsigned short length = 0;
- 226   1        
- 227   1        length = set_zigbee_uart_byte(length,dpid);
- 228   1        length = set_zigbee_uart_byte(length,DP_TYPE_ENUM);
- 229   1        //
- 230   1        length = set_zigbee_uart_byte(length,0);
- 231   1        length = set_zigbee_uart_byte(length,1);
- 232   1        //
- 233   1        length = set_zigbee_uart_byte(length,value);
- 234   1        
- 235   1        zigbee_uart_write_frame(DATA_REPORT_CMD,length);
- 236   1        
- 237   1        return SUCCESS;
- 238   1      }
- 239          
- 240          
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 5   
-
- 241          /**
- 242          * @brief report bitmap type DP data to zigbee module 
- 243          * @param[in]  {dpid}  dp id
- 244          * @param[in]  {value} Data contents of dp 
- 245          * @return send result 
- 246          */
- 247          unsigned char mcu_dp_bitmap_update(unsigned char dpid,unsigned long value)
- 248          {
- 249   1        unsigned short length = 0;
- 250   1      
- 251   1        length = set_zigbee_uart_byte(length,dpid);
- 252   1        length = set_zigbee_uart_byte(length,DP_TYPE_BITMAP);
- 253   1        //
- 254   1        length = set_zigbee_uart_byte(length,0);
- 255   1        
- 256   1        if((value | 0xff) == 0xff){
- 257   2          length = set_zigbee_uart_byte(length,1);
- 258   2          length = set_zigbee_uart_byte(length,value);
- 259   2        }
- 260   1        else if((value | 0xffff) == 0xffff){
- 261   2          length = set_zigbee_uart_byte(length,2);
- 262   2          length = set_zigbee_uart_byte(length,value >> 8);
- 263   2          length = set_zigbee_uart_byte(length,value & 0xff);
- 264   2        }
- 265   1        else{
- 266   2          length = set_zigbee_uart_byte(length,4);
- 267   2          length = set_zigbee_uart_byte(length,value >> 24);
- 268   2          length = set_zigbee_uart_byte(length,value >> 16);
- 269   2          length = set_zigbee_uart_byte(length,value >> 8);
- 270   2          length = set_zigbee_uart_byte(length,value & 0xff);
- 271   2        }    
- 272   1        
- 273   1        zigbee_uart_write_frame(DATA_REPORT_CMD,length);
- 274   1      
- 275   1        return SUCCESS;
- 276   1      }
- 277          
- 278          
- 279          /**
- 280          * @brief report fault type DP data to zigbee module 
- 281          * @param[in]  {dpid}  dp id
- 282          * @param[in]  {value} Data contents of dp 
- 283          * @return send result 
- 284          */
- 285          unsigned char mcu_dp_fault_update(unsigned char dpid,unsigned long value)
- 286          {
- 287   1        unsigned short length = 0;
- 288   1      
- 289   1        length = set_zigbee_uart_byte(length,dpid);
- 290   1        length = set_zigbee_uart_byte(length,DP_TYPE_BITMAP);
- 291   1        //
- 292   1        length = set_zigbee_uart_byte(length,0);
- 293   1        
- 294   1        if((value | 0xff) == 0xff){
- 295   2          length = set_zigbee_uart_byte(length,1);
- 296   2          length = set_zigbee_uart_byte(length,value);
- 297   2        }
- 298   1        else if((value | 0xffff) == 0xffff){
- 299   2          length = set_zigbee_uart_byte(length,2);
- 300   2          length = set_zigbee_uart_byte(length,value >> 8);
- 301   2          length = set_zigbee_uart_byte(length,value & 0xff);
- 302   2        }
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 6   
-
- 303   1        else{
- 304   2          length = set_zigbee_uart_byte(length,4);
- 305   2          length = set_zigbee_uart_byte(length,value >> 24);
- 306   2          length = set_zigbee_uart_byte(length,value >> 16);
- 307   2          length = set_zigbee_uart_byte(length,value >> 8);
- 308   2          length = set_zigbee_uart_byte(length,value & 0xff);
- 309   2        }    
- 310   1        
- 311   1        zigbee_uart_write_frame(DATA_REPORT_CMD,length);
- 312   1      
- 313   1        return SUCCESS;
- 314   1      }
- 315          
- 316          /**
- 317          * @brief report raw type DP data to zigbee module 
- 318          * @param[in]  {dpid}  dp id
- 319          * @param[in]  {value} Data contents of dp 
- 320          * @param[in]  {len} length of Data contents  
- 321          * @return send result 
- 322          */
- 323          unsigned char mcu_dp_raw_update(unsigned char dpid,const unsigned char value[],unsigned short len)
- 324          {
- 325   1        unsigned short length = 0;
- 326   1        
- 327   1        length = set_zigbee_uart_byte(length,dpid);
- 328   1        length = set_zigbee_uart_byte(length,DP_TYPE_RAW);
- 329   1        //
- 330   1        length = set_zigbee_uart_byte(length,len / 0x100);
- 331   1        length = set_zigbee_uart_byte(length,len % 0x100);
- 332   1        //
- 333   1        length = set_zigbee_uart_buffer(length,(unsigned char *)value,len);
- 334   1        
- 335   1        zigbee_uart_write_frame(DATA_REPORT_CMD,length);
- 336   1        
- 337   1        return SUCCESS;
- 338   1      }
- 339          
- 340          /**
- 341          * @brief report string type DP data to zigbee module 
- 342          * @param[in]  {dpid}  dp id
- 343          * @param[in]  {value} Data contents of dp 
- 344          * @param[in]  {len} length of Data contents  
- 345          * @return send result 
- 346          */
- 347          unsigned char mcu_dp_string_update(unsigned char dpid,const unsigned char value[],unsigned short len)
- 348          {
- 349   1        unsigned short length = 0;
- 350   1        
- 351   1        length = set_zigbee_uart_byte(length,dpid);
- 352   1        length = set_zigbee_uart_byte(length,DP_TYPE_STRING);
- 353   1        //
- 354   1        length = set_zigbee_uart_byte(length,len / 0x100);
- 355   1        length = set_zigbee_uart_byte(length,len % 0x100);
- 356   1        //
- 357   1        length = set_zigbee_uart_buffer(length,(unsigned char *)value,len);
- 358   1        
- 359   1        zigbee_uart_write_frame(DATA_REPORT_CMD,length);
- 360   1        
- 361   1        return SUCCESS;
- 362   1      }
- 363          
- 364          /**
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 7   
-
- 365          * @brief report raw type DP data to zigbee module 
- 366          * @param[in]  {dpid}  dp id
- 367          * @param[in]  {value} Data contents of dp 
- 368          * @return send result 
- 369          */
- 370          unsigned char mcu_dp_value_update(unsigned char dpid,unsigned long value)
- 371          {
- 372   1        unsigned short length = 0;
- 373   1        
- 374   1        length = set_zigbee_uart_byte(length,dpid);
- 375   1        length = set_zigbee_uart_byte(length,DP_TYPE_VALUE);
- 376   1        //
- 377   1        length = set_zigbee_uart_byte(length,0);
- 378   1        length = set_zigbee_uart_byte(length,4);
- 379   1        //
- 380   1        length = set_zigbee_uart_byte(length,value >> 24);
- 381   1        length = set_zigbee_uart_byte(length,value >> 16);
- 382   1        length = set_zigbee_uart_byte(length,value >> 8);
- 383   1        length = set_zigbee_uart_byte(length,value & 0xff);
- 384   1        
- 385   1        zigbee_uart_write_frame(DATA_REPORT_CMD,length);
- 386   1        
- 387   1        return SUCCESS;
- 388   1      }
- 389          
- 390          /**
- 391          * @brief mcu get bool type value from zigbee translate 
- 392          * @param[in]  {value}  data of dp
- 393          * @param[in]  {len} Data length
- 394          * @return  true or false
- 395          */
- 396          unsigned char mcu_get_dp_download_bool(const unsigned char value[],unsigned short len)
- 397          {
- 398   1        return(value[0]);
- 399   1      }
-*** WARNING C280 IN LINE 396 OF mcu_api.c: 'len': unreferenced local variable
- 400          
- 401          /**
- 402          * @brief mcu get enum type value from zigbee translate 
- 403          * @param[in]  {value}  data of dp
- 404          * @param[in]  {len} Data length
- 405          * @return  enum data
- 406          */
- 407          unsigned char mcu_get_dp_download_enum(const unsigned char value[],unsigned short len)
- 408          {
- 409   1        return(value[0]);
- 410   1      }
-*** WARNING C280 IN LINE 407 OF mcu_api.c: 'len': unreferenced local variable
- 411          
- 412          /**
- 413          * @brief mcu get value type value from zigbee translate 
- 414          * @param[in]  {value}  data of dp
- 415          * @param[in]  {len} Data length
- 416          * @return  value data
- 417          */
- 418          unsigned long mcu_get_dp_download_value(const unsigned char value[],unsigned short len)
- 419          {
- 420   1        return(byte_to_int(value));
- 421   1      }
-*** WARNING C280 IN LINE 418 OF mcu_api.c: 'len': unreferenced local variable
- 422          
- 423          
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 8   
-
- 424          /**
- 425          * @brief mcu start zigbee module test 
- 426          * @param[in]  {channel} test channel usually 11
- 427          * @return void
- 428          */
- 429          void mcu_start_zigbee_test(unsigned char channel)
- 430          {
- 431   1        zigbee_uart_tx_buf[DATA_START] = channel; 
- 432   1        zigbee_uart_write_frame(ZIGBEE_RF_TEST_CMD,1);
- 433   1      }
- 434          
- 435          /**
- 436          * @brief mcu reset zigbee module 
- 437          * @param[in]  {void} 
- 438          * @return void
- 439          */
- 440          void mcu_reset_zigbee(void)
- 441          {
- 442   1        unsigned short length = 0;
- 443   1      
- 444   1        length = set_zigbee_uart_byte(length,0);
- 445   1        zigbee_uart_write_frame(ZIGBEE_CFG_CMD, length);
- 446   1      }
- 447          
- 448          /**
- 449          * @brief mcu start zigbee module 
- 450          * this commond must be call after reveived checking proudect info, or after get zigbee network info
- 451          * @param[in]  {void} 
- 452          * @return void
- 453          */
- 454          void mcu_network_start(void)
- 455          {
- 456   1        unsigned short length = 0;
- 457   1      
- 458   1        length = set_zigbee_uart_byte(length,1);
- 459   1        zigbee_uart_write_frame(ZIGBEE_CFG_CMD, length);
- 460   1      }
- 461          
- 462          /**
- 463          * @brief copy receive data from uart receive interrupt
- 464          * @param[in]  {value} Data received from interrupt
- 465          * @return void 
- 466          */
- 467          void uart_receive_input(unsigned char value)
- 468          {
- 469   1        //#error "please call this fuction in the interrupt fuction of serial receive, and delete this line"
- 470   1      
- 471   1          if(1 == queue_out - queue_in) {
- 472   2              //queue full
- 473   2          }else if((queue_in > queue_out) && ((queue_in - queue_out) >= sizeof(zigbee_queue_buf))) {
- 474   2              //queue full
- 475   2          }else {
- 476   2              //queue not full
- 477   2              if(queue_in >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))){
- 478   3                  queue_in = (unsigned char *)(zigbee_queue_buf);
- 479   3              }
- 480   2              *queue_in ++ = value;
- 481   2          }
- 482   1      }
- 483          
- 484          
- 485          /**
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 9   
-
- 486          * @brief init paramter and set rx_buf with zero
- 487          * @param[in]  {void}
- 488          * @return void 
- 489          */
- 490          void zigbee_protocol_init(void)
- 491          {
- 492   1       // #error "please call this fuction in main init"
- 493   1      
- 494   1        queue_in = (unsigned char *)zigbee_queue_buf;
- 495   1        queue_out = (unsigned char *)zigbee_queue_buf;
- 496   1      }
- 497          
- 498          /**
- 499          * @brief read byte from zigbee_queue_buf array
- 500          * @param[in]  {void}
- 501          * @return read byte value
- 502          */
- 503          unsigned char Queue_Read_Byte(void)
- 504          {
- 505   1          unsigned char value;
- 506   1          
- 507   1          if(queue_out != queue_in) {
- 508   2              //have data in queue
- 509   2              if(queue_out >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))) {
- 510   3                  queue_out = (unsigned char *)(zigbee_queue_buf);
- 511   3              }
- 512   2              value = *queue_out ++;   
- 513   2          }
- 514   1          
- 515   1          return value;
- 516   1      }
- 517          
- 518          /**
- 519           * @brief  check rx buffer is empty or not
- 520           * @param  Null
- 521           * @return the queue state
- 522           */
- 523          unsigned char with_data_rxbuff(void)
- 524          {
- 525   1          if(queue_out != queue_in)
- 526   1              return 1;
- 527   1          else
- 528   1              return 0;
- 529   1      }
- 530          
- 531          
- 532          /**
- 533          * @brief uart receive data handle, call this function at mian loop 
- 534          * @param[in]  {void}
- 535          * @return void 
- 536          */
- 537          void zigbee_uart_service(void)
- 538          {
- 539   1          //#error "please call this fucntion in main while(1){}, and delete this line" 
- 540   1          static unsigned short rx_in = 0;
- 541   1          unsigned short offset = 0;
- 542   1          unsigned short rx_value_len = 0;  
- 543   1          unsigned short protocol_version = 0, protocol_head_len = PROTOCOL_HEAD;
- 544   1      
- 545   1          while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){
- 546   2              zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte();
- 547   2          }
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 10  
-
- 548   1      
- 549   1          if(rx_in < PROTOCOL_HEAD){
- 550   2              return;
- 551   2          }
- 552   1      
- 553   1          while((rx_in - offset) >= PROTOCOL_HEAD){
- 554   2              if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){
- 555   3                  offset++;
- 556   3                  continue;
- 557   3              }
- 558   2      
- 559   2              if(zigbee_uart_rx_buf[offset + HEAD_SECOND] != SECOND_FRAME_HEAD){
- 560   3                  offset++;
- 561   3                  continue;
- 562   3              }
- 563   2      
- 564   2              protocol_version = zigbee_uart_rx_buf[offset + PROTOCOL_VERSION];
- 565   2      
- 566   2             if(protocol_version != SERIAL_PROTOCOL_VER) /*version 2 is more than two byte  sequence number than
-             - version 1*/
- 567   2              {
- 568   3                  offset += 2; 
- 569   3                  continue;
- 570   3              }
- 571   2      
- 572   2              rx_value_len =  zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100;
- 573   2              rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD);
- 574   2      
- 575   2              if(rx_value_len > sizeof(zigbee_uart_rx_buf)){
- 576   3                  offset += 3;
- 577   3                  continue;
- 578   3              }
- 579   2      
- 580   2              if((rx_in - offset) < rx_value_len){
- 581   3                  break;
- 582   3              }
- 583   2      
- 584   2              if( get_check_sum((unsigned char *)zigbee_uart_rx_buf + offset, rx_value_len - 1) != zigbee_uart_r
-             -x_buf[offset + rx_value_len - 1]){
- 585   3                  offset += 3; 
- 586   3                  continue;
- 587   3              }
- 588   2      
- 589   2              data_handle(offset);//数据处理
- 590   2              offset += rx_value_len;
- 591   2          }
- 592   1          rx_in -= offset;
- 593   1      
- 594   1          if(rx_in > 0){
- 595   2          if((offset == 0)  && (rx_in >= sizeof(zigbee_uart_rx_buf))){
- 596   3                  offset++;
- 597   3                  rx_in -= offset;
- 598   3              }
- 599   2          my_memcpy((char*)zigbee_uart_rx_buf, (const char *)zigbee_uart_rx_buf + offset, rx_in);
- 600   2          }
- 601   1      }
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =   3430    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =      2     106
-C51 COMPILER V9.53.0.0   MCU_API                                                           04/27/2024 11:38:08 PAGE 11  
-
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  3 WARNING(S),  0 ERROR(S)

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 2560
Projects/macro/switch_ota_app_V1.0.1/Listings/protocol.lst


+ 0 - 62
Projects/macro/switch_ota_app_V1.0.1/Listings/sTimeout.lst

@@ -1,62 +0,0 @@
-C51 COMPILER V9.53.0.0   STIMEOUT                                                          04/27/2024 11:38:09 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE STIMEOUT
-OBJECT MODULE PLACED IN .\Objects\sTimeout.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE sTimeout.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DE
-                    -BUG OBJECTEXTEND PRINT(.\Listings\sTimeout.lst) TABS(2) OBJECT(.\Objects\sTimeout.obj)
-
-line level    source
-
-   1          /*******************************************************************************
-   2          *
-   3          *   Timeout 
-   4          *   Soft version:   V1.00
-   5          *   File Name:      sTimeout.c
-   6          *   Author   :      zzw (zhangzw_3@163.com)
-   7          *   creation date:  2022-07-20
-   8          * module description: 
-   9          *   Copyright (C) reserve
-  10          *
-  11          ********************************************************************************/
-  12          #include "sTimeout.h"
-  13          
-  14          /*******************************************************************************
-  15          Function:     sTimeout()
-  16          Description:    Check for timeout using the given tick counter and timeout value
-  17                  Force timeout if timeout value is zero
-  18          Calls:      
-  19          Called By:    
-  20          Input:      *varp -- the given tick counter, tout -- Force timeout
-  21          Output:     BOOL
-  22          Return:     return 1 when timeout  
-  23          Others:     no
-  24          ********************************************************************************/
-  25          BOOL sTimeout(unsigned int *varp, unsigned int tout)
-  26          {
-  27   1          unsigned int diff;
-  28   1      
-  29   1          diff = tickcount - *varp;
-  30   1          if (!tout || diff >= tout)
-  31   1          {
-  32   2              *varp = tickcount;
-  33   2              return 1;
-  34   2          }
-  35   1          return 0;
-  36   1      }
-  37          
-  38          /* EOF */ 
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =     63    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =   ----       2
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

+ 0 - 802
Projects/macro/switch_ota_app_V1.0.1/Listings/system.lst

@@ -1,802 +0,0 @@
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE SYSTEM
-OBJECT MODULE PLACED IN .\Objects\system.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE system.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DEBU
-                    -G OBJECTEXTEND PRINT(.\Listings\system.lst) TABS(2) OBJECT(.\Objects\system.obj)
-
-line level    source
-
-   1          /**
-   2          * @file  system.c
-   3          * @brief this file contains frame analysis of communication between MCU and zigbee 
-   4          * and construct these functions which used send data in a frame format
-   5          * @author qinlang
-   6          * @date 2022.05.06
-   7          * @par email:
-   8          * @par email:qinlang.chen@tuya.com
-   9          * @copyright HANGZHOU TUYA INFORMATION TECHNOLOGY CO.,LTD
-  10          * @par company
-  11          * http://www.tuya.com
-  12          */
-  13          
-  14          
-  15          #define SYSTEM_GLOBAL
-  16          
-  17          #include "zigbee.h"
-  18          
-  19          
-  20          extern const DOWNLOAD_CMD_S download_cmd[];
-  21          
-  22          
-  23          #ifdef SUPPORT_MCU_RTC_CHECK
-              const unsigned char mon_table[12]={31,28,31,30,31,30,31,31,30,31,30,31};  
-              #endif
-  26          
-  27          #ifdef CHECK_MCU_TYPE
-              MCU_TYPE_E mcu_type = MCU_TYPE_DC_POWER;   
-              #endif
-  30          
-  31          
-  32          static volatile unsigned short global_seq_num;
-  33          
-  34          #ifdef CHECK_MCU_TYPE
-              static void response_mcu_type(void);
-              #endif
-  37          
-  38          
-  39          #ifdef SET_ZIGBEE_NWK_PARAMETER
-              nwk_parameter_t  nwk_paremeter;
-              #endif
-  42          
-  43          
-  44          
-  45          #ifdef SET_ZIGBEE_NWK_PARAMETER
-              void init_nwk_paremeter(void)
-              {
-                #error "please call this fuction in main init"
-                nwk_paremeter.fast_poll_period = 0xfffe;
-                nwk_paremeter.heart_period = 0xfffe;
-                nwk_paremeter.join_nwk_time = 0xfffe;
-                nwk_paremeter.rejion_period = 0xfffe;
-                nwk_paremeter.poll_period = 0xfffe;
-                nwk_paremeter.fast_poll_period = 0xfffe;
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 2   
-
-                nwk_paremeter.poll_failure_times = 0xfe;
-                nwk_paremeter.rejoin_try_times = 0xfe;
-                nwk_paremeter.app_trigger_rejoin = 0xfe;
-                nwk_paremeter.rf_send_power = 0xfe;
-              }
-              #endif
-  61          
-  62          /**
-  63          * @brief get frame seq_num
-  64          * @param[in] {void}
-  65          * @return seq_num  
-  66          */
-  67          static unsigned short seq_num_get(void)
-  68          {
-  69   1        global_seq_num ++;
-  70   1        if(global_seq_num > 0xfff0){
-  71   2          global_seq_num = 1;
-  72   2        }
-  73   1        return global_seq_num;
-  74   1      }
-  75          
-  76          /**
-  77          * @brief padding a byte in send buf base on dest
-  78          * @param[in] {dest} the location of padding byte 
-  79          * @param[in] {byte} padding byte 
-  80          * @return  sum of frame after this operation 
-  81          */
-  82          unsigned short set_zigbee_uart_byte(unsigned short dest, unsigned char byte)
-  83          {
-  84   1        unsigned char *obj = (unsigned char *)zigbee_uart_tx_buf + DATA_START + dest;
-  85   1        
-  86   1        *obj = byte;
-  87   1        dest += 1;
-  88   1        
-  89   1        return dest;
-  90   1      }
-  91          
-  92          /**
-  93          * @brief padding buf in send buf base on dest
-  94          * @param[in] {dest} the location of padding 
-  95          * @param[in] {src}  the head address of padding buf
-  96          * @param[in] {len}  the length of padding buf
-  97          * @return  sum of frame after this operation 
-  98          */
-  99          unsigned short set_zigbee_uart_buffer(unsigned short dest, unsigned char *src, unsigned short len)
- 100          {
- 101   1        unsigned char *obj = (unsigned char *)zigbee_uart_tx_buf + DATA_START + dest;
- 102   1        
- 103   1        my_memcpy(obj,src,len);
- 104   1        
- 105   1        dest += len;
- 106   1        return dest;
- 107   1      }
- 108          
- 109          /**
- 110          * @brief send len bytes data
- 111          * @param[in] {in} the head address of send data
- 112          * @param[in] {len}  the length of send data
- 113          * @return  void
- 114          */
- 115          void zigbee_uart_write_data(unsigned char *in, unsigned short len)
- 116          {
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 3   
-
- 117   1        if((NULL == in) || (0 == len)){
- 118   2          return;
- 119   2        }
- 120   1        
- 121   1        while(len --){
- 122   2          uart_transmit_output(*in);
- 123   2          in ++;
- 124   2        }
- 125   1      }
- 126          
- 127          /**
- 128          * @brief calculate the sum of the array
- 129          * @param[in] {pack} the head address of array
- 130          * @param[in] {pack_len}  the length of  array
- 131          * @return  sum
- 132          */
- 133          unsigned char get_check_sum(unsigned char *pack, unsigned short pack_len)
- 134          {
- 135   1        unsigned short i;
- 136   1        unsigned char check_sum = 0;
- 137   1        
- 138   1        for(i = 0; i < pack_len; i ++){
- 139   2          check_sum += *pack ++;
- 140   2        }
- 141   1        
- 142   1        return check_sum;
- 143   1      }
- 144          
- 145          /**
- 146          * @brief send a frame data 
- 147          * @param[in] {fr_cmd} frame cmd id
- 148          * @param[in] {len}    len of frame data 
- 149          * @return  void
- 150          */
- 151          void zigbee_uart_write_frame(unsigned char fr_cmd, unsigned short len)
- 152          {
- 153   1        unsigned char check_sum = 0;  
- 154   1        unsigned short  seq;
- 155   1        
- 156   1        zigbee_uart_tx_buf[HEAD_FIRST] = FIRST_FRAME_HEAD;
- 157   1        zigbee_uart_tx_buf[HEAD_SECOND] = SECOND_FRAME_HEAD;
- 158   1        zigbee_uart_tx_buf[PROTOCOL_VERSION] = SERIAL_PROTOCOL_VER;
- 159   1        
- 160   1       
- 161   1        seq = seq_num_get();
- 162   1        zigbee_uart_tx_buf[SEQ_HIGH] = (seq << 8);
- 163   1        zigbee_uart_tx_buf[SEQ_LOW] = (seq & 0xff); 
- 164   1      
- 165   1        
- 166   1        zigbee_uart_tx_buf[FRAME_TYPE] = fr_cmd;
- 167   1        zigbee_uart_tx_buf[LENGTH_HIGH] = len >> 8;
- 168   1        zigbee_uart_tx_buf[LENGTH_LOW] = len & 0xff;
- 169   1        
- 170   1        len += PROTOCOL_HEAD;
- 171   1        
- 172   1        check_sum = get_check_sum((unsigned char *)zigbee_uart_tx_buf, len-1);
- 173   1        zigbee_uart_tx_buf[len -1] = check_sum;
- 174   1        
- 175   1        zigbee_uart_write_data((unsigned char *)zigbee_uart_tx_buf, len);
- 176   1      }
- 177          
- 178          /**
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 4   
-
- 179          * @brief send product info and mcu version 
- 180          * @param[in] {void} 
- 181          * @return  void
- 182          */
- 183          static void product_info_update(void)
- 184          {
- 185   1        unsigned short length = 0;
- 186   1        length = set_zigbee_uart_buffer(length, "{\"p\":\"", my_strlen("{\"p\":\""));
- 187   1        length = set_zigbee_uart_buffer(length,(unsigned char *)PRODUCT_KEY,my_strlen((unsigned char *)PRODUCT_K
-             -EY));
- 188   1        length = set_zigbee_uart_buffer(length, "\",\"v\":\"", my_strlen("\",\"v\":\""));
- 189   1        length = set_zigbee_uart_buffer(length,(unsigned char *)MCU_VER,my_strlen((unsigned char *)MCU_VER));
- 190   1        length = set_zigbee_uart_buffer(length, "\"}", my_strlen("\"}"));
- 191   1        zigbee_uart_write_frame(PRODUCT_INFO_CMD, length);
- 192   1      }
- 193          
- 194          /**
- 195          * @brief get the serial number of dpid in dp array  
- 196          * @param[in] {dpid} dp id 
- 197          * @return  serial number of dp 
- 198          */
- 199          static unsigned char get_dowmload_dpid_index(unsigned char dpid)
- 200          {
- 201   1        unsigned char index;
- 202   1        unsigned char total = get_download_cmd_total();
- 203   1        
- 204   1        for(index = 0; index < total; index ++){
- 205   2          if(download_cmd[index].dp_id == dpid){
- 206   3            break;
- 207   3          }
- 208   2        }
- 209   1        return index;
- 210   1      }
- 211          
- 212          /**
- 213          * @brief handle received dp data from zigbee module
- 214          * @param[in] {value} dp data
- 215          * @return  result of handle
- 216          */
- 217          static unsigned char zigbee_data_point_handle(const unsigned char value[])
- 218          {
- 219   1        unsigned char dp_id,index;
- 220   1        unsigned char dp_type;
- 221   1        unsigned char ret;
- 222   1        unsigned short dp_len;
- 223   1        
- 224   1        dp_id = value[0];
- 225   1        dp_type = value[1];
- 226   1        dp_len = value[2] * 0x100;
- 227   1        dp_len += value[3];
- 228   1        
- 229   1      
- 230   1        index = get_dowmload_dpid_index(dp_id);
- 231   1      
- 232   1        if(dp_type != download_cmd[index].dp_type){
- 233   2          return FALSE;
- 234   2        }
- 235   1        else{
- 236   2          ret = dp_download_handle(dp_id,value + 4,dp_len);
- 237   2        }
- 238   1        
- 239   1        return ret;
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 5   
-
- 240   1      }
- 241          
- 242          /**
- 243          * @brief handle received frame from zigbee module baseon frame cmd id
- 244          * @param[in] {void}
- 245          * @return  result of handle
- 246          */
- 247          int data_handle(unsigned short offset)
- 248          {
- 249   1          unsigned char cmd_type = 0;
- 250   1          unsigned short total_len = 0, seq_num = 0;
- 251   1          unsigned short dp_len;  
- 252   1          unsigned char ret;
- 253   1        unsigned short i;
- 254   1        
- 255   1          cmd_type  = zigbee_uart_rx_buf[offset + FRAME_TYPE];
- 256   1      
- 257   1          total_len  = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100;
- 258   1          total_len += zigbee_uart_rx_buf[offset + LENGTH_LOW];
- 259   1          
- 260   1        seq_num = zigbee_uart_rx_buf[offset + SEQ_HIGH] << 8;
- 261   1          seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW];
- 262   1      
- 263   1        switch(cmd_type)
- 264   1        {
- 265   2            case ZIGBEE_FACTORY_NEW_CMD:{
- 266   3              zigbee_notify_factory_new_hanlde(); // response,APP删除设备,这里确认是否恢复出厂设置
-*** WARNING C206 IN LINE 266 OF system.c: 'zigbee_notify_factory_new_hanlde': missing function-prototype
- 267   3          }
- 268   2          break;
- 269   2      
- 270   2          case PRODUCT_INFO_CMD:{                                   
- 271   3            product_info_update();
- 272   3          }
- 273   2          break;
- 274   2           
- 275   2          case ZIGBEE_STATE_CMD:{    
- 276   3            unsigned char current_state = zigbee_uart_rx_buf[offset + DATA_START];                          
- 277   3            zigbee_work_state_event(current_state);
- 278   3          }
- 279   2          break;
- 280   2          
- 281   2          case ZIGBEE_CFG_CMD:{                                   
- 282   3            mcu_reset_zigbee_event(zigbee_uart_rx_buf[offset + DATA_START]);
- 283   3          }
- 284   2          break;
- 285   2      
- 286   2          case ZIGBEE_DATA_REQ_CMD:{                               
- 287   3            for(i = 0;i < total_len;){
- 288   4              dp_len = zigbee_uart_rx_buf[offset + DATA_START + i + 2] * 0x100;
- 289   4              dp_len += zigbee_uart_rx_buf[offset + DATA_START + i + 3];
- 290   4              ret = zigbee_data_point_handle((unsigned char *)zigbee_uart_rx_buf + offset + DATA_START + i);
- 291   4                
- 292   4              if(SUCCESS == ret){
- 293   5                  
- 294   5              }
- 295   4              else{
- 296   5                  
- 297   5              }      
- 298   4              i += (dp_len + 4);  
- 299   4            } 
- 300   3          }   
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 6   
-
- 301   2          break;
- 302   2          case DATA_DATA_RES_CMD:{
- 303   3        
- 304   3          } 
- 305   2          case DATA_REPORT_CMD:{
- 306   3      
- 307   3          } 
- 308   2          break;  
- 309   2      
- 310   2          case QUERY_KEY_INFO_CMD:{
- 311   3      
- 312   3          }
- 313   2          break;
- 314   2      
- 315   2          case CALL_SCENE_CMD:{
- 316   3      
- 317   3          }
- 318   2          break;
- 319   2      
- 320   2          case ZIGBEE_RF_TEST_CMD:{
- 321   3                 
- 322   3          }
- 323   2          break;
- 324   2          
- 325   2          case MCU_OTA_VERSION_CMD:{
- 326   3            response_mcu_ota_version_event();       
- 327   3          }
- 328   2          break;
- 329   2      #ifdef SUPPORT_MCU_OTA    
- 330   2          case MCU_OTA_NOTIFY_CMD:{
- 331   3            response_mcu_ota_notify_event(offset);
- 332   3          }
- 333   2          break;
- 334   2          
- 335   2          case MCU_OTA_DATA_REQUEST_CMD:{
- 336   3            mcu_ota_fw_request_event(offset);
- 337   3              }
- 338   2          break;
- 339   2          
- 340   2          case MCU_OTA_RESULT_CMD:{
- 341   3            mcu_ota_result_event(offset);
- 342   3          }
- 343   2          break;
- 344   2      #endif
- 345   2          case CHECK_MCU_TYPE_CMD:
- 346   2          {
- 347   3      #ifdef CHECK_MCU_TYPE
-                    response_mcu_type();
-              #endif
- 350   3          }
- 351   2          break;
- 352   2      
- 353   2          case TIME_GET_CMD:{
- 354   3      #ifdef SUPPORT_MCU_RTC_CHECK
-                    mcu_write_rtctime((unsigned char *)(zigbee_uart_rx_buf + offset + DATA_START));
-              #endif
- 357   3          }
- 358   2          break;
- 359   2          
- 360   2      #ifdef  BEACON_TEST
-                  case SEND_BEACON_NOTIFY_CMD:{
-                    mcu_received_beacon_test_handle();
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 7   
-
-                  }
-                  break;
-              #endif
- 366   2      
- 367   2          case READ_MCU_DP_DATA_CMD:{ // gw read DP
- 368   3            all_data_update();
- 369   3          }
- 370   2          break;
- 371   2      
- 372   2          default:
- 373   2            return 0;
- 374   2        }
- 375   1        return 1;
- 376   1      }
- 377          
- 378          /**
- 379          * @brief mcu send a cmd which used to making zigbee module reset
- 380          * @param[in] {void}
- 381          * @return  void
- 382          */
- 383          void mcu_exit_zigbee(void)
- 384          {
- 385   1        unsigned short length = 0;
- 386   1        length = set_zigbee_uart_byte(length,0x00);
- 387   1        zigbee_uart_write_frame(ZIGBEE_CFG_CMD, length);
- 388   1      }
- 389          
- 390          /**
- 391          * @brief mcu send this commond starting zigbee module join network
- 392          * this commond must be call after reveived checking proudect info, or after get zigbee network info
- 393          * @param[in] {void}
- 394          * @return  void
- 395          */
- 396          void mcu_join_zigbee(void)
- 397          {
- 398   1        unsigned short length = 0;
- 399   1        length = set_zigbee_uart_byte(length,0x01);
- 400   1          zigbee_uart_write_frame(ZIGBEE_CFG_CMD, length);
- 401   1      }
- 402          
- 403          /**
- 404          * @brief mcu send a cmd which used to getting zigbee network state 
- 405          * @param[in] {void}
- 406          * @return  void
- 407          */
- 408          void mcu_get_zigbee_state(void)
- 409          {
- 410   1        zigbee_uart_write_frame(ZIGBEE_STATE_CMD, 0);
- 411   1      }
- 412          
- 413          
- 414          #ifdef CHECK_MCU_TYPE
-              /**
-              * @brief response zigbee check mcu type cmd 
-              * @param[in] {void}
-              * @return  void
-              */
-              static void response_mcu_type(void)
-              {
-                unsigned short length = 0;
-                length = set_zigbee_uart_byte(length,mcu_type);
-                zigbee_uart_write_frame(CHECK_MCU_TYPE_CMD, length);
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 8   
-
-              }   
-              #endif
- 427          
- 428          
- 429          
- 430          #ifdef SUPPORT_MCU_RTC_CHECK
-              /**
-              * @brief mcu send a cmd which used to getting timestamp
-              * @param[in] {void}
-              * @return void
-              */
-              void mcu_get_system_time(void)
-              {
-                zigbee_uart_write_frame(TIME_GET_CMD,0);
-              }
-              
-              /**
-              * @brief is a leap year
-              * @param[in] {pyear}
-              * @return  leap year return 1 
-              */
-              static unsigned char Is_Leap_Year(unsigned int pyear)
-              {
-                if(0 == (pyear%4)) {
-                  if(0 == (pyear%100)){
-                    if(0 == (pyear%400))   
-                      return 1;
-                    else    
-                      return 0;
-                  }
-                  else
-                    return 1; 
-                }
-                else
-                  return 0;
-              }
-              
-              /**
-              * @brief get calendar time from timestamp
-              * @param[in]  {secCount} input timestamp 
-              * @param[out] {calendar} output calendar 
-              * @return  result of changing
-              */
-              static unsigned char RTC_Get(unsigned int secCount,_calendar_obj *calendar)
-              {
-                static unsigned int dayCount=0;
-                unsigned int tmp=0; 
-                unsigned int tmp1=0;  
-              
-                tmp=secCount/86400;
-              
-                if(dayCount!=tmp){
-                  dayCount=tmp;
-                  tmp1=1970;
-                
-                  while(tmp>=365){
-                    if(Is_Leap_Year(tmp1)){
-                      if(tmp>=366)    
-                        tmp-=366;
-                      else{
-                        break;
-                      }
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 9   
-
-                    }
-                    else
-                      tmp-=365;
-                    tmp1++; 
-                  }
-                  calendar->w_year=tmp1;
-                  tmp1=0;
-                  
-                  while(tmp>=28){
-                    if(Is_Leap_Year(calendar->w_year)&&tmp1==1){
-                      if(tmp>=29) 
-                        tmp-=29;  
-                      else
-                        break;
-                    }
-                    else{
-                      if(tmp>=mon_table[tmp1])
-                        tmp-=mon_table[tmp1]; 
-                      else
-                        break;
-                    }
-                    tmp1++;
-                  }
-                  calendar->w_month=tmp1+1; 
-                  calendar->w_date=tmp+1;
-                }
-              
-                tmp=secCount%86400;
-                calendar->hour=tmp/3600;
-                calendar->min=(tmp%3600)/60;
-                calendar->sec=(tmp%3600)%60;
-              
-                return 0;
-              }
-              
-              /**
-              * @brief calculta time from frame 
-              * @param[in] {void}
-              * @return  void
-              */
-              void zigbee_timestamp_to_time(void) 
-              {
-                unsigned int time_stamp = byte_to_int(timestamp);
-                RTC_Get(time_stamp,&_time); 
-              }
-              #endif
- 533          
- 534          #ifdef BROADCAST_DATA_SEND
-              /**
-              * @brief mcu can send a broadcast data in zigbee network
-              * @param[in] {buf} array of buf which to be sended
-              * @param[in] {buf_len} send buf length
-              * @return void
-              */
-               void mcu_send_broadcast_data(unsigned char buf[], unsigned char buf_len)
-              {
-                 unsigned short length = 0;
-                   length = set_zigbee_uart_buffer(length,(unsigned char *)buf, buf_len);
-                   zigbee_uart_write_frame(SEND_BROADCAST_DATA_CMD,length);
-              }
-              #endif
- 548          
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 10  
-
- 549          #ifdef SET_ZIGBEE_NWK_PARAMETER
-              /**
-              * @brief mcu can set zigbee nwk parameter
-              * @param[in] {parameter_t *} 
-              * @param
-              * @return void
-              */
-               void mcu_set_zigbee_nwk_parameter(nwk_parameter_t *Pparameter)
-              {
-                unsigned short length = 0;
-                #error "please set network parameter in here, when zigbee received this message, it will start reboot"
-                 //Pparameter->app_trigger_rejoin  = 0x00;
-                   //Pparameter->fast_poll_period = 0x00;
-              
-                   length = set_zigbee_uart_byte(length,(Pparameter->heart_period >>8)); 
-                 length = set_zigbee_uart_byte(length,(Pparameter->heart_period)); 
-              
-                 length = set_zigbee_uart_byte(length,(Pparameter->join_nwk_time >>8)); 
-                 length = set_zigbee_uart_byte(length,(Pparameter->join_nwk_time)); 
-              
-                 length = set_zigbee_uart_byte(length,(Pparameter->rejion_period >>8)); 
-                   length = set_zigbee_uart_byte(length,(Pparameter->rejion_period)); 
-              
-                   length = set_zigbee_uart_byte(length,(Pparameter->poll_period >>8)); 
-                 length = set_zigbee_uart_byte(length,(Pparameter->poll_period));
-              
-                 length = set_zigbee_uart_byte(length,(Pparameter->fast_poll_period >>8)); 
-                 length = set_zigbee_uart_byte(length,(Pparameter->fast_poll_period)); 
-              
-                 length = set_zigbee_uart_byte(length,(Pparameter->poll_failure_times)); 
-              
-                 length = set_zigbee_uart_byte(length,(Pparameter->app_trigger_rejoin)); 
-              
-                 length = set_zigbee_uart_byte(length,(Pparameter->rejoin_try_times)); 
-              
-                 length = set_zigbee_uart_byte(length,(Pparameter->rf_send_power)); 
-                   zigbee_uart_write_frame(SET_ZIGBEE_NEK_PARAMETER_CMD,length);
-              }
-              #endif
- 588          
- 589          /**
- 590          * @brief mcu version string to char
- 591          * @param[in] {void}
- 592          * @return  result of version
- 593          */
- 594          unsigned char get_current_mcu_fw_ver(void)
- 595          {
- 596   1        /*unsigned char *fw_ver = (unsigned char*) MCU_VER; //Current version
- 597   1        unsigned char current_mcu_fw_ver = 0;
- 598   1        if(assic_to_hex(fw_ver[5]) == -1){ // 3 number
- 599   1          current_mcu_fw_ver = (assic_to_hex(fw_ver[0]) & 0x03) << 6; //high ver
- 600   1          current_mcu_fw_ver |= (assic_to_hex(fw_ver[2]) & 0x03) << 4;  //mid ver
- 601   1          current_mcu_fw_ver |= (assic_to_hex(fw_ver[4]) & 0x0F); //low ver
- 602   1        }
- 603   1        else{ // 4 number
- 604   1          current_mcu_fw_ver = (assic_to_hex(fw_ver[0]) & 0x03) << 6; //high ver
- 605   1          current_mcu_fw_ver |= (assic_to_hex(fw_ver[2]) & 0x03) << 4;  //mid ver
- 606   1          current_mcu_fw_ver |= ((assic_to_hex(fw_ver[4])*10 + assic_to_hex(fw_ver[5])) & 0x0F);  //low ver
- 607   1        }
- 608   1        return current_mcu_fw_ver;*/
- 609   1        //modified by zzw 优化版本查询函数
- 610   1        //unsigned char *fw_ver = (unsigned char*) MCU_VER; //Current version
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 11  
-
- 611   1          unsigned char fw_ver[10];//modified by zzw 20240326
- 612   1        unsigned char current_mcu_fw_ver = 0;
- 613   1        
- 614   1          my_memcpy(fw_ver, (unsigned char *)MCU_VER,my_strlen((unsigned char *)MCU_VER));
- 615   1        
- 616   1        
- 617   1        if(my_strlen((unsigned char *)MCU_VER)<=5)//1.0.1,5个字节
- 618   1        {
- 619   2        // 3 number
- 620   2          current_mcu_fw_ver = (assic_to_hex(fw_ver[0]) & 0x03) << 6; //high ver
- 621   2          current_mcu_fw_ver |= (assic_to_hex(fw_ver[2]) & 0x03) << 4;  //mid ver
- 622   2          current_mcu_fw_ver |= (assic_to_hex(fw_ver[4]) & 0x0F); //low ver   
- 623   2        }
- 624   1        else
- 625   1        {
- 626   2          // 4 number
- 627   2          current_mcu_fw_ver = (assic_to_hex(fw_ver[0]) & 0x03) << 6; //high ver
- 628   2          current_mcu_fw_ver |= (assic_to_hex(fw_ver[2]) & 0x03) << 4;  //mid ver
- 629   2          current_mcu_fw_ver |= ((assic_to_hex(fw_ver[4])*10 + assic_to_hex(fw_ver[5])) & 0x0F);  //low ver
- 630   2        
- 631   2        }
- 632   1        
- 633   1        /*if((fw_ver[4] >= 0x30)&&(fw_ver[5] >= 0x30))
- 634   1        { // 4 number
- 635   1          current_mcu_fw_ver = (assic_to_hex(fw_ver[0]) & 0x03) << 6; //high ver
- 636   1          current_mcu_fw_ver |= (assic_to_hex(fw_ver[2]) & 0x03) << 4;  //mid ver
- 637   1          current_mcu_fw_ver |= ((assic_to_hex(fw_ver[4])*10 + assic_to_hex(fw_ver[5])) & 0x0F);  //low ver
- 638   1          
- 639   1        }
- 640   1        else
- 641   1        { // 3 number
- 642   1          current_mcu_fw_ver = (assic_to_hex(fw_ver[0]) & 0x03) << 6; //high ver
- 643   1          current_mcu_fw_ver |= (assic_to_hex(fw_ver[2]) & 0x03) << 4;  //mid ver
- 644   1          current_mcu_fw_ver |= (assic_to_hex(fw_ver[4]) & 0x0F); //low ver   
- 645   1        }*/
- 646   1        return current_mcu_fw_ver;
- 647   1      }
- 648          
- 649          #ifdef SUPPORT_MCU_OTA
- 650          /**
- 651          * @brief get mcu pid data saved in current_mcu_pid
- 652          * @param[in] {void}
- 653          * @return  result of handle
- 654          */
- 655          void current_mcu_fw_pid(void)
- 656          {
- 657   1        unsigned char i = 0;
- 658   1        //unsigned char *fw_pid = (unsigned char*) PRODUCT_KEY;
- 659   1        unsigned char fw_pid[10];//modified by zzw 20240326
- 660   1      
- 661   1      
- 662   1        my_memcpy(fw_pid,(unsigned char *)PRODUCT_KEY,my_strlen((unsigned char *)PRODUCT_KEY));
- 663   1        while(i < 8){
- 664   2          current_mcu_pid[i] = fw_pid[i];
- 665   2          i++;
- 666   2        }
- 667   1      }
- 668          
- 669          /**
- 670          * @brief mcu ota offset requset 
- 671          * @param[in] {packet_offset}  packet offset 
- 672          * @return  viod
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 12  
-
- 673          */
- 674          //when call this function, should set timeout event, if not received zigbee send response should res
- 675          void mcu_ota_fw_request(void)
- 676          {
- 677   1        unsigned char i = 0;
- 678   1        unsigned short length = 0;
- 679   1      
- 680   1        if(ota_fw_info.mcu_current_offset >= ota_fw_info.mcu_ota_fw_size)   //outside
- 681   1          return;
- 682   1        while(i < 8){
- 683   2          length = set_zigbee_uart_byte(length,ota_fw_info.mcu_ota_pid[i]); //ota fw pid
- 684   2          i++;
- 685   2        }
- 686   1        length = set_zigbee_uart_byte(length,ota_fw_info.mcu_ota_ver);    //ota fw version
- 687   1        i = 0;
- 688   1        while(i < 4){
- 689   2          length = set_zigbee_uart_byte(length , ota_fw_info.mcu_current_offset >> (24 - i * 8)); //pakage offset 
-             -request
- 690   2          i++;
- 691   2        }
- 692   1        length = set_zigbee_uart_byte(length ,FW_SINGLE_PACKET_SIZE); // packet size request
- 693   1        
- 694   1        zigbee_uart_write_frame(MCU_OTA_DATA_REQUEST_CMD,length);
- 695   1      }
- 696          
- 697          /**
- 698          * @brief mcu ota result report 
- 699          * @param[in] {status} result of mcu ota
- 700          * @return  void
- 701          */
- 702          void mcu_ota_result_report(unsigned char status)
- 703          {
- 704   1        unsigned short length = 0;
- 705   1        unsigned char i = 0;
- 706   1        
- 707   1        length = set_zigbee_uart_byte(length,status); //upgrade result status(0x00:ota success;0x01:ota failed)
- 708   1        while(i < 8){
- 709   2          length = set_zigbee_uart_byte(length,ota_fw_info.mcu_ota_pid[i]); //PID
- 710   2          i++;
- 711   2        }
- 712   1        length = set_zigbee_uart_byte(length,ota_fw_info.mcu_ota_ver);  //ota fw version
- 713   1        
- 714   1        zigbee_uart_write_frame(MCU_OTA_RESULT_CMD,length); //response 
- 715   1      }
- 716          
- 717          #endif
- 718          
- 719          /**
- 720          * @brief compare str1 and str2
- 721          * @param[in] {str1} str1 
- 722          * @param[in] {str2} str2
- 723          * @param[in] {len}  len
- 724          * @return  equal return 0 else return -1
- 725          */
- 726          int strcmp_barry(unsigned char *str1,unsigned char *str2,unsigned char len)
- 727          {
- 728   1         unsigned char i;
- 729   1         for(i = 0; i < len; i++){
- 730   2          if(str1[i] < str2[i]){
- 731   3            return -1; //str1 < str2
- 732   3          }
- 733   2          else if(str1[i] > str2[i]){ 
-C51 COMPILER V9.53.0.0   SYSTEM                                                            04/27/2024 11:38:09 PAGE 13  
-
- 734   3            return 1; //str1 > str2
- 735   3          }
- 736   2        }
- 737   1        return 0; //str1 == str2
- 738   1      }
- 739          
- 740          /**
- 741          * @brief translate assic to hex
- 742          * @param[in] {assic_num} assic number
- 743          * @return hex data
- 744          */
- 745          char assic_to_hex(unsigned char assic_num)
- 746          {
- 747   1        if(assic_num<0x30 || assic_num > 0x39)  //0~9
- 748   1          return -1;
- 749   1        else
- 750   1          return assic_num % 0x30;
- 751   1      }
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =   1975    ----
-   CONSTANT SIZE    =     33    ----
-   XDATA SIZE       =    578      72
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

+ 0 - 97
Projects/macro/switch_ota_app_V1.0.1/Listings/time2.lst

@@ -1,97 +0,0 @@
-C51 COMPILER V9.53.0.0   TIME2                                                             04/27/2024 11:38:09 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE TIME2
-OBJECT MODULE PLACED IN .\Objects\time2.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE time2.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DEBUG
-                    - OBJECTEXTEND PRINT(.\Listings\time2.lst) TABS(2) OBJECT(.\Objects\time2.obj)
-
-line level    source
-
-   1          /*********************************************************************************************************
-             -**
-   2            测试tim2定时器:
-   3            说明:
-   4            *1.系统主频为FRC/2.波形输出引脚:P10
-   5            *3.定时模式, 16位定时器定时1ms,中断一次
-   6          **********************************************************************************************************
-             -*/
-   7          
-   8          #include <REGtenxTM52F1386.h>
-   9          #include "TM52F1386_bsp.h"
-  10          #include <intrins.h>
-  11          #include "time2.h"
-  12          #include "GLOBAL.h"
-  13          #include "gpio_ctrl.h"
-  14          
-  15          #define FRC_HZ 18432000
-  16          #define FRC_DIV 2
-  17          #define CLK_US 1000                                        // 1ms
-  18          #define TIME2_RELOAD (unsigned int)(65536 - (((FRC_HZ / FRC_DIV) / 2 / 1000) * CLK_US / 1000)) // 精度更高
-  19          
-  20          /*********************************************************************************************************
-             -*
-  21          **函数名称 :tim2_init
-  22          **函数描述 :定时器初始化
-  23          **输    入 :None
-  24          **输    出 :None
-  25          **********************************************************************************************************
-             -/
-  26          void tim2_init(void)
-  27          {
-  28   1        CT2N = 0; // 定时器模式
-  29   1        CPRL2N = 0; // 重载模式
-  30   1      
-  31   1        TH2 = (TIME2_RELOAD) / 256;
-  32   1        TL2 = (TIME2_RELOAD) % 256;
-  33   1      
-  34   1        RCP2H = (TIME2_RELOAD) / 256;
-  35   1        RCP2L = (TIME2_RELOAD) % 256;
-  36   1      
-  37   1        TR2 = 1;
-  38   1        ET2 = 1;
-  39   1      }
-  40          /******************************************************************************************
-  41          ** 函数名称: time2_irq
-  42          ** 函数描述: time2中断处理函数
-  43          ** 输入参数: 无
-  44          ** 输出参数: 无
-  45          *******************************************************************************************/
-  46          void time2_irq() interrupt 5
-  47          {
-  48   1        int i=0;
-  49   1        if (TF2)
-  50   1        {
-C51 COMPILER V9.53.0.0   TIME2                                                             04/27/2024 11:38:09 PAGE 2   
-
-  51   2          TF2 = 0; // 除了用作串口的时基外,其他应用必须清零
-  52   2          
-  53   2          // key_led_ctl();  //
-  54   2          if (++sysTickfor10ms >= 10) // 10ms
-  55   2          {
-  56   3           for(i=0;i<6;i++)
-  57   3           {
-  58   4            ledTimer[i].ticket++;//1ms控制按键背光灯,PWM基准周期1ms
-  59   4           }
-  60   3            sysTickfor10ms = 0;
-  61   3            sys10msFlag = 1;
-  62   3            tickcount++;
-  63   3            switchState.buttonPressTime++; // 长按键计数器
-  64   3            ledTimerAll.ticket++;      // 背光闪烁用
-  65   3          }
-  66   2        }
-  67   1      }
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =    191    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =   ----    ----
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

+ 0 - 210
Projects/macro/switch_ota_app_V1.0.1/Listings/uart.lst

@@ -1,210 +0,0 @@
-C51 COMPILER V9.53.0.0   UART                                                              04/27/2024 11:38:09 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE UART
-OBJECT MODULE PLACED IN .\Objects\uart.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE uart.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DEBUG 
-                    -OBJECTEXTEND PRINT(.\Listings\uart.lst) TABS(2) OBJECT(.\Objects\uart.obj)
-
-line level    source
-
-   1          /*********************************************************************************************************
-             -**
-   2            功能:
-   3            Uart1(9600)Uart2(9600),采用time1定时器
-   4            Uart1选用P30,P31作为通信口,Uart2选用P17,P36作为通信口
-   5          
-   6            8位数据位,无校验位,1位停止位。
-   7          **********************************************************************************************************
-             -*/
-   8          #include <REGtenxTM52F1386.h>
-   9          #include "TM52F1386_bsp.h"
-  10          #include <intrins.h>
-  11          #include "uart.h"
-  12          #include "zigbee.h"
-  13          
-  14          
-  15          
-  16          #define UART0_BAUD_RATE BAUD9600
-  17          
-  18          #define TIM_NUM (unsigned int)(256 - ((((FRC_HZ / FRC_DIV) * (SMOD_PRICE + 1)) / 2) / 32 / BAUD9600)); // 
-             -计算不同波特率下的定时器值
-  19          /*
-  20          系统频率设置为二分频
-  21          */
-  22          
-  23          unsigned char txrx_buf[8] = {0x55};
-  24          char busy;
-  25          char setuart;
-  26          /*********************************************************************************************************
-             -*
-  27          **函数名称 :uart1_gpio_init
-  28          **函数描述 :串口IO初始化
-  29          **输    入 :None
-  30          **输    出 :None
-  31          **********************************************************************************************************
-             -/
-  32          void uart0_gpio_init()
-  33          {
-  34   1        // RXD p30 --p4.4
-  35   1        // TXD p31  --p4.5
-  36   1      
-  37   1        /*SET_REG(PORTIDX, PORT3);
-  38   1        SET_REG_BITS(PINMOD10, PINMOD1, PIN_MODE_PP);
-  39   1        SET_REG_BITS(PINMOD10, PINMOD0, PIN_MODE_OD_IPU);*/
-  40   1      
-  41   1        ////modified by  zzw  修改串口为P4.4和P4.5
-  42   1        SET_REG(PORTIDX, PORT4);
-  43   1        SET_REG_BITS(PINMOD54, PINMOD5, PIN_MODE_PP);
-  44   1        SET_REG_BITS(PINMOD54, PINMOD4, PIN_MODE_OD_IPU);
-  45   1      
-  46   1        setuart = GET_REG(PINMODE) | 0x02;
-  47   1        SET_REG(PINMODE, setuart); // 设置UART0PS为10,将P4.4/P4.5用作RXD0/TXD0
-  48   1                       ////modified by  zzw  修改串口为P4.4和P4.5
-  49   1      }
-C51 COMPILER V9.53.0.0   UART                                                              04/27/2024 11:38:09 PAGE 2   
-
-  50          /*********************************************************************************************************
-             -*
-  51          **函数名称 :uart1_timer2_init
-  52          **函数描述 :uart1在timer2下配置
-  53          **输    入 :None
-  54          **输    出 :None
-  55          **********************************************************************************************************
-             -/
-  56          void uart0_timer1_init()
-  57          {
-  58   1      
-  59   1        /*SET_REG(PORTIDX, PORT3);
-  60   1        SET_REG_BITS(PINMOD10, PINMOD1, PIN_MODE_PP);
-  61   1        SET_REG_BITS(PINMOD10, PINMOD0, PIN_MODE_OD_IPU);*/
-  62   1      
-  63   1        uart0_gpio_init();
-  64   1      
-  65   1        SET_REG_BITS(PCON, SMOD, SMOD_PRICE); // 双波特率控制位
-  66   1        SM0 = 0;
-  67   1        SM1 = 1; // 模式1
-  68   1        SM2 = 0;
-  69   1        REN = 1; // 允许接收
-  70   1      
-  71   1        SET_REG_BITS(TMOD, TMOD1, 2); // 8 位自动重载定时器/计数器(TL1),溢出时从 TH1 重新装载。
-  72   1      
-  73   1        TL1 = TIM_NUM;
-  74   1        TH1 = TIM_NUM;
-  75   1      
-  76   1        TI = 0;  // 先清发送中断 标志
-  77   1        RI = 0;  // 先清接收中断 标志
-  78   1        TR1 = 1; // TIMER1 运行
-  79   1        REN = 1; // UART接收收据使能
-  80   1      
-  81   1        ES = 1; // 允许串口Uart1中断
-  82   1      
-  83   1        ////boot uart,前提一倍频下计算////
-  84   1        /*UART0CON = UART0CON & ~0x80; // UART0BRS清零,波特率设置同标准 8051
-  85   1      
-  86   1        SM0 = 0;
-  87   1        SM1 = 1;           // SM0\SM1=01   UART mode=1;8位数据传送  ,01:模式 1:8 位 UART0,波特率可变
-  88   1        SM2 = 0;           // Mode 1, 3    波特率采用9600 = (SMOD+1) x Fsysclk / (32 x 2 x (256-TH1)) --- 若使用Timer1
-             - 自动重载模式
-  89   1        PCON = (PCON & 0x7F) | 0x80; // SMOD=1允许UART双波特率控制//波特率= (SMOD + 1) x F SYSCLK / (32 x 2 x (25
-             -6 – TH1))
-  90   1        // Fsysclk = 波特率 * 32 * (256 - TH1)
-  91   1        // TH1 = 256-Fsysclk/(波特率*32)
-  92   1        // 115200  :TH1 =256- 18432000/115200/32=256-5
-  93   1        // 9600  : TH1 =256- 18432000/9600/32=256- 60
-  94   1      
-  95   1        TMOD = TMOD & ~0X30 | 0x20;
-  96   1        TL1 = 256 - 5;
-  97   1        TH1 = 256 - 5; // 115200
-  98   1      
-  99   1        //TL1 = 256 - 60;
- 100   1        //TH1 = 256 - 60; // 9600
- 101   1      
- 102   1        TCLK = 0; // UART1模式1&3发送时钟源:0-timer1   1-timer2
- 103   1        RCLK = 0; // UART1模式1&3接收时钟源:0-timer1   1-timer2
- 104   1      
- 105   1        ES = 1;  // 允许串口Uart中断
- 106   1        TI = 0;  // 先清发送中断 标志
- 107   1        RI = 0;  // 先清接收中断 标志
-C51 COMPILER V9.53.0.0   UART                                                              04/27/2024 11:38:09 PAGE 3   
-
- 108   1        TR1 = 1; // TIMER1 运行
- 109   1        REN = 1; // UART接收使能*/
- 110   1        ////boot uart///
- 111   1      
- 112   1        busy = 0; // 初始化
- 113   1      }
- 114          
- 115          /*********************************************************************************************************
-             -*
- 116          **函数名称 :uart1_irq
- 117          **函数描述 :uart1中断入口
- 118          **输    入 :None
- 119          **输    出 :None
- 120          **********************************************************************************************************
-             -/
- 121          void uart0_irq() interrupt 4
- 122          {
- 123   1        unsigned char temp;
- 124   1        if (RI)
- 125   1        {
- 126   2          temp = SBUF;
- 127   2          uart_receive_input(temp); // zigbee函数
- 128   2          RI = 0;
- 129   2        }
- 130   1        /*  if (TI)
- 131   1          {
- 132   1            TI = 0;
- 133   1            busy = 0; // 清除忙标志
- 134   1          }*/
- 135   1        // 不是方式0,不采用中断请标志位
- 136   1      }
- 137          /*********************************************************************************************************
-             -*
- 138          **函数名称 UART1_send
- 139          **函数描述 :uart1发送单字节数据
- 140          **输    入 char
- 141          **输    出 :None
- 142          **********************************************************************************************************
-             -/
- 143          void UART1_send(unsigned char c) // 发送单字节
- 144          {
- 145   1        // while (busy)
- 146   1        //  ;
- 147   1        // busy = 1;
- 148   1        SBUF = c; // 发送单字节
- 149   1        while (TI == 0)
- 150   1          ; // 等待发送完成
- 151   1        TI = 0; //
- 152   1      }
- 153          /*********************************************************************************************************
-             -*
- 154          **函数名称 UART1_send_buf
- 155          **函数描述 :uart1发送字符串
- 156          **输    入 char
- 157          **输    出 :None
- 158          **********************************************************************************************************
-             -/
- 159          void UART1_send_buf(char *s) // 发送字符串
- 160          {
- 161   1        while (*s)
- 162   1        {
- 163   2          UART1_send(*s++);
-C51 COMPILER V9.53.0.0   UART                                                              04/27/2024 11:38:09 PAGE 4   
-
- 164   2        }
- 165   1      }
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =    200    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =     10       3
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

+ 0 - 235
Projects/macro/switch_ota_app_V1.0.1/Listings/uart2.lst

@@ -1,235 +0,0 @@
-C51 COMPILER V9.53.0.0   UART2                                                             04/27/2024 11:38:09 PAGE 1   
-
-
-C51 COMPILER V9.53.0.0, COMPILATION OF MODULE UART2
-OBJECT MODULE PLACED IN .\Objects\uart2.obj
-COMPILER INVOKED BY: C:\Keil_v5_51\C51\BIN\C51.EXE uart2.c LARGE OPTIMIZE(8,SPEED) BROWSE INCDIR(..\..\..\Drivers) DEBUG
-                    - OBJECTEXTEND PRINT(.\Listings\uart2.lst) TABS(2) OBJECT(.\Objects\uart2.obj)
-
-line level    source
-
-   1          /******************************************************************************************************
-   2            IC : TM52F1386
-   3            
-   4            演示效果  :
-   5                通过USB将开发板与电脑,打开电脑中的串口助手,设置对应端口,
-   6              9600波特率,8位数据位,无校验位,1位停止位。向学习板发送任
-   7              意1个字节数据,学习板会回传1个相同字节数据。
-   8              
-   9              注意:
-  10                   需要将底板的OP4端子的TX与RX跳线帽接好
-  11                   
-  12            时钟 : 
-  13              快时钟系统主频为 18.432M/2 = 9.216M 
-  14              分给定时器的时钟频率为9.216M/2 = 4.608M
-  15          *********************************************************************************************************/
-  16          
-  17          #include <REGtenxTM52F1386.h>
-  18          #include "TM52F1386_bsp.h"
-  19          #include <intrins.h>
-  20          #include "uart2.h"
-  21          
-  22          // 波特率=(SMOD+1) x F SYSCLK /(32 x 2 x (256 – TH1))
-  23          #define SMOD_PRICE 1
-  24          #define FRC_HZ 18432000
-  25          #define FRC_DIV 2
-  26          
-  27          #define BAUD4800 4800
-  28          #define BAUD9600 9600
-  29          #define BAUD19200 19200
-  30          #define BAUD38400 38400
-  31          #define BAUD57600 57600
-  32          #define BAUD115200 115200 // 必须在系统一分频下
-  33          
-  34          
-  35          #define UART2BRP  (unsigned int)(FRC_HZ/FRC_DIV/32/BAUD9600)    //计算不同波特率下的UART2BRP
-  36          /*********************************************************************************************************
-             -*
-  37          **函数名称 :uart1_gpio_init
-  38          **函数描述 :串口IO初始化
-  39          **输    入 :None
-  40          **输    出 :None
-  41          **********************************************************************************************************
-             -/
-  42          void uart2_gpio_init()
-  43          {
-  44   1        PORTIDX = PORT1;
-  45   1        PINMOD10 = PINMOD10&0x00 | PIN_L_MODE_OD_IPU | PIN_H_MODE_PP;
-  46   1        P1_1 = 1;     // tx
-  47   1        P1_0 = 1;     // rx
-  48   1      
-  49   1          
-  50   1          // p55,54
-  51   1        SET_REG(PORTIDX, 5);
-  52   1        SET_REG_BITS(PINMOD54, PINMOD5, PIN_MODE_PP); // 配置为CMOS推挽输出
-C51 COMPILER V9.53.0.0   UART2                                                             04/27/2024 11:38:09 PAGE 2   
-
-  53   1        P5_5 = 0;
-  54   1      
-  55   1        SET_REG(PORTIDX, 5);
-  56   1        SET_REG_BITS(PINMOD54, PINMOD4, PIN_MODE_PP); // 配置为CMOS推挽输出
-  57   1        P5_5 = 0;
-  58   1      }
-  59          /******************************************************************************************
-  60          ** 函数名称: uart2_init
-  61          ** 函数描述: uart初始化函数  9600-8-1 无校验(轮询接收)
-  62          ** 输入参数: 无
-  63          ** 输出参数: 无
-  64          *******************************************************************************************/
-  65          void uart2_init(void)
-  66          {
-  67   1          uart2_gpio_init();
-  68   1      
-  69   1        UART2_8Bits;
-  70   1        SCON2 = (SCON2&~SCON2_REN2_MASK) | 1 <<SCON2_REN2_POS;     //允许接收,REN2=1
-  71   1        UART2CON = (UART2CON &~ UART2CON_UART2BRP_MASK) | (UART2BRP << UART2CON_UART2BRP_POS);
-  72   1      
-  73   1      
-  74   1        SCON2 = (SCON2 & ~RI2);                  //UART2 接收中断标志
-  75   1        SCON2 = (SCON2 & ~TI2);                 // UART2 发送中断标志
-  76   1          
-  77   1      
-  78   1        UART2_RECEPTION_ENABLE;             //UART接收使能
-  79   1        INTE1 = (INTE1 &~ INTE1_ES2_MASK) | 1 <<INTE1_ES2_POS;  //ES2=1
-  80   1      
-  81   1      
-  82   1      }
-  83          
-  84          /******************************************************************************************
-  85          ** 函数名称: uart_recv
-  86          ** 函数描述: uart2接收函数
-  87          ** 输入参数: 无
-  88          ** 输出参数: 无
-  89          *******************************************************************************************/
-  90          /*void uart_recv (unsigned char *buf, unsigned char len)
-  91          {
-  92            unsigned char i;
-  93            for (i = 0; i < len; i++)
-  94            {
-  95              while ( (SCON2 & RI2) == 0);
-  96              *buf = SBUF2;
-  97              SCON2 = SCON2 & ~RI2;                   //清除标志位
-  98              buf++;
-  99            }
- 100          }*/
- 101          /******************************************************************************************
- 102          ** 函数名称: uart_send
- 103          ** 函数描述: uart2发送函数
- 104          ** 输入参数: 无
- 105          ** 输出参数: 无
- 106          *******************************************************************************************/
- 107          /*void uart_send (unsigned char *buf, unsigned char len)
- 108          {
- 109            unsigned char i;
- 110            for (i = 0; i < len; i++)
- 111            {
- 112              SBUF2 = *buf;
- 113              buf++;
- 114              while ((SCON2 & TI2) == 0);
-C51 COMPILER V9.53.0.0   UART2                                                             04/27/2024 11:38:09 PAGE 3   
-
- 115              SCON2 = SCON2 & ~TI2;                   //清除标志位
- 116            }
- 117          }*/
- 118          
- 119          /*********************************************************************************************************
-             -*
- 120          **函数名称 :uart1_irq
- 121          **函数描述 :uart1中断入口
- 122          **输    入 :None
- 123          **输    出 :None
- 124          **********************************************************************************************************
-             -/
- 125          void uart2_irq() interrupt 12
- 126          {
- 127   1        unsigned char temp;
- 128   1        if(SCON2&RI2)
- 129   1        {
- 130   2          temp = SBUF2;
- 131   2          //uart_receive_input(temp); // zigbee函数
- 132   2          SCON2 = SCON2&~SCON2_RI2_MASK;
- 133   2        }
- 134   1        /*  if (TI)
- 135   1          {
- 136   1            TI = 0;
- 137   1            busy = 0; // 清除忙标志
- 138   1          }*/
- 139   1        // 不是方式0,不采用中断请标志位
- 140   1      }
- 141          
- 142          /*********************************************************************************************************
-             -*
- 143          **函数名称 UART1_send
- 144          **函数描述 :uart1发送单字节数据
- 145          **输    入 char
- 146          **输    出 :None
- 147          **********************************************************************************************************
-             -/
- 148          void UART2_send(unsigned char c) // 发送单字节
- 149          {
- 150   1        // while (busy)
- 151   1        //  ;
- 152   1        // busy = 1;
- 153   1        SBUF2 = c; // 发送单字节
- 154   1        while((SCON2&TI2) == 0);// 等待发送完成
- 155   1        SCON2 = SCON2&~SCON2_TI2_MASK;
- 156   1      }
- 157          
- 158          /*********************************************************************************************************
-             -*
- 159          **函数名称 UART1_send_buf
- 160          **函数描述 :uart1发送字符串
- 161          **输    入 char
- 162          **输    出 :None
- 163          **********************************************************************************************************
-             -/
- 164          void UART2_send_buf(char *s) // 发送字符串
- 165          {
- 166   1        while (*s)
- 167   1        {
- 168   2          UART2_send(*s++);
- 169   2        }
- 170   1      }
-C51 COMPILER V9.53.0.0   UART2                                                             04/27/2024 11:38:09 PAGE 4   
-
- 171          /******************************************************************************************
- 172          ** 函数名称: main
- 173          ** 函数描述: main函数
- 174          ** 输入参数: 无
- 175          ** 输出参数: 无
- 176          *******************************************************************************************/
- 177          /*void main (void)
- 178          {
- 179            bsp_clock_init();         // 系统快钟18.432 div 2 =  9.216Mhz
- 180          
- 181            uart2_init();
- 182          
- 183            while (1)
- 184            {
- 185              uart_recv (txrx_buf, 1);
- 186              uart_send (txrx_buf, 1);
- 187          //    bsp_delay_ms(1000);
- 188            }
- 189          }*/
- 190          
- 191          
- 192          
- 193          
- 194          
- 195          
- 196          
- 197          
-
-
-MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =    171    ----
-   CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =   ----       4
-   PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
-   IDATA SIZE       =   ----    ----
-   BIT SIZE         =   ----    ----
-END OF MODULE INFORMATION.
-
-
-C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/CRC.obj


BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/EEPROM.obj


+ 0 - 2
Projects/macro/switch_ota_app_V1.0.1/Objects/ExtDll.iex

@@ -1,2 +0,0 @@
-[EXTDLL]
-Count=0

BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/GLOBAL.obj


BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY


BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.bin


+ 0 - 136
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.build_log.htm

@@ -1,136 +0,0 @@
-<html>
-<body>
-<pre>
-<h1>µVision Build Log</h1>
-<h2>Tool Versions:</h2>
-IDE-Version: ¦ÌVision V5.11.2.0
-Copyright (C) 2014 ARM Ltd and ARM Germany GmbH. All rights reserved.
-License Information: LUXCON 273380647@qq.com, LUXCON, LIC=ZBD7S-LJL1L-D8FFM-XR6G3-B2KW1-M4LPX
- 
-Tool Versions:
-Toolchain:       PK51 Prof. Developers Kit  Version: 9.53.0.0
-Toolchain Path:  C:\Keil_v5_51\C51\BIN
-C Compiler:      C51.exe V9.53.0.0
-Assembler:       A51.exe V8.02b
-Linker/Locator:  BL51.exe V6.22
-Library Manager: LIB51.exe V4.30.0.2
-Hex Converter:   OH51.exe V2.7.0.0
-CPU DLL:         S8051.DLL V3.95.0.0
-Dialog DLL:      DP51.DLL V2.62.0.1
-Target DLL:      C:\Keil_v5_51\SampTarg.DLL V1.06.44.75.R
-Dialog DLL:      TP51.DLL V2.58
- 
-<h2>Project:</h2>
-D:\Work\GIT\TM52eF1386_OTA\TM52F1386_SDK_v0_0_1\Projects\macro\switch_ota_V1.0\main.uvproj
-Project File Date:  03/19/2024
-
-<h2>Output:</h2>
-Rebuild target 'Target 1'
-assembling STARTUP_TENX52.A51...
-compiling main.c...
-compiling EEPROM.c...
-compiling GLOBAL.c...
-compiling gpio_ctrl.c...
-gpio_ctrl.c(340): warning C280: 'state': unreferenced local variable
-gpio_ctrl.c(351): warning C280: 'state': unreferenced local variable
-gpio_ctrl.c(362): warning C280: 'state': unreferenced local variable
-gpio_ctrl.c(941): warning C280: 'ledprd': unreferenced local variable
-gpio_ctrl.c(1016): warning C280: 'row': unreferenced local variable
-gpio_ctrl.c(1018): warning C280: 'ReadValue': unreferenced local variable
-compiling mcu_api.c...
-mcu_api.c(396): warning C280: 'len': unreferenced local variable
-mcu_api.c(407): warning C280: 'len': unreferenced local variable
-mcu_api.c(418): warning C280: 'len': unreferenced local variable
-compiling protocol.c...
-protocol.c(1758): warning C280: 'k': unreferenced local variable
-protocol.c(1758): warning C280: 'Ret': unreferenced local variable
-protocol.c(1759): warning C280: 'temp_buff': unreferenced local variable
-protocol.c(1792): warning C280: 'data1': unreferenced local variable
-protocol.c(1798): warning C280: 'write_data': unreferenced local variable
-compiling sTimeout.c...
-compiling system.c...
-system.c(266): warning C206: 'zigbee_notify_factory_new_hanlde': missing function-prototype
-compiling time2.c...
-compiling uart.c...
-compiling TM52F1386_bsp.c...
-linking...
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?RELAY_CTL?MAIN
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_BASE64ENCODE?GLOBAL
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_KEY1_LED_CONTROL?GPIO_CTRL
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_KEY2_LED_CONTROL?GPIO_CTRL
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_KEY3_LED_CONTROL?GPIO_CTRL
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?KEY_LED_CTL?GPIO_CTRL
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_HEX_TO_BCD?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_MY_MEMSET?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_MY_STRCPY?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_MY_STRCMP?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_INT_TO_BYTE?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_MCU_DP_BITMAP_UPDATE?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_MCU_DP_FAULT_UPDATE?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_MCU_DP_RAW_UPDATE?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_MCU_DP_VALUE_UPDATE?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_MCU_GET_DP_DOWNLOAD_VALUE?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_MCU_START_ZIGBEE_TEST?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?MCU_RESET_ZIGBEE?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?MCU_NETWORK_START?MCU_API
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?ZIGBEE_TEST_RESULT?PROTOCOL
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_REPORT_MCU_OTA_RESULT?PROTOCOL
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_STIMEOUT?STIMEOUT
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?MCU_EXIT_ZIGBEE?SYSTEM
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?MCU_GET_ZIGBEE_STATE?SYSTEM
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_UART1_SEND_BUF?UART
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?BSP_FXT_CLOCK_INIT?TM52F1386_BSP
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?BSP_SXT_CLOCK_INIT?TM52F1386_BSP
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?_BSP_DELAY_100US?TM52F1386_BSP
-Program Size: data=9.0 xdata=2241 code=18458
-creating hex file from ".\Objects\HSW_2KEY"...
-User command #1: .\_MakeTenx_main\run.bat
-D:\Work\GIT\TM52eF1386_OTA\TM52F1386_SDK_v0_0_1\Projects\macro\switch_ota_V1.0>".\_MakeTenx_main\CallKeilDll.exe"
-".\Objects\HSW_2KEY" - 0 Error(s), 43 Warning(s).
-Load "D:\\Work\\GIT\\TM52eF1386_OTA\\TM52F1386_SDK_v0_0_1\\Projects\\macro\\switch_ota_V1.0\\Objects\\HSW_2KEY" 
-Flash Write Done: 18398 bytes programmed.
-Flash Verify Done: 18398 bytes verified.
-Code checksum: 0xA2D3.
-Load "D:\\Work\\GIT\\TM52eF1386_OTA\\TM52F1386_SDK_v0_0_1\\Projects\\macro\\switch_ota_V1.0\\Objects\\HSW_2KEY" 
-Flash Write Done: 18398 bytes programmed.
-Flash Verify Done: 18398 bytes verified.
-Code checksum: 0xA2D3.
-Load "D:\\Work\\GIT\\TM52eF1386_OTA\\TM52F1386_SDK_v0_0_1\\Projects\\macro\\switch_ota_V1.0\\Objects\\HSW_2KEY" 
-Flash Write Done: 18398 bytes programmed.
-Flash Verify Done: 18398 bytes verified.
-Code checksum: 0xA2D3.
-</pre>
-</body>
-</html>
-F1386_OTA\\TM52F1386_SDK_v0_0_1\\Projects\\macro\\switch_ota_V1.0\\Objects\\HSW_1KEY" 
-Flash Write Done: 18402 bytes programmed.
-Flash Verify Done: 18402 bytes verified.
-Code checksum: 0x18C0.

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 1316
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.hex


+ 0 - 16
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.lnp

@@ -1,16 +0,0 @@
-".\Objects\STARTUP_TENX52.obj",
-".\Objects\main.obj",
-".\Objects\EEPROM.obj",
-".\Objects\GLOBAL.obj",
-".\Objects\gpio_ctrl.obj",
-".\Objects\mcu_api.obj",
-".\Objects\protocol.obj",
-".\Objects\sTimeout.obj",
-".\Objects\system.obj",
-".\Objects\time2.obj",
-".\Objects\uart.obj",
-".\Objects\TM52F1386_bsp.obj" 
-TO ".\Objects\HSW_1KEY" 
-PRINT(".\Listings\HSW_1KEY.m51") RAMSIZE(256) 
-CODE( 0x00-0x32,0x3B-0xFBFF )
-XDATA( 0XE800-0XF7FF )

+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.log


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 4386
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx


BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx.bin


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 32769
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx.crc


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 18402
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx.crc16_WriterVerify


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 32801
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY.tenx.crc2


+ 0 - 38
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_.tin

@@ -1,38 +0,0 @@
-[Project Data state]
-SYSCFG = C0 1F 
-SYSCFG_ATK_ENABLE = 0
-MULTI_LANGUAGE = 0
-FORCE_ERASE = 0
-IRCF_O = 0
-SHOW_IRCF = 0
-ICE_MESS = 0
-SHOWMSGBOX_BEFOREDOWNLOAD = 0
-SHOWMSGBOX_BEFOREREADCODE = 0
-UNLOCK_PROTECT_PLUS_ERASE = 0
-FLASH_P = 1
-FLASH_V = 1
-READID_RETRY_COUNT = 0
-READID_DELAY_TIME = 1000
-COMPILE_WITH_MAKETENX = 1
-AP_MESS = 0
-
-[Project PageLock state]
-PAGE_LOCK_EN = 0
-PAGE_LOCK_ID = 
-PAGE_LOCK_PATH = 
-PAGE_LOCK_COUNT = 0
-PAGE_LOCK_EXPORT_ID = 
-PAGE_LOCK_EXPORT_COUNT = 0
-PAGE_LOCK_EXPORT_INPATH = 
-PAGE_LOCK_EXPORT_OUTPATH = 
-
-[Project Debug state]
-SKIP_READ_PC = 0
-SKIP_READ_XRAM = 0
-SKIP_READ_SFR = 0
-SKIP_33TO3A_CHECK = 0
-SKIP_CODEEND_CHECK = 0
-WRITE_ONE_BYTE = 0
-
-[Project LCD state]
-LCD_VIEW = 0

+ 0 - 2
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_.tin.bak

@@ -1,2 +0,0 @@
-[Project Data state]
-SYSCFG = C0 1F 

BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 1485
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.hex


+ 0 - 18
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.lnp

@@ -1,18 +0,0 @@
-".\Objects\STARTUP_TENX52.obj",
-".\Objects\main.obj",
-".\Objects\EEPROM.obj",
-".\Objects\GLOBAL.obj",
-".\Objects\gpio_ctrl.obj",
-".\Objects\mcu_api.obj",
-".\Objects\protocol.obj",
-".\Objects\sTimeout.obj",
-".\Objects\system.obj",
-".\Objects\time2.obj",
-".\Objects\uart.obj",
-".\Objects\CRC.obj",
-".\Objects\iap.obj",
-".\Objects\TM52F1386_bsp.obj" 
-TO ".\Objects\HSW_1KEY_APP" 
-PRINT(".\Listings\HSW_1KEY_APP.m51") RAMSIZE(256) 
-CODE( 0x00-0x32,0x3B-0xDFFF )
-XDATA( 0xE800-0xF7FF )

+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.log


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 4386
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.tenx


BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP.tenx.bin


+ 0 - 34
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_.tin

@@ -1,34 +0,0 @@
-[Project Data state]
-SYSCFG = C0 1F 
-SYSCFG_ATK_ENABLE = 0
-MULTI_LANGUAGE = 0
-FORCE_ERASE = 0
-IRCF_O = 0
-SHOW_IRCF = 0
-ICE_MESS = 0
-SHOWMSGBOX_BEFOREDOWNLOAD = 0
-SHOWMSGBOX_BEFOREREADCODE = 0
-UNLOCK_PROTECT_PLUS_ERASE = 0
-FLASH_P = 1
-FLASH_V = 1
-READID_RETRY_COUNT = 0
-READID_DELAY_TIME = 1000
-COMPILE_WITH_MAKETENX = 1
-
-[Project PageLock state]
-PAGE_LOCK_EN = 0
-PAGE_LOCK_ID = 
-PAGE_LOCK_PATH = 
-PAGE_LOCK_COUNT = 0
-PAGE_LOCK_EXPORT_ID = 
-PAGE_LOCK_EXPORT_COUNT = 0
-PAGE_LOCK_EXPORT_INPATH = 
-PAGE_LOCK_EXPORT_OUTPATH = 
-
-[Project Debug state]
-SKIP_READ_PC = 0
-SKIP_READ_XRAM = 0
-SKIP_READ_SFR = 0
-SKIP_33TO3A_CHECK = 0
-SKIP_CODEEND_CHECK = 0
-WRITE_ONE_BYTE = 0

+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_.tin.bak


+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_Driver.log


BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 1486
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.hex


+ 0 - 18
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.lnp

@@ -1,18 +0,0 @@
-".\Objects\STARTUP_TENX52.obj",
-".\Objects\main.obj",
-".\Objects\EEPROM.obj",
-".\Objects\GLOBAL.obj",
-".\Objects\gpio_ctrl.obj",
-".\Objects\mcu_api.obj",
-".\Objects\protocol.obj",
-".\Objects\sTimeout.obj",
-".\Objects\system.obj",
-".\Objects\time2.obj",
-".\Objects\uart.obj",
-".\Objects\CRC.obj",
-".\Objects\iap.obj",
-".\Objects\TM52F1386_bsp.obj" 
-TO ".\Objects\HSW_1KEY_APP_V101" 
-PRINT(".\Listings\HSW_1KEY_APP_V101.m51") RAMSIZE(256) 
-CODE( 0x00-0x32,0x3B-0xDFFF )
-XDATA( 0xE800-0xF7FF )

+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.log


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 4386
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.tenx


BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101.tenx.bin


BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 1472
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.hex


+ 0 - 18
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.lnp

@@ -1,18 +0,0 @@
-".\Objects\STARTUP_TENX52.obj",
-".\Objects\main.obj",
-".\Objects\EEPROM.obj",
-".\Objects\GLOBAL.obj",
-".\Objects\gpio_ctrl.obj",
-".\Objects\mcu_api.obj",
-".\Objects\protocol.obj",
-".\Objects\sTimeout.obj",
-".\Objects\system.obj",
-".\Objects\time2.obj",
-".\Objects\uart.obj",
-".\Objects\CRC.obj",
-".\Objects\iap.obj",
-".\Objects\TM52F1386_bsp.obj" 
-TO ".\Objects\HSW_1KEY_APP_V101_" 
-PRINT(".\Listings\HSW_1KEY_APP_V101_.m51") RAMSIZE(256) 
-CODE( 0x00-0x32,0x3B-0xDFFF )
-XDATA( 0xE800-0xF7FF )

+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.log


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 4386
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.tenx


BIN
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.tenx.bin


+ 0 - 34
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.tin

@@ -1,34 +0,0 @@
-[Project Data state]
-SYSCFG = C0 1F 
-SYSCFG_ATK_ENABLE = 0
-MULTI_LANGUAGE = 0
-FORCE_ERASE = 0
-IRCF_O = 0
-SHOW_IRCF = 0
-ICE_MESS = 0
-SHOWMSGBOX_BEFOREDOWNLOAD = 0
-SHOWMSGBOX_BEFOREREADCODE = 0
-UNLOCK_PROTECT_PLUS_ERASE = 0
-FLASH_P = 1
-FLASH_V = 1
-READID_RETRY_COUNT = 0
-READID_DELAY_TIME = 1000
-COMPILE_WITH_MAKETENX = 1
-
-[Project PageLock state]
-PAGE_LOCK_EN = 0
-PAGE_LOCK_ID = 
-PAGE_LOCK_PATH = 
-PAGE_LOCK_COUNT = 0
-PAGE_LOCK_EXPORT_ID = 
-PAGE_LOCK_EXPORT_COUNT = 0
-PAGE_LOCK_EXPORT_INPATH = 
-PAGE_LOCK_EXPORT_OUTPATH = 
-
-[Project Debug state]
-SKIP_READ_PC = 0
-SKIP_READ_XRAM = 0
-SKIP_READ_SFR = 0
-SKIP_33TO3A_CHECK = 0
-SKIP_CODEEND_CHECK = 0
-WRITE_ONE_BYTE = 0

+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_.tin.bak


+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101_Driver.log


+ 0 - 34
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101__.tin

@@ -1,34 +0,0 @@
-[Project Data state]
-SYSCFG = C0 1F 
-SYSCFG_ATK_ENABLE = 0
-MULTI_LANGUAGE = 0
-FORCE_ERASE = 0
-IRCF_O = 0
-SHOW_IRCF = 0
-ICE_MESS = 0
-SHOWMSGBOX_BEFOREDOWNLOAD = 0
-SHOWMSGBOX_BEFOREREADCODE = 0
-UNLOCK_PROTECT_PLUS_ERASE = 0
-FLASH_P = 1
-FLASH_V = 1
-READID_RETRY_COUNT = 0
-READID_DELAY_TIME = 1000
-COMPILE_WITH_MAKETENX = 1
-
-[Project PageLock state]
-PAGE_LOCK_EN = 0
-PAGE_LOCK_ID = 
-PAGE_LOCK_PATH = 
-PAGE_LOCK_COUNT = 0
-PAGE_LOCK_EXPORT_ID = 
-PAGE_LOCK_EXPORT_COUNT = 0
-PAGE_LOCK_EXPORT_INPATH = 
-PAGE_LOCK_EXPORT_OUTPATH = 
-
-[Project Debug state]
-SKIP_READ_PC = 0
-SKIP_READ_XRAM = 0
-SKIP_READ_SFR = 0
-SKIP_33TO3A_CHECK = 0
-SKIP_CODEEND_CHECK = 0
-WRITE_ONE_BYTE = 0

+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101__.tin.bak


+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101__Driver.log


+ 0 - 0
Projects/macro/switch_ota_app_V1.0.1/Objects/HSW_1KEY_APP_V101__bin.bin


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels