Browse Source

update

master
zhaohe 2 years ago
parent
commit
85181e1075
  1. 4
      components/dwin/dwin_ram_manager.cpp
  2. 5
      components/dwin/dwin_ram_manager.hpp
  3. 15
      components/dwin/dwin_screen.cpp
  4. 6
      components/dwin/dwin_screen.hpp

4
components/dwin/dwin_ram_manager.cpp

@ -13,9 +13,13 @@ void DwinRamManager::init(uint32_t startadd, uint32_t endadd) {
uint16_t DwinRamManager::alloc(uint32_t eachsize) { uint16_t DwinRamManager::alloc(uint32_t eachsize) {
if (curadd + eachsize > endadd) { if (curadd + eachsize > endadd) {
ZASSERT(false);
return 0xffff; return 0xffff;
} }
uint16_t ret = curadd; uint16_t ret = curadd;
curadd += eachsize; curadd += eachsize;
return ret; return ret;
} }
uint16_t DwinRamManager::remainsize(uint32_t eachsize) { return (endadd - curadd) / eachsize; }
uint16_t DwinRamManager::totalsize(uint32_t eachsize) { return (endadd - startadd) / eachsize; }

5
components/dwin/dwin_ram_manager.hpp

@ -11,8 +11,11 @@ class DwinRamManager {
uint32_t curadd = 0; uint32_t curadd = 0;
public: public:
void init(uint32_t startadd, uint32_t endadd);
void init(uint32_t startadd, uint32_t endadd);
uint16_t alloc(uint32_t eachsize); uint16_t alloc(uint32_t eachsize);
uint16_t remainsize(uint32_t eachsize);
uint16_t totalsize(uint32_t eachsize);
}; };
} // namespace dwin } // namespace dwin

15
components/dwin/dwin_screen.cpp

@ -40,6 +40,16 @@ void DwinScreen::init(UART_HandleTypeDef* huart, DwinScreenCfg dwcfg) {
m_rammanager.init(dwcfg.freeRawStartAddr, dwcfg.freeRawEndAddr); m_rammanager.init(dwcfg.freeRawStartAddr, dwcfg.freeRawEndAddr);
m_textDisplayerManager.init(dwcfg.textDisplayerStartAddr, dwcfg.textDisplayerEndAddr); m_textDisplayerManager.init(dwcfg.textDisplayerStartAddr, dwcfg.textDisplayerEndAddr);
m_varIconManager.init(dwcfg.varIconStartAddr, dwcfg.varIconEndAddr); m_varIconManager.init(dwcfg.varIconStartAddr, dwcfg.varIconEndAddr);
dumpram();
}
void DwinScreen::dumpram() {
ZLOGI(TAG, "ram :(%d/%d)", m_rammanager.totalsize(1) - m_rammanager.remainsize(1), m_rammanager.totalsize(1));
ZLOGI(TAG, "textDisplayer :(%d/%d)",
m_textDisplayerManager.totalsize(m_dwcfg.textDisplayerSize) - m_textDisplayerManager.remainsize(m_dwcfg.textDisplayerSize),
m_textDisplayerManager.totalsize(m_dwcfg.textDisplayerSize));
ZLOGI(TAG, "varIcon :(%d/%d)", m_varIconManager.totalsize(m_dwcfg.varIconSize) - m_varIconManager.remainsize(m_dwcfg.varIconSize),
m_varIconManager.totalsize(m_dwcfg.varIconSize));
} }
uint16_t DwinScreen::alloc_free_ram(uint16_t size) { return m_rammanager.alloc(size); } uint16_t DwinScreen::alloc_free_ram(uint16_t size) { return m_rammanager.alloc(size); }
@ -48,6 +58,11 @@ uint16_t DwinScreen::alloc_one_var_icon() {
uint16_t addr = m_varIconManager.alloc(m_dwcfg.varIconSize); uint16_t addr = m_varIconManager.alloc(m_dwcfg.varIconSize);
return addr; return addr;
} }
uint16_t DwinScreen::mem_free_ram_remain() { return m_rammanager.remainsize(1); }
uint16_t DwinScreen::mem_one_text_displayer_remain() { return m_textDisplayerManager.remainsize(m_dwcfg.textDisplayerSize); }
uint16_t DwinScreen::mem_one_var_icon_remain() { return m_varIconManager.remainsize(m_dwcfg.varIconSize); }
void DwinScreen::clearrxcache() { void DwinScreen::clearrxcache() {
CriticalContext cc; CriticalContext cc;
txcontext.receipt_ready_flag = false; txcontext.receipt_ready_flag = false;

6
components/dwin/dwin_screen.hpp

@ -101,6 +101,12 @@ class DwinScreen {
uint16_t alloc_one_text_displayer(); uint16_t alloc_one_text_displayer();
uint16_t alloc_one_var_icon(); uint16_t alloc_one_var_icon();
uint16_t mem_free_ram_remain();
uint16_t mem_one_text_displayer_remain();
uint16_t mem_one_var_icon_remain();
void dumpram();
public: public:
bool write_reg16(uint16_t regaddr, uint16_t data, int overtime); bool write_reg16(uint16_t regaddr, uint16_t data, int overtime);
bool read_reg16(uint16_t regaddr, uint16_t& data, int overtime); bool read_reg16(uint16_t regaddr, uint16_t& data, int overtime);

Loading…
Cancel
Save