当前位置:首页 » 操作系统 » pix源码

pix源码

发布时间: 2023-05-11 17:54:22

❶ 常见的文件“后缀名”有哪些

1、Zip压缩文件,要解压此类文件,需要在电脑上要安装一个解压软件,如2345好压、WinRAR等。

2、Avi视频文件,用动画软件可打开,例如Flash、Photoshop、Premiere等。

3、xls excel工作表,用Excel打开。

4、doc word文档文件,可以用word或者wps等软件打开。

5、wav声音文件,用媒体播放器打开,例如爱奇艺、腾讯、优酷等。

6、PNG、JPEG、GIF图像软件,用图像处理软件打开,例如Photoshop、ACDSee Free。

(1)pix源码扩展阅读:

可执行文件 exe、com

语言文件 c、asm、for、lib、lst、msg、obj、pas、wki、bas

映像文件 map (其每一行都定义了一个图像区域以及当该区域被触发后应返回的url信息)

备份文件 bak(被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本)

临时文件 tmp (word、excel等软件在操作时会产生此类文件)

模板文件 dot(通过word模板可以简化一些常用格式文档的创建工作)

❷ 如何使用FFMPEG+H264实现RTP传输数据

开发环境:
WINDOWS7 32bit
MINGW
eclipse juno cdt
1、首先你要编译好FFMPEG,
a) 方法一:可以去官网下载源码,用MINGW编译(编译时记得支持H264,当然,事先得下载并编译好libx264,视频技术论坛里有很多介绍)
b) 方法二:更加省心省力的方法是,下载别人已经编译好的资源,如ZeranoeFFmpeg的册好贺,下载他的袜前dev版本,包含了头文件,链接库等必须的东西,当然,这东西已经是支持H264的了。
2、以下的就是代码部分了:
a) 先声明必要的变量:
AVFormatContext *fmtctx;
AVStream *video_st;
AVCodec *video_codec;
const int FPS = 25; /* 25 images/s */
const char *RDIP = “127.0.0.1”;
unsigned int RDPORT = 5678;
const unsigned int OUTWIDTH = 720;
const unsigned int OUTHEIGHT = 480;
av_register_all();
avformat_network_init();

b) 初始化AV容器
fmtctx = avformat_alloc_context();

c) 获得输出格式,这里是RTP网络流
fmtctx->oformat = av_guess_format("rtp", NULL, NULL);

d)打开网络流
snprintf(fmtctx->filename, sizeof(fmtctx->filename),"rtp://%s:%d",RDIP,RDPORT);
avio_open(&fmtctx->pb,fmtctx->filename, AVIO_FLAG_WRITE)

e) 开始添加H264视频流
video_st = NULL;video_st = add_video_stream(fmtctx, &video_codec, AV_CODEC_ID_H264);

其中,add_video_stream函数为:
add_video_stream(AVFormatContext *oc,AVCodec **codec, enum AVCodecID codec_id)
{
AVCodecContext *c;
AVStream *st;
/* find the video encoder */
*codec = avcodec_find_encoder(codec_id);
st = avformat_new_stream(oc, *codec);
c = st->codec;
avcodec_get_context_defaults3(c, *codec);
c->codec_id = codec_id;
c->width = OUTWIDTH;
c->州派height = OUTHEIGHT;
c->time_base.den = FPS;
c->time_base.num = 1;
c->pix_fmt = PIX_FMT_YUV420P;
if(oc->oformat->flags & AVFMT_GLOBALHEADER)
c->flags|= CODEC_FLAG_GLOBAL_HEADER;
av_opt_set(c->priv_data, "preset", "ultrafast", 0);
av_opt_set(c->priv_data, "tune","stillimage,fastdecode,zerolatency",0);
av_opt_set(c->priv_data, "x264opts","crf=26:vbv-maxrate=728:vbv-bufsize=364:keyint=25",0);return st;}
// OPEN THE CODE
avcodec_open2(video_st->codec, video_codec, NULL);
/* Write the stream header, if any. */
avformat_write_header(fmtctx, NULL);

f) 现在,就可以不断的编码数据,并发生数据了
AVFrame* m_pYUVFrame = avcodec_alloc_frame();
while(1) //这里设置成无限循环,你可以设置成250,或其他数进行测试,观看结果
{
fill_yuv_image(m_pYUVFrame, video_st->codec->frame_number,OUTWIDTH, OUTHEIGHT);
/* encode the image */
AVPacket pkt;
int got_output = 0;
av_init_packet(&pkt);
pkt.data = NULL; // packet data will be allocated by the encoder
pkt.size = 0;
pkt.pts = AV_NOPTS_VALUE;
pkt.dts =AV_NOPTS_VALUE;
m_pYUVFrame->pts = video_st->codec->frame_number;
ret = avcodec_encode_video2(c, &pkt,frame, &got_output);
if (ret < 0) {fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret));
exit(1);
}
/* If size is zero, it means the image was buffered. */
if (got_output)
{
if (c->coded_frame->key_frame)pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
if (pkt.pts != AV_NOPTS_VALUE )
{
pkt.pts = av_rescale_q(pkt.pts,video_st->codec->time_base, video_st->time_base);
}
if(pkt.dts !=AV_NOPTS_VALUE )
{
pkt.dts = av_rescale_q(pkt.dts,video_st->codec->time_base, video_st->time_base);
}
/* Write the compressed frame to the media file. */
ret = av_interleaved_write_frame(oc,&pkt);
}
else {
ret = 0;
}
}

g) Fill_yuv_image函数:
/* Prepare a mmy image. */
static void fill_yuv_image(AVPicture *pict,int frame_index,int width, int height)
{
int x, y, i;
i = frame_index;
/* Y */
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
pict->data[0][y * pict->linesize[0] +x] = x + y + i * 3;
/* Cb and Cr */
for (y = 0; y < height / 2; y++)
{
for (x = 0; x < width / 2; x++)
{
pict->data[1][y * pict->linesize[1] +x] = 128 + y + i * 2;
pict->data[2][y * pict->linesize[2] +x] = 64 + x + i * 5;
}
}
}

h) 打印sdp信息,仅需一次,打印的sdp信息,用在VLC播放器结束网络视频流时用到
//打印sdp信息
char sdp[2048];
av_sdp_create(&fmtctx,1, sdp, sizeof(sdp));
printf("%s\n",sdp);
fflush(stdout);

i)最后,做一些清理工作
avcodec_free_frame(&m_pYUVFrame);
av_write_trailer(fmtctx);
/* Free the streams. */
for (unsigned int i = 0; i< fmtctx->nb_streams;i++)
{
av_freep(&fmtctx->streams->codec);
av_freep(&fmtctx->streams);
}
if(!(fmtctx->oformat->flags& AVFMT_NOFILE))
/* Close the output file. */
avio_close(fmtctx->pb);
/*free the stream */
av_free(fmtctx);

3、编译代码,记得添加库文件,运行一次代码,不用死循环,设置不用循环,因为是要让他打印出sdp文件的信息。得到sdp信息,比如我精简成如下:
c=IN IP4 127.0.0.1
m=video 56782 RTP/AVP 96
a=rtpmap:96 H264/90000
a=framerate:25
a=fmtp:96 packetization-mode=1

把这些信息保存到一个文本文件,并改名为sdp后缀,如mySDP.sdp。
4、从官网下载VLC播放器,重新运行上述的代码,这一次要循环,具体循环多久,你自己决定,这一次是正式测试了。代码跑起来后,把刚刚的sdp文件用VLC打开,直接把sdp文件拖到VLC播放器中就行了。等待缓冲,就可以看到效果了。
5、代码中剩掉了出错检查部分,请自行添加。
6、关于IP地址,这里是127.0.0.1,是供本机测试,可以改成制定的接受数据的电脑IP地址,或者广播地址IP地址。

❸ 3D建模都用哪些软件


3D建模软件有下列几种:

一、C4D软件



是Siemens PLM Software公司出品的一个产品工程解决方案,它为用户的产品设计及加工过程提供了数字化造型和验证手段。

Unigraphics NX针对用户的虚拟产品设计和工艺设计的需求,提供了经过实践验证的解决方案。

UG同时也是用户指南(user guide)和普遍语法(Universal Grammar)的缩写。

UG里面自带的光线追踪渲染出来的。


五、KeyShot

意为“The Key to Amazing Shots”,是一个互动性的光线追踪与全域光渲染程序,无需复杂的设定即可产生相片般真实的 3D 渲染影像。

专门的渲染软件Keyshot,操作简单功能强大,支持市面上常用的三维模型,导入既可使用。


六、3D One

3D One软件是全国首创的青少年三维创意设计软件,是助力中小学培养创新思维和开展创新教学的重要工具。

3D One已广泛应用于通用技术、信息技术、综合实践等学科领域,与趣味编程、机器人、开源硬件、3D打印机、激光切割机等技术融合协同发展,将创想转化为实物,激发学生自主学习的热情,积极地发挥学生的主观能动性和创造性,推动中小学生从软件应用能力向创新能力素养的转变。


七、sketch up。

SketchUp又名“草图大师”, 是一款可供您用于创建、共享和展示 3D 模型的软件。不同于3dsmax,它是平面建模。通过一个使用简单、内容详尽的颜色、线条和文本提示指导系统,让人们不必键入坐标,就能帮助其跟踪位置和完成相关建模操作。

就像人们在实际生活中使用的工具那样,SketchUp 为数不多的工具中每一样都可做多样工作。


八、SolidWorks。

简称“SW”。

SolidWorks是达索系统(Dassault Systemes )下的子公司,专门负责研发与销售机械设计软件的视窗产品,公司总部位于美国马萨诸塞州。


九、犀牛

Rhino是由美国Robert McNeel公司于1998年推出的一款基于NURBS为主的三维建模软件。

Rhino软件,Rhino英文全名为Rhinoceros,中文称之为犀牛,于1998年8月正式上市,是美国Robert McNeel & Assoc开发的PC上强大的专业3D造型软件。

❹ ubuntu 环境下怎样编译pixhawk px4源码

Ubuntu环境下Pixhawk原生固件PX4的编译
分类:无人机ubuntu代码编译Pixhawk
(3946) (6)
Ubuntu下Pixhawk原生固件PX4的编译这个问题困扰了两天时间,可能是博主脑力不够,主要是环境搭建不起来,主要原因应该是路径的原因,最后在大师傅的帮助下还好成功将路径搭建好,成功编译。

下面就跟大家分享一下环境搭建的过程。

1.操作环境

每次写文章,环境一定要介绍的,不同的环境总会出现不同的问题

我的环境是Windows下面安装虚拟机,虚拟机跑Ubuntu

Windows:win10 64位

虚拟机:VMware Workstation 12 Pro 12.1.0 build-3272444

Ubuntu:Ubuntu15.10

2.编译环境搭建

(1)权限设置

官方提示:

Warning Never ever fix permission problems by using 'sudo'. It will create more permission problems in the process and require a system reinstallation to fix them.
意思是你会遇到权限问题,不要用sudo解决,那样会带来更多问题,但是我没听他的,我没用,最后也是实现了

官方提供指令

[plain] view plain

然后注销,重新登录生效

(2)安装

更新包列表,安装下面编译PX4的依赖包。PX4主要支持的系列:

NuttX based hardware: Pixhawk, Pixfalcon
Snapdragon Flight hardware: Snapdragon
Raspberry Pi hardware: Raspberry Pi 2
Host simulation: jMAVSim SITL and Gazebo SITL

注意:安装Ninja Build System可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。

[plain] view plain
卸载模式管理器

[plain] view plain

更新包列表和安装下面的依赖包。务必安装指定的版本的包

[plain] view plain

上面代码中红色部分大家需要一高警惕,gcc-arm-none-eabi版本导致PX4/Firmware编译错误,现在apt-get安装的gcc-arm-none-eabi基本上是4.9的版本,但是这个固件需要gcc-arm-none-eabi 4.8de 版本,所以最后安装好以后,查看你的gcc-arm-none-eabi版本,如果是4.9需要手动安装4.8的版本,安装gcc-arm-none-eabi 4.8的版本的方法如下:

[plain] view plain

【Warning】上面红色的路径一定要添加正确,不然问题很多,我第一次就输入错误,结果结果开不了机了,反复输入密码。博主装的是Ubuntu 64位系统,而上述arm-none-eabi是直接下载的编译好的32位,还需要安装一个东西
[plain] view plain
可以检查arm-none-eabi 4.8.4是否安装成功,输入以下指令:

[plain] view plain
如果出现如上信息,交叉编译环境搭建就搭建成功了
(3)代码编译
根据PX4中文维基官网教程。
安装Git

[plain] view plain
下载代码

[plain] view plain
初始化
先进入Firmware文件夹,进而进行初始化、更新子模块操作,耐心的等待……

[plain] view plain
权限
编译时会遇到权限问题,执行指令

[plain] view plain
-R 是对文件下面包含的子文件权限问题,* 是对所有文件的权限问题
编译

[plain] view plain
注意到“make”是一个字符命令编译工具,“px4fmu-v2”是硬件版本,“default”是默认配置,所有的PX4编译目标遵循这个规则。
最后附一张编译成功的代码,如果这样你还有问题,请给我留言。

[plain] view plain
-- nuttx-px4fmu-v2-default
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
-- Found pythonInterp: /usr/bin/python (found version "2.7.10")
-- Using C++03
-- Release build type: RelWithDebInfo
-- Adding UAVCAN STM32 platform driver
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lihongwei/Documents/Firmware/build_px4fmu-v2_default
#+@Tools/check_submoles.sh
PX4 CONFIG: px4fmu-v2_default
Scanning dependencies of target git_mavlink
Scanning dependencies of target git_uavcan
Scanning dependencies of target git_gencpp
Scanning dependencies of target git_genmsg
[ 0%] Generating git_init_mavlink_include_mavlink_v1.0.stamp
[ 0%] Generating git_init_src_moles_uavcan_libuavcan.stamp
[ 0%] Generating git_init_Tools_genmsg.stamp
[ 0%] Generating git_init_Tools_gencpp.stamp
[ 0%] Built target git_uavcan
[ 0%] Built target git_mavlink
[ 0%] Built target git_genmsg
[ 0%] Built target git_gencpp

❺ 请教这段PHP代码的源码是什么

你打开文件的格式是什么格式。 这个程序原来编写的格式又是什么格式。砍乱码没人知道源码是啥

linux v4l2图片采集问题

源码中:
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
ioctl (fd, VIDIOC_S_FMT, &fmt);
指定了采集图像的格式为YUYV格式。
要像采集成JPEG图像,得查询一下摄像头是否有相应功能,如果没有相应功旅知能即使拆亏消将fmt设置为jpeg最终采集到的还是yuyv格式。
yuyv可以转换为bmp数据,然后调用jpeglib库转换为jpg图像,稍稍有些麻烦,但没办法硬件不足就要用软件来弥补了。
至于你说的read没读到数据,我现在没有开发空携环境,没法测试。

❼ ffmpeg + cuda(cuvid) 硬解码+像素格式转换(cpu主导)实战

cuvid 与 VDPAU 是平级的东西,不能拿来直接使用,使用成本太大

note:

note

Note: For Video Codec SDK 7.0 and later, NVCUVID has been renamed to NVDECODE API.

这是我第一次使用的方式,模仿 cpu 上软解码(获取视频帧,并存储为bmp格式,经验原则,这种方式最容易想到)
运行结果:
失败,bad src img pointers
运行灶首结果如下图所示:

问察辩孝题原因:

gpu 不支持 sws_scale + AV_PIX_FMT_CUDA-> AV_PIX_FMT_BGR24 的直接像素转换方式,那么 能否直接在gpu中直接转化 AV_PIX_FMT_CUDA 为 AV_PIX_FMT_BGR24呢?
如果可以直接实现,性能会有很大提升,因为减少了device->host 的数据传输,且gpu多核心并行处理,肯定比cpu处理性能要强悍。

运行结果:
失败,像素没对齐,只有亮度
运行结果如下图所示:
![预先设置内存中frame目标像素格式为 AV_PIX_FMT_BGR24]

问题原因:
如下图所示:

所以gdb了下源码,发现src->frame->format 转换为 dst->frame->format 的受限范围很小,然后找出了 av_hwframe_transfer_get_formats 支持的formats,
调试过程如下所示:
gdb -tui hw_decode_cuvid (-tui 支持查看源码)

在调用 av_hwframe_transfer_data() 函数处打上断点,且设置程序运行所需参数

run 程序,step 进入函数调用栈

n 单步运行,函数调用至 transfer_data_alloc()

发现 av_hwframe_transfer_get_formats()函数败稿

更改 dst->format 的值为<0的值,并打印支持的像素转换列表

可以看到只支持 gpu 硬件像素编码格式->AV_PIX_FMT_NV12 的转换

运行结果:
成功,如下图所示:

❽ qt creator 怎么编辑pix飞控源码

检测下是不是和系统中其掘核他软件的热键发生冲突用屏幕键盘(windows)试指散升试好不好用,看是否唯老是键盘问题

❾ 如何将lcd驱动移植到linux内核中

本移植主要参考友善之臂移植手册完成,做个笔记以备不时之需
Linux-2.6.32 内核LCD驱动移植
使用环境:fedora9
交叉编译工具链:arm-linux-gcc-4.4.3
内核源码来源:https://www.kernel.org/pub/linux/kernel/v2.6/
内核存放目录:/opt/mymini2440/linux-2.6.32

一、LCD背光驱动移植
在、opt/mymini2440/linux-2.6.32/drivers/video/目录下添加背光驱动程序mini2440_backlight.c,内容如下:

//以下头文件可能并不是每一个都必须的,但多余的并不会影响驱动程序的内容

#include <linux/errno.h>

#include <linux/kernel.h>

#include <linux/mole.h>

#include <linux/slab.h>

#include <linux/input.h>

#include <linux/init.h>

#include <linux/serio.h>

#include <linux/delay.h>

#include <linux/clk.h>

#include <linux/miscdevice.h>

#include <linux/gpio.h>

#include <asm/io.h>

#include <asm/irq.h>

#include <asm/uaccess.h>

#include <mach/regs-clock.h>

#include <plat/regs-timer.h>

#include <mach/regs-gpio.h>

#include <linux/cdev.h>

#undef DEBUG

//#define DEBUG

#ifdef DEBUG

#define DPRINTK(x...) {printk(__FUNCTION__"(%d): ",__LINE__);printk(##x);}

#else

#define DPRINTK(x...) (void)(0)

#endif

//定义背光驱动的名称为backligh,将会出现在/dev/backlight

#define DEVICE_NAME "backlight"

//定义背光变量bl_state,以记录背光的开关状态

static unsigned int bl_state;

//设置背光开关的函数,主要是翻转背光变量bl_state

static inline void set_bl(int state)

{

bl_state = !!state; //翻转bl_state 变量

s3c2410_gpio_setpin(S3C2410_GPG(4), bl_state); //把结果写入背光所用的寄存器GPG4

}

//获取背光状态

static inline unsigned int get_bl(void)

{

return bl_state;

}

//从应用程序读取参数,并传递到内核中

static ssize_t dev_write(struct file *file, const char *buffer, size_t count, loff_t * ppos)

{

unsigned char ch;

int ret;

if (count == 0) {

return count;

}

//使用_from_user 函数从用户层/应用层读取参数

ret = _from_user(&ch, buffer, sizeof ch) ? -EFAULT : 0;

if (ret) {

return ret;

}

ch &= 0x01; //判断奇数还是偶数

set_bl(ch); //设置背光状态

return count;

}

//把内核参数传递给用户层/应用层的读函数

static ssize_t dev_read(struct file *filp, char *buffer, size_t count, loff_t *ppos)

{

int ret;

unsigned char str[] = {'0', '1' };

if (count == 0) {

return 0;

}

//使用_to_user 函数把内核参数传递到用户层/应用层

ret = _to_user(buffer, str + get_bl(), sizeof(unsigned char) ) ? -EFAULT : 0;

if (ret) {

return ret;

}

return sizeof(unsigned char);

}

//设备操作集

static struct file_operations dev_fops = {

owner: THIS_MODULE,

read:dev_read,

write: dev_write,

};

static struct miscdevice misc = {

.minor = MISC_DYNAMIC_MINOR,

.name = DEVICE_NAME,

.fops = &dev_fops,

};

//设备初始化,内核启动时就有效

static int __init dev_init(void)

{

int ret;

ret = misc_register(&misc);

printk (DEVICE_NAME"\tinitialized\n");

//初始化背光所用的端口GPG4 为输出

s3c2410_gpio_cfgpin(S3C2410_GPG(4), S3C2410_GPIO_OUTPUT);

//启动内核时打开背光

set_bl(1);

return ret;

}

static void __exit dev_exit(void)

{

misc_deregister(&misc);

}

mole_init(dev_init); //注册背光驱动模块

mole_exit(dev_exit); //卸载背光驱动模块

MODULE_LICENSE("GPL");

MODULE_AUTHOR("FriendlyARM Inc.");
在/opt/mymini2440/linux-2.6.32/drivers/video/目录项的菜单文件Kconfig中添加LCD背光驱动配置菜单如下:

config FB_S3C2410_DEBUG

bool "S3C2410 lcd debug messages"

depends on FB_S3C2410

help

Turn on debugging messages. Note that you can set/unset at run time

through sysfs

config BACKLIGHT_MINI2440

tristate "Backlight support for mini2440 from FriendlyARM"

depends on MACH_MINI2440 && FB_S3C2410

help

backlight driver for MINI2440 from FriendlyARM

config FB_SM501

tristate "Silicon Motion SM501 framebuffer support"
在/opt/mymini2440/linux-2.6.32/drivers/video/Makefile中添加背光驱动目标文件

# the test framebuffer is last

obj-$(CONFIG_FB_VIRTUAL) += vfb.o

#video output switch sysfs driver

obj-$(CONFIG_VIDEO_OUTPUT_CONTROL) += output.o

obj-$(CONFIG_BACKLIGHT_MINI2440) += mini2440_backlight.o
配置内核:
Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices
---> <*> Backlight support for mini2440 from FriendlyARM
背光驱动移植完毕!
二、LCD驱动移植
在内核中添加各种LCD 类型的支持(我是X35的屏,也是我只需关注的部分,不过还是都添加了,X35有红色标出)
删除mach-mini2440.c原有代码(本人115行-158行)

162
163 //LCD2VGA(分辨率为1024x768)模块的配置和参数设置
164 #elif defined(CONFIG_FB_S3C2410_VGA1024768)
165 #define LCD_WIDTH 1024
166 #define LCD_HEIGHT 768
167 #define LCD_PIXCLOCK 80000
168 #define LCD_RIGHT_MARGIN 15

169 #define LCD_LEFT_MARGIN 199
170 #define LCD_HSYNC_LEN 15
171 #define LCD_UPPER_MARGIN 1
172 #define LCD_LOWER_MARGIN 1
173 #define LCD_VSYNC_LEN 1
174 #define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_HWSWP)
175
176 #elif defined(CONFIG_FB_S3C2410_X240320)
177 #define LCD_WIDTH 240
178 #define LCD_HEIGHT 320
179 #define LCD_PIXCLOCK 170000
180 #define LCD_RIGHT_MARGIN 25
181 #define LCD_LEFT_MARGIN 0
182 #define LCD_HSYNC_LEN 4
183 #define LCD_UPPER_MARGIN 0
184 #define LCD_LOWER_MARGIN 4
185 #define LCD_VSYNC_LEN 9
186 #define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_INVVDEN | S3C2410_LCDCON5_INVVFRAME | S3C2410_LCDCON5_INVVLINE | S3C2410_LCDCON5_INVVCLK | S3C2410_LCDCON5_HWSWP )
187 #endif
188
189 #if defined (LCD_WIDTH)
190
191 static struct s3c2410fb_display mini2440_lcd_cfg __initdata = {
192 #if !defined (LCD_CON5)
193 .lcdcon5 = S3C2410_LCDCON5_FRM565 |
194 S3C2410_LCDCON5_INVVLINE |
195 S3C2410_LCDCON5_INVVFRAME |
196 S3C2410_LCDCON5_PWREN |
197 S3C2410_LCDCON5_HWSWP,
198 #else
199 .lcdcon5 = LCD_CON5,
200 #endif
201 .type = S3C2410_LCDCON1_TFT,
202 .width = LCD_WIDTH,
203 .height = LCD_HEIGHT,
204 .pixclock = LCD_PIXCLOCK,
205 .xres = LCD_WIDTH,
206 .yres = LCD_HEIGHT,
207 .bpp = 16,
208 .left_margin = LCD_LEFT_MARGIN + 1,
209 .right_margin = LCD_RIGHT_MARGIN + 1,
210 .hsync_len = LCD_HSYNC_LEN + 1,
211 .upper_margin = LCD_UPPER_MARGIN + 1,
212 .lower_margin = LCD_LOWER_MARGIN + 1,
213 .vsync_len = LCD_VSYNC_LEN + 1,

214 };
215
216 static struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
217 .displays = &mini2440_lcd_cfg,
218 .num_displays = 1,
219 .default_display = 0,
220 .gpccon = 0xaa955699,
221 .gpccon_mask = 0xffc003cc,
222 .gpcup = 0x0000ffff,
223 .gpcup_mask = 0xffffffff,
224 .gpdcon = 0xaa95aaa1,
225 .gpdcon_mask = 0xffc0fff0,
226 .gpp = 0x0000faff,
227 .gpp_mask = 0xffffffff,
228 .lpcsel = 0xf82,
229 };
230
231 #endif
232
然后打开drivers/video/Kconfig,在大概1935 行加入以下配置信息:

1923 config FB_S3C2410_DEBUG

1924 bool "S3C2410 lcd debug messages"

1925 depends on FB_S3C2410

1926 help

1927 Turn on debugging messages. Note that you can set/unset at run time

1928 through sysfs

1929

1930 choice

1931 prompt "LCD select"

1932 depends on FB_S3C2410

1933 help

1934 S3C24x0 LCD size select

1935

1936 config FB_S3C2410_T240320

1937 boolean "3.5 inch 240X320 Toppoly LCD"

1938 depends on FB_S3C2410

1939 help

1940 3.5 inch 240X320 Toppoly LCD

1941

1942 config FB_S3C2410_N240320

1943 boolean "3.5 inch 240X320 NEC LCD"

1944 depends on FB_S3C2410

1945 help
1946 3.5 inch 240x320 NEC LCD
1947
1948 config FB_S3C2410_TFT640480
1949 boolean "8 inch 640X480 L80 LCD"
1950 depends on FB_S3C2410
1951 help
1952 8 inch 640X480 LCD
1953
1954 config FB_S3C2410_TFT800480
1955 boolean "7 inch 800x480 TFT LCD"
1956 depends on FB_S3C2410
1957 help
1958 7 inch 800x480 TFT LCD
1959
1960 config FB_S3C2410_VGA1024768
1961 boolean "VGA 1024x768"
1962 depends on FB_S3C2410
1963 help
1964 VGA 1024x768
1965
1966 config FB_S3C2410_X240320
1967 boolean "3.5 inch 240X320 LCD(ACX502BMU)"
1968 depends on FB_S3C2410
1969 help
1970 3.5 inch 240X320 LCD(ACX502BMU)
1971
1972 endchoice

1973
1974 config BACKLIGHT_MINI2440
配置内核
Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices ---> LCD select (3.5 inch 240X320 LCD(ACX502BMU)) ---> (X) 3.5 inch 240X320 LCD(ACX502BMU)
LCD驱动移植完成!!!
三、开机logo和开机信息显示
Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices ---> [*] Bootup logo ---> [*] Standard 16-color Linux logo (本人的24位死活不能显示,先改成16位吧)
在文件系统rootfs/etc/inittab下作如下修改(为了在LCD上显示打印信息):

1 ::sysinit:/etc/init.d/rcS

2 tty1::askfirst:-/bin/sh //添加

3 s3c2410_serial0::askfirst:-/bin/sh

4 ::ctrlaltdel:/sbin/reboot

5 ::shutdown:/bin/umount -a -r

6
四,编译测试
#make zImage
#cd arch/arm/boot/
#mkimage -n 'mini2440_linux' -A arm -O linux -T kernel -C none -a 0x31000000 -e 0x31000040 -d zImage uImage
#chmod a+x uImage
#cp uImage /tftp/boot
设置U-BOOT参数如下:

热点内容
安卓70能用什么软件 发布:2025-05-16 01:45:09 浏览:479
编程发展史 发布:2025-05-16 01:38:52 浏览:528
android图片气泡 发布:2025-05-16 01:38:40 浏览:885
文件加密编辑器下载 发布:2025-05-16 01:30:41 浏览:343
linuxapacheyum安装 发布:2025-05-16 01:30:31 浏览:476
大连宾利浴池wifi密码是多少 发布:2025-05-16 01:25:36 浏览:172
缓存数据生产服务 发布:2025-05-16 01:08:58 浏览:584
普通电脑服务器图片 发布:2025-05-16 01:04:02 浏览:971
服务器地址和端口如何区分 发布:2025-05-16 01:03:17 浏览:834
重新编目数据库 发布:2025-05-16 00:54:34 浏览:514