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

📄 lcd_device_i.h

📁 浙江大学的悟空嵌入式系统模拟器
💻 H
字号:
inline void LCD::init_lcd(int width, int height, int depth)
{
	width_ = width;
	height_ = height;
	depth_ = depth;
}

inline void LCD::malloc_fb(int fb_size)
{
	if(!fb_)
		fb_ = new unsigned char[fb_size];
	fb_size_ = fb_size;
	memset(fb_, 0, fb_size);
}

inline Core::u32 LCD::get_fb_addr()
{
//	return base_addr_;
}

inline unsigned char * LCD::get_fb()
{
	ARM::ARM_CPU * cpu = (ARM::ARM_CPU *)Core::Wukong_Get_System().get_cpu();
	for(int i=addr_begin_; i<=addr_end_; i=i+4)
	{
		
		Core::u32 offset = (i & ~3) - addr_begin_;
    
     
       Core::Bytecode_Type buffer;

		Core::u32 data = 0;
		cpu->get_mmu().access(Core::Memory_32Bit::MEMORY_READ, i, 4, buffer);
	//	Core::Wukong_Get_System().convert_from_bytecode(buffer, data);
		for(int j=0; j<buffer.size(); j++)
			data = ( data<<8 ) | buffer[j];

		Core::u32 pixnum = offset * 8 / depth_; //which number pixel
		
		unsigned char * pos;
		if (pixnum < width_*height_) 
		{
			pos = fb_ + pixnum;
			for(Core::u32 bit = 0; bit < 32; bit += depth_)
			{
				unsigned char pix = (data >> bit)  % (1 << depth_) ;
				*pos++ = pix;
			}
		}
	}
	return fb_;
}

inline Core::u32 LCD::get_fb_size()
{
	return fb_size_;
}

inline void LCD::set_fb_addr(Core::u32 addr)
{
//	base_addr_ = addr;
}

//inline void LCD::set_enable(bool b)
//{
//	lcd_enable_ = b;
//}
//
//inline bool LCD::is_enable()
//{
//	return lcd_enable_;
//}
//
//inline void LCD::set_lcd_addr(Core::u32 begin, Core::u32 end)
//{
//	lcd_addr_begin_ = begin;
//	lcd_addr_end_ = end;
//}
//
//inline bool LCD::is_lcd_addr(Core::u32 addr)
//{
//	return ((addr>= lcd_addr_begin_) && (addr<=lcd_addr_end_));
//}

⌨️ 快捷键说明

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