当前位置: 首页 > news >正文

.cn网站怎样做产品推广

.cn网站,怎样做产品推广,实战直播,短视频app有哪些一、背景、目的、简介。 一般来说,通过uboot将屏幕参数传给kernel,是通过修改设备树。 uboot和kernel都需要屏幕点亮。uboot侧重于显示一张图片。而kernel则多是动画。 在这里,我先是找到了一个裸机点屏的代码。将其编译成静态库后&#x…

一、背景、目的、简介。

一般来说,通过uboot将屏幕参数传给kernel,是通过修改设备树。

uboot和kernel都需要屏幕点亮。uboot侧重于显示一张图片。而kernel则多是动画。

在这里,我先是找到了一个裸机点屏的代码。将其编译成静态库后,给uboot来调用。而不是通过荔枝派已经适配好了的uboot。

这样做,只需要将uboot初始化好了的内存地址传给内核就好了,当然还包括屏幕大小等信息,因为已经提前知道,所以在内核中写死了。然后利于simple-framebuffer,将内容映射为屏幕。然后有了fb0,就可以骚操作了。

二、问题:

但是在实际操作过程中遇到了些问题。比如说将内存地址传给kernel后,内核需要将该物理地址转为虚拟地址。使用ioremap后,不能功,会出错,但还是会显示注册framebuffer成功。

以及成功后,有显示fb0,但是屏幕上有条纹,明显不是fb所指内存中的内容。如果正常的话,uboot已经配置了tcon,tcon将fb里面的数据(先经过了de和mixer处理),自动发送到屏幕上。应该看到random的内容,这内容应该是.text或是全黑屏。但是,实际上是uboot显示的内容会慢慢消失。猜测是tcon被关闭了。

三、解决:

为什么uboot传参后的屏幕显示正常呢?为什么我修改simplefb_probe后,kernel起动时报错?下面的内容全部在/drivers/video/fbdev/simplefb.c中进行。

其实需要修改的不是simplefb_probe这个函数,而是simplefb_parse_dt,这个函数。

99行 simplefb_parse_dt修改为:

static int simplefb_parse_dt(struct platform_device *pdev,struct simplefb_params *params)
{struct device_node *np = pdev->dev.of_node;int ret;const char *format;int i;//ret = of_property_read_u32(np, "width", &params->width);ret = 0;params->width	= 800;if (ret) {dev_err(&pdev->dev, "Can't parse width property\n");return ret;}//ret = of_property_read_u32(np, "height", &params->height);ret	= 0;params->height	= 480;if (ret) {dev_err(&pdev->dev, "Can't parse height property\n");return ret;}//ret = of_property_read_u32(np, "stride", &params->stride);ret	= 0;params->stride	= 3200;if (ret) {dev_err(&pdev->dev, "Can't parse stride property\n");return ret;}//ret = of_property_read_string(np, "format", &format);ret	= 0;if (ret) {dev_err(&pdev->dev, "Can't parse format property\n");return ret;}params->format = NULL;for (i = 0; i < ARRAY_SIZE(simplefb_formats); i++) {//if (strcmp(format, simplefb_formats[i].name))if (strcmp("x8r8g8b8", simplefb_formats[i].name))continue;params->format = &simplefb_formats[i];break;}if (!params->format) {dev_err(&pdev->dev, "Invalid format value\n");return -EINVAL;}return 0;
}

还需要修改设备树:

通过网盘分享的文件:v3s_mini_dts.tar
链接: https://pan.baidu.com/s/1gJZEUVp4DVJMtSWjHNpzpA?pwd=wqvc 提取码: wqvc 
--来自百度网盘超级会员v3的分享

/{panel: panel {#address-cells = <1>;#size-cells = <0>;compatible = "urt,umsh-8596md-t", "simple-panel";port@0 {reg = <0>;//backlight = <&backlight>;#address-cells = <1>;#size-cells = <0>;panel_input: endpoint@0 {reg = <0>;remote-endpoint = <&tcon0_out_lcd>;};};};
}&tcon0_out {tcon0_out_lcd: endpoint@0 {reg = <0>;remote-endpoint = <&panel_input>;};
};chosen {#address-cells = <1>;#size-cells = <1>;ranges;simplefb_lcd: framebuffer@0 {compatible = "allwinner,simple-framebuffer","simple-framebuffer";allwinner,pipeline = "de0-lcd0";clocks = <&ccu CLK_BUS_TCON0>, <&display_clocks 0>,<&display_clocks 6>, <&ccu CLK_TCON0>;status = "disabled";};};

四、其它问题

还遇到过什么问题吧,比如,使用mplayer播放视频,但是只显示第一帧,然后报错,说无法得到第2个缓存。这个问题是,只使用了 compatible = "urt,umsh-8596md-t", "simple-panel";这是一个drm,但是simple-framebuffer没有配置好,不能用导致。将simple-framebuffer配置好就可以了。

五、uboot传参,对kernel设备树还是有影响的:

比如我将fdt_simplefb里的设置修改,本来显示设备是在chosen里的,但是被我改成了在/节点下。

那么问题又来了,framebuffer的地址也是uboot传入的,修改其值,会有影响吗?

经过测试,@其它数值,没有什么变化。

六、实物实拍:

好想做个小电视呀,微缩模型放城堡里..._哔哩哔哩_bilibili

http://www.ritt.cn/news/23382.html

相关文章:

  • 个人承接网站开发什么是网站推广?
  • 企业网站制作公司合肥网络推广员要怎么做
  • 海关总署2018年海关网站建设广州网站优化公司如何
  • 茂名做网站百度下载安装到桌面上
  • 通辽网站建设公司地产渠道12种拓客方式
  • wordpress 网站 上传黄页网站推广效果
  • 网站集约建设后网站域名规范ip域名查询网站入口
  • 招远建网站南宁百度关键词排名公司
  • 网络运维简历百度快速排名优化服务
  • 网站导航栏最多可以做几个二级子域名ip地址查询
  • wordpress模板代码在关键词优化推广策略
  • 网站502错误什么原因正规手游代理平台有哪些
  • 关于网站建设维护的创业计划书青岛关键词优化报价
  • 怎么设计公司的网站广告投放平台
  • 用本机做网站浏览小程序怎么开发自己的小程序
  • 醴陵住房和城乡建设厅网站能翻到国外的浏览器
  • 做移动网站快速排百度关键词搜索量
  • 企业官网网站建设谷歌商店下载官方正版
  • 唐山建设公司网站seo优化轻松seo优化排名
  • 网站设计的机构免费隐私网站推广
  • 北京网站建设培训班头条新闻最新消息
  • 网站建设公司工作流程优化网站视频
  • 网站设计的汕头公司上海百度分公司电话
  • 企业信息管理百度seo关键词排名
  • 找人做seo要给网站程序济南网站建设哪家好
  • 小说网站系统怎么做淘宝指数查询工具
  • 上饶金河湾做网站seo是指搜索引擎营销
  • wordpress手机pc分开模板榜单优化
  • 汽配人网做网站免费b站推广网站入口2020
  • 杭州专业做网站公司怎么创建自己的网站平台