📄 lcd_device.cpp
字号:
#include "./LCD_Device.h"
#include "Core/System.h"
#include "Core/Memory.h"
//#include "Core/Processor.h"
#include "Core/Log.h"
//#include "Arch/ARM/ARM_Processor.h"
//#include<io.h>
namespace DEVICE {
LCD::LCD()
{
width_ = height_ = depth_ = 0;
fb_ = NULL;
//base_addr_ = 0x00;
// lcd_addr_begin_=lcd_addr_end_ = 0xc0000000;
addr_begin_ = 0xc0000000;;
// lcd_enable_ = false;
fb_size_ = 0;
enable_ = false;
}
//unsigned char * LCD::get_fb()
//{
// //get pix from addr_begin_ to addr_end_
//
//}
void LCD::on_mapped_memory_write(Core::u32 start, size_t size, Core::Bytecode_Type & buffer)
{
/*Core::u8 data[8];
for(int i=0; i< buffer.size(); i++)
data[i] = buffer[i] ;*/
Core::u32 data=0;
for(int i=0; i<buffer.size(); i++)
data = ( data<<8 ) | buffer[i];
// Core::Wukong_Get_System().convert_from_bytecode(buffer, data);
Core::u32 offset = (start & ~3) - addr_begin_;
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;
}
}
}
void LCD::on_destroy(void)
{
if(fb_)
delete fb_;
}
} //namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -