diff --git a/BootConfig.cpp b/BootConfig.cpp index 2bbdc7ce..3dd6e3e8 100644 --- a/BootConfig.cpp +++ b/BootConfig.cpp @@ -18,6 +18,7 @@ void BootConfig::Init() Stat.HasApp = 0; // 没有APP位置固件 Stat.NeedUpDate = 0; // 不需要升级 + Stat.SearchPinCfg = 1; // 默认搜索引脚配置固件 PinCfg App.WorkeAddr = 0x8010000; // 64KB位置 App.Depositary = 0x8010000; // 64KB位置 @@ -36,6 +37,13 @@ BootConfig * BootConfig::Create() return &bc; } +void BootConfig::Show() const +{ + debug_printf("BootConfig HasApp %d NeedUpData %d SearchPinCfg %d\r\n", Stat.HasApp, Stat.NeedUpDate, Stat.SearchPinCfg); + debug_printf("WorkeAddr 0x%08X Length 0x%08X Depositary 0x%08X Checksum 0x%08X\r\n", App.WorkeAddr, App.Length, App.Depositary, App.Checksum); + debug_printf("UpdateAddr 0x%08X Length 0x%08X Depositary 0x%08X Checksum 0x%08X\r\n", Update.WorkeAddr, Update.Length, Update.Depositary, Update.Checksum); +} + /****************** PinConfig ********************/ PinConfig* PinConfig::Current = nullptr; @@ -66,3 +74,17 @@ PinConfig * PinConfig::Create() return &pc; } + +void PinConfig::Show() const +{ + debug_printf("PinConfig\r\n"); + if (IsEff) + { + debug_printf("MsgPort COM%d BaudRate %d\r\n", AllPin.MsgPort+1,AllPin.MsgPortBaudRate); + debug_printf("W5500 SPI%d \r\n",AllPin.W5500._spi+1); + } + else + { + debug_printf("Pins is Not Eff !! \r\n"); + } +} diff --git a/BootConfig.h b/BootConfig.h index e8bd1d4d..cac99389 100644 --- a/BootConfig.h +++ b/BootConfig.h @@ -12,7 +12,8 @@ typedef struct { uint HasApp : 1; // 有可运行APP uint NeedUpDate : 1; // 需要跟新 - uint Reserved : 30; // 保留 + uint SearchPinCfg : 1; // 搜索 PinCfg 固件 + uint Reserved : 29; // 保留 }BootStat; typedef struct @@ -37,6 +38,7 @@ public: virtual void Init(); // virtual void Load(); // virtual void Save()const; + virtual void Show() const; static BootConfig* Current; static BootConfig* Create(); @@ -71,6 +73,8 @@ typedef struct typedef struct { + COM MsgPort; + int MsgPortBaudRate; W5500Pin W5500; NRFPin Nrf; Pin UserKey1; // 默认重启 @@ -85,13 +89,14 @@ class PinConfig : public ConfigBase { public: PINS AllPin; - uint IsEff; + uint IsEff; // 有效的 byte TagEnd; // 数据区结束标识符 PinConfig(); virtual void Init(); // virtual void Load(); // virtual void Save()const; + virtual void Show() const; static PinConfig* Current; static PinConfig* Create(); diff --git a/Sys.cpp b/Sys.cpp index 5039fee5..49f6cc9a 100644 --- a/Sys.cpp +++ b/Sys.cpp @@ -11,7 +11,7 @@ const TTime Time; #if defined(BOOT) || defined(APP) //#pragma location = 0x20000000 -struct BootCofig StrBoot __attribute__((at(0x2000fff0))); +struct HandlerRemap StrBoot __attribute__((at(0x2000fff0))); #endif diff --git a/Sys.h b/Sys.h index ee95fae3..73e3b72c 100644 --- a/Sys.h +++ b/Sys.h @@ -50,14 +50,14 @@ void assert_failed2(const char* msg, const char* file, unsigned int line); #include "Delegate.h" #if defined(BOOT) || defined(APP) -struct BootCofig +struct HandlerRemap { Func pUserHandler; void* Reserved1; void* Reserved2; void* Reserved3; }; -extern struct BootCofig StrBoot; +extern struct HandlerRemap StrBoot; #endif // 判定指针是否在ROM区 diff --git a/TokenNet/Token.cpp b/TokenNet/Token.cpp index 87733b03..6e8174c1 100644 --- a/TokenNet/Token.cpp +++ b/TokenNet/Token.cpp @@ -21,9 +21,8 @@ #include "App\FlushPort.h" -#if defined(APP) #include "BootConfig.h" -#endif + #define ShunCom_Master 0 @@ -190,7 +189,7 @@ void Token::Setup(ushort code, const char* name, COM message, int baudRate) #if defined(APP) // 把引脚放进 Boot区 的 PinConfig 内 Flash flash; - uint bootCfgAddr = 0x8010000 - 1 << 10; // 63K位置 + const uint bootCfgAddr = 0x800fc00; // 63K位置 Config Cfg(flash,bootCfgAddr,sizeof(PinConfig)); Config::Current = &Cfg; static PinConfig pinCfg;