lcm in qcom

2023-11-05

lcm需要生产的相关文件

根据fae提供的相关资料去配置自己的.xml文件,如下:

device/qcom/common/display/tools: panel_nt35596_1080p_video.xmlpanel_nt35590_720p_cmd.xml(具体使用的是cmd 或video的lcm看spec获取)

用fae提供的资料去生成自己的.xml

具体需要填充的参数有如下:

< OnCommand > 根据寄存器具体配置(其在panel.h下的有树解析)

PanelFrameRate(刷新速率)PanelWidthPanelHeight(分辨率) HFrontPorch,HBackPorch,HPulseWidth(水平前沿值,水平后沿值,水平脉冲宽度)

VBackPorch,VFrontPorch,VPulseWidth(垂直后沿值与上面相对应)DSILanes(通道数) 这些参数需要在提供的spec中查找(找关键字即可)或者找fae进行确认

TClkPost,TClkPre(指定模式切换前后的字节时钟周期)需要通过高通相关文档通过以上数据计算(相关计算qcm文档80-NH713-1_Y)具体的一些计算包括时序在80-P3255-33里面有详细介绍。

perl parser.pl .xml panel生成相关lk下的.h与kernel下的.dtsi文件(设备输的具体解析请见

https://blog.csdn.net/sinat_34606064/article/details/77921323(里面有更详细的干货!!!))

到这里需要的相关文件已具备

lcm in lk

用生成的.h文件添加到bootable/bootloader/lk/dev/gcdb/display/include下面

修改bootable/bootloader/lk/target/platform/oem_panel.c如下:

#include “.h”

#include "include/panel_ili9881c_1080p_video.h"

enum { (加入自己的panel名称)

emum{
.....
        ILI9881C_1080P_VIDEO_PANEL,
        UNKNOWN_PANEL
};

static struct panel_list supp_panels (加入自己的panel名称)

static struct panel_list supp_panels[] = {
        {"nt35596_1080p_video", NT35596_1080P_VIDEO_PANEL},
        {"ili9881c_1080p_video", ILI9881C_1080P_VIDEO_PANEL},
};

static int init_panel_data添加case TRULY_1080P_VIDEO_PANEL(相应panel去解析自己的.h文件)

        case ILI9881C_1080P_VIDEO_PANEL:(.相对应即可)
                panelstruct->paneldata    = &ili9881c_1080p_video_panel_data;
                panelstruct->panelres     = &ili9881c_1080p_video_panel_res;
                panelstruct->color        = &ili9881c_1080p_video_color;

int oem_panel_select在相应platfom下替换自己的panel

case HW_PLATFORM_XXx:
       panel_id = ILI9881C_1080P_VIDEO_PANEL;

具体lk流程(盗张图)
在这里插入图片描述
lk相关配置完成

lcm in kernel

与lk差不多把生成的dts加入让其解析 在kernel/msm-4xx/arch/arm64/boot/dts/qcom/xx-mdss-panels.dtsi

#include "dsi-panel-ili9881c-1080p-video.dtsi"
 &mdss_dsi0 {

      lab-supply = <&lcdb_ldo_vreg>;
      ibb-supply = <&lcdb_ncp_vreg>;
      /delete-property/ vdd-supply;
      qcom,dsi-pref-prim-pan = <&dsi_ili9881c_1080p_video>;
      qcom,platform-bklight-en-gpio = <&pm8953_gpios 4 0>;
      pinctrl-names = "mdss_default", "mdss_sleep";
      pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
      pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
      qcom,platform-te-gpio = <&tlmm 24 0>;()
      qcom,platform-reset-gpio = <&tlmm 61 0>;
      qcom,platform-enable-gpio = <&tlmm 25 0>;

}; &dsi_ili9881c_1080p_video {

      qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
      qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
      qcom,mdss-dsi-bl-pmic-bank-select = <0>;
      qcom,mdss-dsi-pwm-gpio = <&pm8953_gpios 8 0>;
      qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;

}; 一些电和gpio以及背光方式 

一些注意的事项

debug 串口log

[ 3.738288] mdss_dsi_find_panel_of_node: cmdline:0:qcom,mdss_dsi_ili9881c_1080p_video:1:none:cfg:single_dsi panel_name:qcom,mdss_dsi_ili9881c_1080p_video

[ 3.743813] mdss_dsi_panel_init: Panel Name = ili9881c 1080p video mode dsi panel

[ 3.757658] mdss_dsi_panel_timing_from_dt: found new timing “qcom,mdss_dsi_ili9881c_1080p_video” (fffffff2ece971e8)

看下相应的panel有无加载成功

也可以adb shell cat proc/cmdline

需要计算的时序和周期:
for example : 45678{1e e 4 5 2} 4567890{1e 1b 4 6 2 3 4}

                qcom,mdss-dsi-panel-timings-phy-v2 = [1e 1b 04 06 02 03 04 a0
                        1e 1b 04 06 02 03 04 a0
                        1e 1b 04 06 02 03 04 a0
                        1e 1b 04 06 02 03 04 a0
                        1e 0e 04 05 02 03 04 a0];
                qcom,mdss-dsi-t-clk-post = <0x0a>;
                qcom,mdss-dsi-t-clk-pre = <0x1e>;

这三个.h与.dtsi一致,参考前面的一些高通文档(懒得盗图了80-P3255-33?/\80-P8754-45)
如果不亮先检查下自己的配置和相应的寄存器 .h里需要注意的

static struct panel_config ili9881c_1080p_video_panel_data = {
	"qcom,mdss_dsi_ili9881c_1080p_video", "dsi:0:", "qcom,mdss-dsi-panel",
	10, 0, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL
};// 生成的可能会上两个值补上0,NULL可以看下结构体成员

static struct lane_configuration ili9881c_1080p_video_lane_config = {
	4, 0, 1, 1, 1, 1, 0
};//与上相同少个值加上去

static char ili9881c_1080p_video_on_cmd189[] = {
	0x02, 0x00, 0x29, 0xC0,
	0x11, 0x00, 0xFF, 0xFF,
};
 
static char ili9881c_1080p_video_on_cmd190[] = {
	0x02, 0x00, 0x29, 0xC0,
	0x29, 0x00, 0xFF, 0xFF,
};
	{0x8, ili9881c_1080p_video_on_cmd189, 0x78},
	{0x8, ili9881c_1080p_video_on_cmd190, 0x28}//注意下延时的位置

static struct labibb_desc ili9881c_1080p_video_labibb = {
	0, 1, 4600000, 6000000, 4600000, 6000000, 3, 3, 1, 0
}; //偏压与dtsi对应即可

先到这里以后再补

其他平台(sdm845)

kernel 中差不多主要是设备树的配置,主要包括屏的初始化以及背光,还有相应的电;
aboot 的开机初始化移至uefi(cp侧)改动挺大的;

in kernel

在内核中设备树有所变更,尽量不要用生成的dtsi,可以根据屏的模式(cmd or video)去选择已有的dis-(mode).dtsi 拷贝进行相应更改,注意包头;

                    39 01 00 00 00 00 05 B8 03 06 00 00     //EQ Control Function For Source Driver
                    39 01 00 00 00 00 05 BD 01 40 14 14     //Display Timing Control
                    15 01 00 00 00 00 02 6F 01
                    15 01 00 00 00 00 02 C0 03
                    05 01 00 00 78 00 02 11 00
                    05 01 00 00 20 00 02 29 00
       qcom,mdss-dsi-off-command = [05 01 00 00 20 00 02 28 00              //display off
                    05 01 00 00 80 00 02 10 00];
                    包头规律请注意,uefi同理不太懂;
                    属性增减看需求;
sdm845-sde-display.dtsi
#include "dsi-panel-p101-1600x2560-video.dtsi"
	dsi_p101_leia_1080p_video_display: qcom,dsi-display@0 {
		compatible = "qcom,dsi-display";
		label = "dsi_p101_leia_1080p_video_display";
		qcom,display-type = "primary";
 
		qcom,dsi-ctrl = <&mdss_dsi0 &mdss_dsi1>;
		qcom,dsi-phy = <&mdss_dsi_phy0 &mdss_dsi_phy1>;
		clocks = <&mdss_dsi0_pll BYTECLK_MUX_0_CLK>,
			<&mdss_dsi0_pll PCLK_MUX_0_CLK>;
		clock-names = "mux_byte_clk", "mux_pixel_clk";
 
		pinctrl-names = "panel_active", "panel_suspend";
		pinctrl-0 = <&sde_dsi_active &sde_te_active &dsi_backlight_ctrl_default>;
		pinctrl-1 = <&sde_dsi_suspend &sde_te_suspend &dsi_backlight_ctrl_suspend>;
		qcom,platform-te-gpio = <&tlmm 10 0>;
		qcom,platform-reset-gpio = <&tlmm 6 0>;
		qcom,panel-mode-gpio = <&tlmm 52 0>;
 
		qcom,dsi-panel = <&dsi_p101_leia_1080p_video>;
		vddio-supply = <&pm8998_l14>;
		lab-supply = <&lab_regulator>;
		ibb-supply = <&ibb_regulator>;
	};/*copy个出来作出相应修改,注意下dsi-display@x顺序递增 //注意不要变更// */
 
&mdss_mdp {
	connectors = <&sde_rscc &sde_wb &sde_dp &dsi_p101_leia_1080p_video_display>;  //加载已有的ic
};
//其实平台的流程的差不多,开始调试时可以找默认的ic进行对比调试;

其实平台的流程的差不多,开始调试时可以找默认的ic进行对比调试;

sdm845-v2.1-4k-panel-qrd-overlay.dts
&dsi_p101_leia_1080p_video {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
 
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
	//qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
	//pwms = <&pmi8998_pwm_1 0 0>;
	//qcom,mdss-dsi-bl-pmic-bank-select = <0>;
	//qcom,mdss-dsi-pwm-gpio = <&pmi8998_gpios 2 0>;
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
	qcom,panel-mode-gpio = <&tlmm 52 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
	qcom,platform-reset-gpio = <&tlmm 6 0>;
};//copy 后做相应更改
 
&dsi_sharp_4k_dsc_video_display {
	/delete-property/ qcom,dsi-display-active;
};
 
&dsi_p101_leia_1080p_video {
	qcom,dsi-display-active;
}; //删除已有的ic加载/delete-property/ qcom,dsi-display-active;

没亮屏时先看有无背光

后续再补充;

in uefi

boot_images/QcomPkg/Include/Library/MDPPlatformLib.h
 
typedef enum {
  MDPPLATFORM_PANEL_NONE =0x0,                            /* No panel specified                     */
  MDPPLATFORM_PANEL_SIM_VIDEO_PANEL,                      /* Single DSI video mode simulation panel */
  .......
    MDPPLATFORM_PANEL_LEIA_P101_1080P_VIDEO,             /* P101 LEAA dual dsi video mode */
  MDPPLATFORM_PANEL_MAX
} MDPPlatformPanelType
加入id即可;
boot_images/QcomPkg/SDM845Pkg/Library/MDPPlatformLib/MDPPlatformLib.c
上述id 在这定义
 
#if 0
const static int8 Sharp_4k_video_dsc_xmldata[] =(所以的原有参数)
#endif
 
拷贝上述一个参数根据自己的参数进行填充;
const static int8 Leia_2k_video_dsc_xmldata[] =
     "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
                        " 05 11 00\n"
                       " ff f0\n"
                       " 05 29 00\n"
                       " ff f0\n"  //11 29 的延迟
                       "</DSIInitSequence>"
                       "<DSITermSequence>"
                       " 05 28\n"
                       " 05 10\n"
                       "</DSITermSequence>"
                       "<TLMMGPIODefaultLow units='hex list'>34</TLMMGPIODefaultLow>"
                       "<Group id='Backlight Configuration'>"
                       " <BacklightType units='MDP_Panel_BacklightType'>1</BacklightType>\n"
                       " <BacklightPmicControlType units='MDP_PmicBacklightControlType'>2</BacklightPmicControlType>\n"  
                       " <DisplayResetInfo>0 10 1000 10000 0</DisplayResetInfo>\n"
                       "</Group>\n";
#if 0
static PlatformDSIDetectParams panelList_0[](所有的元数据,主屏为0)
static PlatformDSIDetectParams panelList_1[]
#endif
copy 个下来
static PlatformDSIDetectParams panelList_0[] = {    /* subtype == 1 */
    // Panel #1 - Truly DSI Command Mode Panel (1440x2560 24bpp
	{  
		 0x06,                                                  // uCmdType
	     0x05,                                                  // total number of retry on failures
	 {
        {{0xDA, 0x00},                                       // address to read ID1
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}     // expected readback
        }, 
        {{0xDB, 0x00},                                       // address to read ID2
        {0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}     // expected readback
        },
       {{0xFE, 0x00},                                       // address to read ID3
        {0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}     // expected readback
        }
	 },
      0,                                                     // Lane remap order {0, 1, 2, 3}
     Leia_2k_video_dsc_xmldata,                     // psPanelCfg (panel configuration)
       sizeof(Leia_2k_video_dsc_xmldata),             // uPanelCfgSize
     MDPPLATFORM_PANEL_LEIA_P101_1080P_VIDEO,       // eSelectedPanel 
       0                                                      // uFlags
   }
};
id 在这定义
const PanelInfoType gPanelList[] =
{
#if 0
.......其他不用的注释
#endif
  PANEL_CREATE_ENTRY("leia_wqxga_dual_vid",           MDPPLATFORM_PANEL_LEIA_P101_1080P_VIDEO,          "dsi_p101_leia_1080p_video_display:",       DISP_INTF_DSI, Leia_2k_video_dsc_xmldata,            DISP_TOPOLOGY_CONFIG_NONE,  DISP_TIMING_CONFIG_NONE, PLL_OVERRIDE_NONE, DISP_MODE_DUAL_DSI   | DISP_MODE_SKIP_BOOTLOADER | DISP_MODE_SEAMLESS_SPLASH_OFF,                                DISP_MODE_DUAL_DSI   | DISP_MODE_SKIP_BOOTLOADER | DISP_MODE_SEAMLESS_SPLASH_OFF,                                   DISP_MODE_DUAL_DSI   | DISP_MODE_SKIP_BOOTLOADER | DISP_MODE_SEAMLESS_SPLASH_OFF),
#if 0
#endif
 /*End of Table, DO NOT ADD PANEL BELOW THIS*/
 PANEL_CREATE_ENTRY("",                           MDPPLATFORM_PANEL_NONE,                         "",                                      DISP_INTF_NONE,NULL,                                  DISP_TOPOLOGY_CONFIG_NONE,  DISP_TIMING_CONFIG_NONE, PLL_OVERRIDE_NONE, DISP_MODE_NONE,                                    DISP_MODE_DUAL_DSI   | DISP_MODE_SKIP_BOOTLOADER,     DISP_MODE_DUAL_DSI   | DISP_MODE_SKIP_BOOTLOADER),
};
}
** FUNCTION: panel_ConfigGPIO()
** 
** DESCRIPTION:
**   Initialize LCD panel GPIOs and PMICs
**
**/
MDP_Status MDPPlatformConfigure(MDP_Display_IDType eDisplayId, MDPPlatformConfigType eConfig, MDPPlatformParams *pPlatformParams)
{
  MDP_Status               eStatus               = MDP_STATUS_OK;
  uint32                   uPanelID              = 0;
  MDPPlatformConfigType    ePlatformConfig;
  PlatformDSIDetectParams  *pPanelList           = NULL;
  uint32                   uPanelCnt;
 
注意这个函数的初始化,别走错了配置
build.sh
function boot() {
  echo BOOT building...
  sleep 2
  pushd boot_images/QcomPkg
  python buildex.py --variant LA -r RELEASE -t SDM845Pkg,QcomToolsPkg
  popd
} //xbl.elf ll
function adsp() {
  echo adsp building
  sleep 2
  pushd adsp_proc/build
  python ./build.py -c sdm845 -o clean -f ADSP
  python ./build.py -c sdm845 -o all -f ADSP
  popd
}

到此流程结束,见后续

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lcm in qcom 的相关文章

  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • PyQt5 - 无法使用 QVideoWidget 播放视频

    from PyQt5 QtWidgets import from PyQt5 QtMultimedia import from PyQt5 QtMultimediaWidgets import from PyQt5 QtCore impor
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • Linux 上的基准测试程序

    对于一项任务 我们需要使用不同的优化和参数来对我们的实现进行基准测试 有没有一种可行的方法可以在Linux命令行 我知道时间 上使用不同的参数对小程序进行基准测试 从而为我提供CSV或类似内容的时间数据 输出可能类似于 Implementa
  • 警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm64/v8) 不匹配

    警告 请求的映像平台 linux amd64 与检测到的主机平台 linux arm64 v8 不匹配 并且未请求特定平台 docker 来自守护程序的错误响应 无法选择具有功能的设备驱动程序 gpu 我在 mac 上尝试运行此命令时遇到此
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • 当用户按下打印时运行脚本,并且在脚本结束之前不开始假脱机(linux,cups)

    我需要做的是结合用户按下打印来执行 python 程序 脚本 并且在该程序退出之前不要让打印作业假脱机 原因是打印驱动程序不是开源的 我需要更改用户设置 在本例中是部门 ID 和密码 通常是每个用户 但因为这是一个信息亭 具有相同帐户的不同
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed
  • 在 Ubuntu 中找不到 X11/Xlib.h

    我试图在 Linux 上使用 open gl 编写一个相当简单的程序 但在编译时它说 编译拇指 egl 我对 GL 完全陌生 不知道出了什么问题 快速搜索使用 apt search Xlib h 打开 libx11 dev 包 但纯 Ope
  • Raspberry 交叉编译 - 执行程序以“分段错误”结束

    我有一个自己编写的程序 我想从我的 x86 机器上为 Raspberry Pi 构建它 我正在使用 eclipse 生成的 makefile 并且无法更改此内容 我已经阅读了 CC for raspi 的教程 Hackaday 链接 htt
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N
  • 配置:错误:无法运行C编译的程序

    我正在尝试使用 Debian Wheezy 操作系统在我的 Raspberry Pi 上安装不同的软件 当我运行尝试配置软件时 我尝试安装我得到此输出 checking for C compiler default output file
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那

随机推荐

  • 2023年5月份中国电子学会青少年软件编程(C语言)等级考试一级真题讲解

    1 输出第二个整数 题目描述 输入三个整数 把第二个输入的整数输出 输入 只有一行 共三个整数 整数之间由一个空格分隔 整数是32位有符号整数 输出 只有一行 一个整数 即输入的第二个整数 样例输入 123 456 789 样例输出 456
  • jsonp原理详解

    JSONP 全称 JSON with padding 是一种跨域请求的方法 它允许在不受限制地从一个域名获取数据并在另一个域名下使用该数据 JSONP 的原理是通过动态创建 script 标签来实现 在客户端向服务器发送请求时 服务器返回
  • 面试宝典----数据库(总结来自知乎路人甲)

    一 什么是存储过程 有哪些优缺点 存储过程是一些预编译的SQL语句 更加直白的理解 存储过程可以说是一个记录集 它是由一些T SQL语句组成的代码块 这些T SQL语句代码像一个方法一样实现一些功能 对单表或多表的增删改查 然后再给这个代码
  • svn 打patch

    patch patch 即 补丁 的意思 当代码有改动的时候 svn会产生diff 可以查看diff和打patch 使用Mac终端来打patch也是非常方便的 首先查看本地的修改 确认无误后 使用 svn diff gt PATCH 命令可
  • C++ main函数中参数argc和argv含义及用法

    argc 是 argument count的缩写 表示传入main函数的参数个数 argv 是 argument vector的缩写 表示传入main函数的参数序列或指针 并且第一个参数argv 0 一定是程序的名称 并且包含了程序所在的完
  • 2022美赛C题思路分享

    美赛c题 比特币和金子投资分析 问题翻译 下附思路 1 问题分析 本题题目理解较为简单 就是利用历史数据对于投资策略的分析 每一天的决策只能使用之前的历史数据 求解最佳的投资回报 并分析模型的可行性 2模型准备 时间序列分析模型选择 以及模
  • 学习实践-Whisper语音识别模型实战(部署+运行)

    1 Whisper内容简单介绍 OpenAI的语音识别模型Whisper Whisper 是一个自动语音识别 ASR Automatic Speech Recognition 系统 OpenAI 通过从网络上收集了 68 万小时的多语言 9
  • 【matplotlib】饼图+legend()、loc、color位置颜色图例中文显示(一个饼图的例子)

    博客已经搬家到 捕获完成 https www v2python com 1 原来自己做的饼图 http mp blog csdn net postedit 79222127 见文章 matplotlib 中文显示 负号显示 统计微信好友性别
  • 《再也不怕elasticsearch》Spring Boot集成Elasticsearch

    大家好我是迷途 一个在互联网行业 摸爬滚打的学子 热爱学习 热爱代码 热爱技术 热爱互联网的一切 再也不怕elasticsearch系列 帅途会慢慢由浅入深 为大家剖析一遍 各位大佬请放心 虽然这个系列帅途有时候更新的有点慢 但是绝对不会烂
  • django获取某一个字段的列表,values/values_list/flat

    django获取某一个字段的列表 values values list flat 2017年11月01日 11 43 28 阅读数 2241 python view plain copy class Building models Mode
  • C语言实现邻接矩阵(无向图的顺序表示)

    文章目录 有向 无向不带权图 带权图 定义图的结构体 初始化 分析 分配堆空间 对矩阵的行开辟空间 对矩阵 即二维数组 进行初始化 edge 0 0 edge 0 9 edge 1 0 edge 1 9 edge 2 0 edge 2 9
  • 全国物流快递查询网址大全

    http www kiees cn default htm
  • VMware&Linux详细安装步骤

    VMware Linux详细安装步骤 一 VmWare虚拟机的安装 1 安装虚拟机 注意 虚拟机安装完成后会在网络连接中多出两个虚拟网卡 二 在虚拟机上安装CentOS 1 创建新虚拟机 文件 新建虚拟机 或 直接点击 创建新的虚拟机 图标
  • python1_2列表(2)

    列表增删改查 1 增 all in list 0 3 hello True all in list append hello world 新增元素 print all in list 运行结果 2 插入 all in list 0 3 he
  • 机器学习-基础

    欢迎来到机器学习的世界 博客主页 卿云阁 欢迎关注 点赞 收藏 留言 本文由卿云阁原创 本阶段属于练气阶段 希望各位仙友顺利完成突破 首发时间 2021年5月5日 希望可以和大家一起完成进阶之路 作者水平很有限 如果发现错误 请留言轰炸哦
  • Java学习心得4——Java中的包是什么

    Java中的包完全可以理解成一个文件夹 如果你不信 我们可以做一些测试 1 我们先在eclipse中创建一个项目 java Project 命名为test 2 我们可以在文件资源管理器的中找到这个项目 3 我们双击进入test文件夹 再进入
  • 系统架构设计专业技能 · 信息安全技术

    点击进入系列文章目录 现在的一切都是为将来的梦想编织翅膀 让梦想在现实中展翅高飞 Now everything is for the future of dream weaving wings let the dream fly in re
  • 聊聊 cookie 管理那些事

    1 前言 在浏览内核加载网络资源的过程中我们离不开 HTTP 协议 它是在 Web 上进行数据交换的基础 同时也是一种无状态的 client server 协议 这种无状态的属性促使许多端存储技术产生 其中最重要的技术之一就是 cookie
  • 深入理解自增自减运算符,看懂表达式不糊涂

    自增运算符 和自减运算符 在算术表达式中容易造成使用上的错误 主要原因有两点 一是自增运算符和自减运算符在变量前后的位置不一样 其内部逻辑不一样 二是自增运算符和自减运算符只能用于变量 不能用于常量 首先讲解一下自增自减运算符的概念 自增自
  • lcm in qcom

    文章目录 lcm需要生产的相关文件 lcm in lk lcm in kernel 一些注意的事项 其他平台 sdm845 in kernel in uefi lcm需要生产的相关文件 根据fae提供的相关资料去配置自己的 xml文件 如下