⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memory.cpp

📁 lwip tcp/ip 协议栈 adsp BF533 DSP 移植 用 visual dsp++ 编译
💻 CPP
字号:
// Memory.cpp : implementation file
//

#include "stdafx.h"
#include "TCPIPplugin.h"
#include "Memory.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// If any property is changed the value will be set to true.
// used in classwizplugin.cpp if user presses ok. 
//
extern bool g_save;
/////////////////////////////////////////////////////////////////////////////
// Memory property page

IMPLEMENT_DYNCREATE(Memory, CPropertyPage)

Memory::Memory() : CPropertyPage(Memory::IDD)
{
	//{{AFX_DATA_INIT(Memory)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	InitMemorySettings();
}

Memory::~Memory()
{
}

void Memory::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Memory)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
	PopulateMemoryData();
}


BEGIN_MESSAGE_MAP(Memory, CPropertyPage)
	//{{AFX_MSG_MAP(Memory)
	ON_EN_CHANGE(IDC_POOL_START, OnChangePoolStart)
	ON_EN_CHANGE(IDC_POOL_MEM_SIZE, OnChangePoolMemSize)
	ON_CBN_SELCHANGE(IDC_MEM_ALIGN, OnSelchangeMemAlign)
	ON_EN_CHANGE(IDC_RAM_SIZE, OnChangeRamSize)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Memory message handlers

void Memory::InitMemorySettings()
{
	 m_memory_alignment=4;	
	 m_pool_mem_start = 128; // Its No. of pool buffers
	 m_pool_mem_size = 512;  // pool buffer size
	 m_ram_size = 65536; // ram size
}

void Memory::PopulateMemoryData()
{
	CEdit *pEdit = (CEdit*)GetDlgItem(IDC_RAM_START);
	char temp_buf_arr[80];

#if 0
	if(pEdit != NULL)
	{
		sprintf(temp_buf_arr,"0x%x",m_ram_start);
		pEdit->SetWindowText(temp_buf_arr);		
	}
#endif
	pEdit = (CEdit*)GetDlgItem(IDC_RAM_SIZE);

	if(pEdit != NULL)
	{
		sprintf(temp_buf_arr,"%d",m_ram_size);
		pEdit->SetWindowText(temp_buf_arr);		
	}


	CComboBox *pComboBox = (CComboBox*)GetDlgItem(IDC_MEM_ALIGN);

	if(pComboBox != NULL)
	{

		pComboBox->ResetContent();
		if(pComboBox->InsertString(0,"4") == CB_ERRSPACE)
			int err =1;
		if(pComboBox->InsertString(-1,"2") == CB_ERRSPACE)
			int err1=1;
		if(pComboBox->InsertString(-1,"1") == CB_ERRSPACE)
			int err2=1;

		switch(m_memory_alignment)
		{
			case 1:
				pComboBox->SetCurSel(2);
				break;
			case 2:
				pComboBox->SetCurSel(1);
				break;
			case 4:
				pComboBox->SetCurSel(0);
				break;

		}
	}

	pEdit = (CEdit*)GetDlgItem(IDC_POOL_START);

	if(pEdit != NULL)
	{
		sprintf(temp_buf_arr,"%d",m_pool_mem_start);
		pEdit->SetWindowText(temp_buf_arr);		
	}

	pEdit = (CEdit*)GetDlgItem(IDC_POOL_MEM_SIZE);
	if(pEdit != NULL)
	{
		sprintf(temp_buf_arr,"%d",m_pool_mem_size);
		pEdit->SetWindowText(temp_buf_arr);		
	}

}

bool Memory::StoreMemoryHeaderData(ConfigHeaderStruct *cfg_header)
{
	 cfg_header->mem_alignment = m_memory_alignment;
	 cfg_header->pool_start_addr = m_pool_mem_start;
	 cfg_header->pool_size = m_pool_mem_size;
	 cfg_header->ram_size = m_ram_size;
	return true;
}

bool Memory::LoadMemoryHeaderData(ConfigHeaderStruct *cfg_header)
{
	 m_memory_alignment = cfg_header->mem_alignment;
	 m_pool_mem_start = cfg_header->pool_start_addr;
	 m_pool_mem_size  = cfg_header->pool_size;
	 m_ram_size =  cfg_header->ram_size;
	return true;
}

void Memory::OnChangePoolStart() 
{

	CEdit *pEdit = (CEdit*)GetDlgItem(IDC_POOL_START);
	char temp_buf_arr[80];
	char *end_ptr;
	unsigned int o_pool_mem_start = m_pool_mem_start;
	
	if(pEdit != NULL)
	{
		pEdit->GetWindowText(temp_buf_arr,sizeof(temp_buf_arr));
		m_pool_mem_start= strtol(temp_buf_arr,&end_ptr,10);	
	}

	(o_pool_mem_start != m_pool_mem_start) ? g_save = true : 0;
}

void Memory::OnChangePoolMemSize() 
{
	CEdit *pEdit = (CEdit*)GetDlgItem(IDC_POOL_MEM_SIZE);
	char temp_buf_arr[80];
	char *end_ptr;
	int o_pool_mem_size = m_pool_mem_size;
	
	if(pEdit != NULL)
	{
		pEdit->GetWindowText(temp_buf_arr,sizeof(temp_buf_arr));
		m_pool_mem_size= strtol(temp_buf_arr,&end_ptr,10);	
	}

	(o_pool_mem_size != m_pool_mem_size) ? g_save = true : 0;
}


void Memory::OnSelchangeMemAlign() 
{

	CComboBox *pComboBox = (CComboBox*)GetDlgItem(IDC_MEM_ALIGN);
	char tbuf[80];
	int value;
	int o_memory_alignment = m_memory_alignment;

	if(pComboBox != NULL)
	{
		pComboBox->GetLBText(pComboBox->GetCurSel(),tbuf);
		value = atoi(tbuf);
		if (value <=4) m_memory_alignment = value;
	}

	(o_memory_alignment != m_memory_alignment)  ? g_save = true : 0;
}

void Memory::OnCancel() 
{
	CPropertyPage::OnCancel();
}

void Memory::OnChangeRamSize() 
{
	CEdit *pEdit = (CEdit*)GetDlgItem(IDC_RAM_SIZE);
	char temp_buf_arr[80];
	char *end_ptr;
	int o_ram_size = m_ram_size;
	
	if(pEdit != NULL)
	{
		pEdit->GetWindowText(temp_buf_arr,sizeof(temp_buf_arr));
		m_ram_size= strtol(temp_buf_arr,&end_ptr,10);	
	}

	(o_ram_size != m_ram_size) ? g_save = true : 0;
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -