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

【北京迅为】iTOP-4412全能版使用手册-第六十九章 Linux内核裁剪与定制

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、陀螺仪、CAN总线、RS485总线、500万摄像头等模块,稳定运行Android 4.0.3/Android 4.4操作,系统通用Linux-3.0.15+Qt操作系统(QT支持5.7版本),Ubuntu版本:12.04,接口智能分配 方便好用。


第六十九章 Linux内核裁剪与定制

Linux 内核看起来非常庞大,但是对于初学者以及开发应用程序的用户,根本不需要一开始就埋头于内核中,但是对于配置内核中的一些常用选项,并且编译出来下载到开发板上测试,则是必须掌握的,这是学习和掌握 Linux 的必行之路。

本章节不会谈到具体的代码,但是这里需要提醒的是,初学者特别是以前只接触过单片机的用户,Linux 学习过程中不需要也不可能从代码开始学习,Linux 驱动的学习步骤是"基础知识"“搭建环境”“编译烧写”,然后就是本章节的“定制内核”。通过定制内核来加深对Linux 的理解。另外本章节针对的内核版本是“linux3.0.15”。

特别提醒:迅为的精英版和全能版内核中都带有以下提到的代码,但是精英版和全能版的硬件却有区别。例如:can 目前就只有全能版支持,在精英版提供的源码中驱动已经有了。全能版没有 led,但是用户可以参考 led 驱动来控制其他 IO。

特别提醒:迅为的精英版和全能版内核中都带有以下提到的代码,但是精英版和全能版的硬件却有区别。例如:can 目前就只有全能版支持,在精英版提供的源码中驱动已经有了。全能版没有 led,但是用户可以参考 led 驱动来控制其他 IO。

为了方便用户能够方便的使用,我们针对不同的功能分别作了相应的内核配置文件。

首先必须了解的是迅为电子的内核有 SCP 和 POP 的分别,针对不同型号的核心板,内核有一些区别,不能弄混了。SCP 和 POP 是不能混用的。

69.1 使用缺省文件配置和编译内核_v3.5底板

解压内核源码包之后,如下图所示,可以看到红色方框中的内核缺省文件。

config_for_android_xxx 支持 Android 的缺省文件

config_for_linux_xxx 支持 Qt 的缺省文件

config_for_ubuntu_xxx 支持 Ubuntu 的内核缺省文件

字符 xxx 含义:

scp:表示支持 SCP 核心板

pop:表示支持 POP 1G 核心板

pop2G:表示支持 POP 2G 核心板

super:表示支持全能版

elite:表示支持精英版

hdmi:表示在 Ubuntu 系统下,支持 HDMI 显示

sd:表示在 Ubuntu 系统下,支持 sd 卡启动

2M:表示支持 200 万摄像头(默认支持 500 万摄像头)

69.2 使用缺省文件配置和编译内核_v4.0底板

解压内核源码包之后,如下图所示,可以看到红色方框中的内核缺省文件。

 

config_for_android_pop 支持 Android4.4.4 系统,POP 核心板的缺省文件

config_for_android_scp 支持 Android4.4.4 系统,SCP 核心板的缺省文件

config_for_linux_pop 支持 Qt 和 Linux 系统,POP 核心板的缺省文件

config_for_linux_scp 支持 Qt 和 Linux 系统,SCP 核心板的缺省文件

config_for_ubuntu_pop 支持 Ubuntu 系统,POP 核心板的缺省文件

config_for_ubuntu_pop_sd 支持 Ubuntu 系统,POP 核心板,SD 卡启动的缺省文件

config_for_ubuntu_scp 支持 Ubuntu 系统,SCP 核心板的缺省文件

config_for_ubuntu_scp_sd 支持 Ubuntu 系统,SCP 核心板,SD 卡启动的缺省文件

69.3 menuconfig的用法

在手动定制内核前,需要先了解一下如何使用配置工具“menuconfig”。进入解压的内核文件夹,如下图所示,输入命令“make menuconfig”,然后按“回车”。

 

如下图所示,就是 Linux 内核的配置界面。 

如下图所示,“方向按键”中的“左右”可以选择你需要的操作。“<Select>”表示进入选择的配置界面,“< Exit >”表示返回,“< Help >”可以阅读帮助文档。 

如下图所示,“方向按键”中的“上下”可以选择配置的选项。 

如下图所示,输入“/”,可以进入搜索界面。 

如下图所示,这里来查找一下“leds”的驱动,输入“leds”,然后按“回车”。 

如下图所示,发现很多配置都是“=n”,通过方向按键,控制向下翻页,然后观察哪个选项配置成了“=y”。 

如下图所示,这里可以看到这个 leds 驱动的目录“Device Drivers”“Character devices”。 

然后,根据查找出来的信息,找到对应的 leds 驱动。如下图,返回配置界面。找到“Device Drivers”目录,输入“回车”。 

如下图所示,进入“Device Drivers”对应的配置界面。 

然后,如下图所示,找到“Character devices”,输入“回车”。 

如下图所示,进入“Character devices”配置界面。 

如下图所示,“Enable LEDS config”找到对应的 leds 驱动配置选项。缺省配置文件里,这个已经选上了。 

 单击“空格”键后,去掉 leds 驱动选项。

再次敲击“空格”,选上 leds 驱动的选项。 

然后,选上“Exit”,如下图所示,输入“回车”。 

如下图所示,继续退出 

如下图所示,因为修改过配置选项,所以退出的时候会提醒“是否保存新的配置”。 

如下图所示,因为第一次操作,担心用户在无意间动了某个配置选项,编译后无法启动, 建议选择“No”,不保存退出。 

到这里,整个 Menuconfig 配置的操作以及流程就完全介绍完了。如果修改了配置文件,如下图所示的“.config”文件就会被修改。再次编译内核的时候,系统会根据新的config 文件来编译整个内核。 

69.4 驱动程序源代码的位置

解压内核后,可以找到如下驱动。注意,部分驱动在缺省状态下不会编译。

设备

源码位置

设备名

蜂鸣器

drivers/char/itop4412_buzzer.c

/dev/buzzer_ctl

LED 驱动

drivers/char/itop4412_leds.c

/dev/leds

AD 数模转换

drivers/char/itop4412_adc.c

/dev/adc

485 驱动

drivers/char/max485_ctl.c

/dev/max485_ctl_pin

GPS 驱动

drivers/char/gps.c

/dev/gps

RTC 实时时钟

drivers/rtc/rtc-s3c.c

/dev/rtc*

串口 0-3

drivers/tty/serial/samsung.c

/dev/ttySAC*

i2c 总线 0-8

drivers/i2c/busses/i2c-s3c2410.c

/dev/i2c*

SPI 总线

drivers/spi/spi_s3c64xx.c

can 驱动

net/can/af_can.c

9.7 和 7 寸塑料框和 5 寸

drivers/input/touchscreen/ft5x06_ts.c

金属框 10.1寸和 7 寸

drivers/input/touchscreen/gt9xx.c

4.3 寸屏

drivers/input/touchscreen/tsc2007.c

金属框屏

drivers/input/touchscreen/gt9xx.c

开机画面

(Log)

drivers/video/samsung/iTop-4412.h

显卡驱动

drivers/video/samsung/s3cfb_wa101s.c

LCD 背光

drivers/video/backlight/backlight.c

HDMI_HPD

drivers/media/video/samsung/tvout/s5p_tvout_hpd.c

/dev/ HPD

HDMI Audio

drivers/media/video/samsung/tvout/hw_if/mixer.c

SD/eMMC

drivers/mmc/host/sdhci-s3c.c

U 盘驱动

drivers/usb/storage/usb-storage.c

/mnt/udisk*

网卡

drivers/net/usb/dm9620.c

USB 转串口

PL2303

drivers/usb/serial/pl2303.c

USB 转串口

CP210X

drivers/usb/serial/cp210x.c

USB 摄像头

drivers/media/video/uvc/*

OV5640

media/video/ov5640*

MIPI-DSI 显

drivers/media/video/exynos/mipi-

csis/mipi-csis.c

声卡驱动

/sound/*

/dev/snd/

矩阵键盘

drivers/input/keyboard/gpio_keys.c

MFC

drivers/media/video/samsung

JPEG

drivers/media/video/samsung

USB_蓝牙

drivers/bluetooth

SDIO_WIFI

drivers/mtk_wcn_combo/*

USB 鼠标

drivers/hid

/dev/input/mice

USB 键盘

drivers/hid

/dev/input/event*

69.5 手动定制Linux内核

69.5.1 配置CPU 平台文件

每一个内核都需要对应特定的平台,下面介绍如何配置成为 ITOP-4412 的平台内核。 配置完后对应平台文件“arch/arm/mach-exynos/mach-itop4412.c”,如下图所示。

如下图所示,选择“EXYNOS system type (Samsung Exynos4) --->”,按“回车” 进入。 

如下图所示,选择“(X) Samsung Exynos4”,按“回车”退出该窗口。 

69.5.2 Vibrator 振动器

vibrator 驱动对应 Android 的振动器,配置好之后 Android 触摸可以发出声响。Vibrator 驱动对应源码“arch/arm/mach-exynos/ asv-4x12*”,该驱动和 9.4.3 节蜂鸣器复用一个 IO。如下图所示,配置 Vibrator 驱动。

如下图,配置“TC4 vibrator”。

69.5.3 蜂鸣器Buzzer

设置蜂鸣器驱动之后,对应设备节点“/dev/buzzer_ctl”,该驱动对应源码文件“drivers/char/itop4412_buzzer.c”。

如下图,进入“Device Drivers --->”。

如下图,进入“Character devices --->”。 

如下图,配置蜂鸣器驱动“Enable BUZZER config”。 

69.5.4 Leds

该驱动对应源码“drivers/char/itop4412_leds.c”,对应设备节点“/dev/leds”。

如下图,进入“Device Drivers --->”。

 

如下图,进入“Character devices --->”。 

如下图所示,配置 LEDS 驱动“Enable LEDS config”。 

69.5.5 ADC数模转换

该驱动对应源码“drivers/char/itop4412_adc.c”,对应设备节点“/dev/adc”。

如下图,进入“Device Drivers --->”。

 

如下图,进入“Character devices --->”。 

如下图所示,配置 ADC 驱动“ADC driver for iTOP4412”。 

69.5.6 GPS导航

该驱动对应源码“drivers/char/gps.c”,对应设备节点“/dev/gps”。

如下图,进入“Device Drivers --->”。

 

如下图,进入“Character devices --->”。 

如下图所示,配置 GPS 驱动“Enable GPS PM”。 

69.5.7 RTC实时时钟

RTC 实时时钟对应源码为“drivers/rtc/rtc-s3c.c”。

如下图,进入“Device Drivers --->”。

 

如下图,进入“Real Time Clock --->”。 

如下图,配置“Samsung S5M series”。 

69.5.8 I2C总线

I2C 是总线,其它驱动如果要使用 I2C 总线,则需要先配置 I2C。

如下图,进入“Device Drivers --->”。

 

如下图,进入“I2C support --->”。 

I2C 总线有一些依赖关系,如下图,输入“/”,进入查找模式,搜索关键字“EXYNOS4_SETUP_I2C”。 

如下图,例如,I2C6 依赖“MACH_SMDK4X12”“ARCH_EXYNOS”等。把依赖的文件配置上就可以实现对应的 I2C 总线功能。 

另外,通过上图,细心的用户可能会发现 I2C0 没有,这是因为已经被 HDMI 中的 I2C 占用了。如下图所示,搜索关键字“HMDI”,可以看到“S5P_DEV_I2C_HDMIPHY”。 

69.5.9 RS-485

该驱动对应源码“drivers/char/max485_ctl.c“,对应设备节点“/dev/max485_ctl_pin”。

如下图,进入“Device Drivers --->”。

 

如下图,进入“Character devices --->”。 

如下图所示,配置 485 驱动“Enable MAX485 pin config”。 

 

69.5.10 SPI总线

SPI 是总线,其它驱动如果要使用 SPI 总线,则需要先配置 SPI。

如下图,进入“Device Drivers --->”。

如下图,进入“SPI support --->”。 

 如下图所示,配置“Samsung S3C64XX series type SPI”。

 

69.5.11 CAN总线

CAN 驱动需要 SPI 总线支持。CAN 驱动的源码是“net/can/af_can.c”。

如下图,进入“Networking support --->”。

如下图,进入“CAN bus subsystem support --->”。 

 如下图,进入“CAN Device Drivers --->”。

 如下图,配置“Platform CAN drivers with Netlink support”和“CAN bit-timing calculation”。

 

69.5.12 串口UART

该驱动对应源码“drivers/tty/serial/samsung.c”,对应设备节点“/dev/ttySAC*”(* 表示数字 0、1、2、3)。

如下图,进入“Device Drivers --->”。

 如下图,进入“Character devices --->”。

 如下图,进入“Serial drivers --->”。

 配置“Samsung SoC serial support”。

69.5.13 串口虚拟控制台console

在 iTOP-4412 开发平台中,会经常用到串口虚拟控制台。例如,启动过程中的内核打印信息,就是使用串口虚拟控制台。但是当用户最终程序调试完成后,可能需要关闭虚拟控制台, 下面介绍一下这个串口虚拟控制台是如何配置。

如下图,进入“Device Drivers --->”。

如下图,进入“Character devices --->”。 

 如下图,进入“Serial drivers --->”。

如下图,设置“Support for console on Samsung SoC serial port”。取消配置,则内核在启动的时候,将不会打印信息。 

 虚拟控制台在内核中可以修改串口号和波特率,也可以关闭。如下图,进入“Boot options --->”。

 如下图,进入“Default kernel command string”。

 如下图,默认是“console=ttySAC2,115200”,按照这个格式可以修改调试端口和波特率,如果“console=null”,则不打印。

 

注意:如果想实现串口正常使用,控制台不打印,则仅仅需要将 console 参数改为null。

69.5.14 USB转串口PL2303

USB 驱动,在缺省状态中就已经配置,但是 USB 转串口的驱动在默认状态下并没有编译进内核,如果需要使用开发板上的 USB 转串口驱动,则设置 menuconfig,重新编译内核。

下面介绍一下如何支持 PL2303 的 USB 转串口设备。如下图,进入“Device Drivers --->”。

 如下图,进入“USB support --->”。

 如下图,进入“USB Serial Converter support --->”。

如下图,配置“USB Prolific 2303 Single Port Serial Driver”。这样就可以支持PL2303 的 USB 转串口驱动。 

69.5.15 USB转串口CP210X

USB 驱动,在缺省状态中就已经配置,但是 USB 转串口的驱动在默认状态下并没有编译进内核,如果需要使用开发板上的 USB 转串口驱动,则设置 menuconfig,重新编译内核。

下面介绍一下如何支持 CP210X 的 USB 转串口设备。如下图,进入“Device Drivers --->”。

如下图,进入“USB support --->”。 

如下图,进入“USB Serial Converter support --->”。 

 如下图,配置“USB CP210x family of UART Bridge Controllersr”。这样就可以支持CP210x 的 USB 转串口驱动。

 

69.5.16 触摸配置9.7寸屏和7寸屏-ft5x06

塑料外框lvds 9.7寸,塑料外框lvds 7寸,金属框rgb 7寸触摸可参考此章节配置触摸。

触摸屏驱动的源码是“drivers/input/touchscreen/ft5x06_ts.c”。如下图,进入“Device Drivers --->”。

 如下图,进入“Input device support --->”。

 如下图,进入“Touchscreens --->”。

 如下图,配置“FT5X0X based touchscreens”。

 

69.5.17 触摸配置4.3寸屏-ts2007

4412 的 4.4 寸电阻触摸屏的驱动源码是“drivers/input/touchscreen/tsc2007.c”。

如下图所示,选择“Device Drivers --->”,输入回车。

 如下图所示,在“Device Drivers--->”下,选择“Input device support--->”,输入回车。

如下图所示,在“Input device support--->”下,选择“ Touchscreens--->”,输入回车。 

 如下图所示,“TSC2007 based touchscreens”,即为电阻屏驱动选项。

 

69.5.18 触摸配置10.1寸屏-gt9系列

4412 金属框 10.1 和 7 寸屏触摸驱动源码是“drivers/input/touchscreen/gt9xx.c”。

如下图所示,选择“Device Drivers --->”,输入回车。

 如下图所示,在“Device Drivers--->”下,选择“Input device support--->”,输入回车。

 如下图所示,在“Input device support--->”下,选择“ Touchscreens--->”,输入回车。

 如下图所示,“gt9xx multi-touchscreen panel support”为 gt9*系列触摸的驱动。

 

69.5.19 触摸配置5寸屏

触摸屏驱动的源码是“drivers/input/touchscreen/ft5x06_ts.c”。

请注意,5 寸屏幕触摸屏驱动需要先参考用户手册 8.6 小节,给内核打完补丁之后,才能正常配置。

5 寸触摸屏,首先要参考手册 67.4.16 小节,配置 ft5x06 触摸驱动,再根据本小节做相应配置,才能支持。如果单独配置 ft5x06 触摸驱动,不做本节配置,则不支持 5 寸,而支持9.7 寸和 7 寸塑料框屏幕。

如下图,进入“Device Drivers --->”。

如下图,进入“Input device support --->”。 

 如下图,进入“Touchscreens --->”。

 如下图,配置“topeet itop-4412-borad lcd5.0 support”。

 

69.5.20 显卡Graphics Card

显卡驱动对应源码是“drivers/video/samsung/s3cfb_wa101s.c”。如下图,进入“Device Drivers --->”。

 如下图,进入“Graphics support --->”。

 如下图,配置“ Support for frame buffer devices --->”。

 如下图,配置“S5P Framebuffer support --->”。

 如下图,配置“Select LCD Type --->”。

 

69.5.21 背光Backlight

背光驱动对应源码是“drivers/video/backlight/backlight.c” ,

如下图,进入“Device Drivers --->”。

 如下图,进入“Graphics support --->”。

 如下图,进入“Backlight & LCD device support --->”。

 如下图,配置“Lowlevel Backlight controls”。

 

69.5.22 高清晰度多媒体接口HDMI_HPD

该驱动对应源码"drivers/media/video/samsung/tvout/s5p_tvout_hpd.c"。对应设备节点“/dev/ HPD”。

如下图,进入“Device Drivers --->”。

 如下图,进入“Multimedia support --->”。

 如下图,进入“Video capture adapters --->”。

 如下图,配置“HDMI HPD driver support”。

 

69.5.23 高清晰度多媒体接口HDMI_Audio

该驱动对应源码“drivers/media/video/samsung/tvout/hw_if/mixer.c”。

配置“显卡 Graphics Card”,内核即可支持该功能。

参考 11.4.20小节。

69.5.24 USB摄像头Camera

该驱动对应源码为“drivers/media/video/uvc/*”。如下图,进入“Device Drivers --->”。

 如下图,进入“Multimedia support --->”。

 如下图,进入“Video capture adapters --->”。

 如下图,配置“V4L USB devices --->”。

 

69.5.25 USB键盘和键盘

USB 键盘该驱动对应源码为“drivers/hid”,对应的设备节点是“/dev/input/event*”。

如下图,进入“Device Drivers --->”。

 如下图,进入“HID Devices --->”。

 如下图,配置“USB Human Interface Device (full HID) support”。

 

69.5.26 矩阵键盘GIPO_KEYS

矩阵键盘驱动对应源码为“drivers/input/keyboard/samsung-keypad.c”。

如下图,进入“Device Drivers --->”。

 如下图,进入“Input device support --->”。

 如下图,进入“Keyboards --->”。

 如下图,设置“Samsung keypad support”。

 

69.5.27 U盘

该驱动对应源码“drivers/usb/storage/usb-storage.c”。

U 盘首先需要增加 SCSI 支持。

如下图,进入“Device Drivers --->”。

 如下图,进入“SCSI device support --->”。

如下图,配置“SCSI device support”。 

 返回“Device Drivers”菜单,进入“USB support --->”。

 如下图,配置“USB Mass Storage support”。

 

69.5.28 SD卡/eMMC

该驱动对应源码“drivers/mmc/host/sdhci-s3c.c”。如下图,进入“Device Drivers --->”。

 如下图,进入“MMC/SD/SDIO card support --->”。

 配置如下图所示的所有参数即可。

 

69.5.29 AVIN 驱动

在内核目录下执行命令“make menuconfig”,如下图。

将会打开内核的配置界面,如下图。 

 

然后选择“Device Drivers”选项,进入“Device Drivers”配置界面,如下图。 

 

然后选择“Multimedia support”选项,进入“Multimedia support”配置界面,如下图。 

 

然后选择“Video capture adapters”选项,进入“Video capture adapters”配置界面,如下图。 

 

然后选择“Encoders, decoders, sensors and other helper chips”, 进入“Encoders, decoders, sensors and other helper chips”配置界面,如下图。 

 

然后选择“Texas Instruments TVP5150 video decoder”选项,如下图。 

 

然后返回到“Video capture adapters”配置界面,如下图。 

 

然后找到“OmniVision OV5640 sensor support”选项,取消掉“OmniVision OV5640 sensor support”的配置,如下图。 

 

然后依次选择“Exit”退出配置界面,如下图。 

 然后在上图选择“Yes”,并按回车,退出配置界面。最后输入“make zImage”开始编译内核,如下图。

 

编译完成后,把生成的 zImage 烧写到 iTOP-4412 开发板就可以支持 AVIN 的摄像头了。

69.5.30 修改开机Logo

iTOP-4412 开发板内核启动时 LCD 会显示 logo,关于这个 logo 是保存在“drivers/video/samsung/ iTop-4412.h”文件,打开这个文件,会看到里面指示定义了一个数组 iBitmapData_q,这个数组的内容就是要显示的 logo。我们修改 logo,就需要准备一张 480x640 的 bmp 图片然后使用 Image2LCD 软件转换成数组,把 iBitmapData_q 里面的内容用新生成的数组替换掉。

可能我们自己制作的 logo 没有显示在屏幕的最中央,那我们需要修改下文件“drivers/video/samsung/ s3cfb_ops.c”,在这个文件找到函数:s3cfb_draw_logo

修改这个函数里面的 top 和 left 就可以控制图片在屏幕显示的位置了。

69.5.31 200W和500WCMOS(ITU)摄像头的配置

开发板提供的内核默认使用的 500W 摄像头,如果大家使用迅为提供的 200W 摄像头, 需要做如下的修改。

500W 摄像头的配置,我想用户可以通过 200W 摄像头的配置反推回来,这里就不再重复。

在 Ubuntu 的终端里面进入到内核的源码目录,然后执行“make menuconfig”命令, 如下图所示。

打开内核配置界面,然后选择“Device Drivers”,如下图所示。 

 进入到“Device Drivers”界面然后选择“Multimedia support”,如下图所示。

 进入到“Multimedia support”界面,然后选择“Video capture adapters”,如下图所示。

 进入到“Video capture adapters”界面,修改如下的三个地方,如下图所示。

按照上图高亮的三个地方修改,然后保存并退出内核配置界面,然后执行“make zImage“命令编译内核,生成的 zImage 就支持迅为的 200W 摄像头了。

69.5.32 ov5640 500w摄像头的配置

如果根据 9.4.27 小节设置为 200w 摄像头,需要设置会 500w 摄像头,则需要按照本小节内容来配置内核。

如下图,进入“Device Drivers --->”。

如下图,选中并进入“Multimedia support --->”。 

 如下图,选中并进入“Video capture adapters --->”。

 如下图,配置“OmniVision OV5640 sensor support --->”。

 

设置完毕,保存退出。

相关文章:

【北京迅为】iTOP-4412全能版使用手册-第六十九章 Linux内核裁剪与定制

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…...

MF248:复制工作表形状到Word并调整多形状位置

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…...

若依框架之简历pdf文档预览功能

一、前端 &#xff08;1&#xff09;安装插件vue-pdf&#xff1a;npm install vue-pdf &#xff08;2&#xff09;引入方式&#xff1a;import pdf from "vue-pdf"; &#xff08;3&#xff09;components注入方式&#xff1a;components:{pdf} &#xff08;4&…...

常用的数据库类型都有哪些

在Java开发和信息系统架构中&#xff0c;数据库扮演着存储和管理数据的关键角色。数据库种类繁多&#xff0c;各有特色&#xff0c;适用于不同的应用场景。 1. 关系型数据库&#xff08;RDBMS&#xff09;&#xff1a; • 关系型数据库是最为人熟知的数据库类型&#xff0c;数据…...

使用apisix+oidc+casdoor配置微服务网关

一、服务架构图 二、安装配置 1. 安装配置apisix (1). 快速启动及验证&#xff1a; curl -sL https://run.api7.ai/apisix/quickstart | sh该命令启动 apisix-quickstart 和 etcd 两个容器&#xff0c;APISIX 使用 etcd 保存和同步配置。APISIX 和 etcd 容器使用 Docker 的 …...

【系统分析师】- 案例 -数据库特训

目录 1、规范化与逆规范化 2、数据库视图 3、数据库索引 4、SQL优化 5、数据库分区 6、分布式数据库 7、NoSql 8、读写分离&#xff08;主从复制&#xff09; 9、缓存一致性 10、云数据库 11、主题数据库 12、数据同步 1、规范化与逆规范化 规范化&#xff1a; 优点…...

创建型设计模式、结构型设计模式与行为型设计模式 上下文任务通用方案 设计模式 大全

设计模式&#xff08;Design Pattern&#xff09;是一种面向对象编程思想&#xff0c;分为创建型模式、结构型模式与行为型模式三大类&#xff0c;提供在特定上下文中解决常见任务通用方案&#xff0c;旨在让程序&#xff08;软件&#xff09;具有更好特点&#xff0c;如降低耦…...

2412git,gitdiff与编码

原文 除了git命令行工具外,还有其他工具或服务可让你查看git历史记录中的更改.最有趣的是那些按拉请的一部分更改的情况,因为这些是你正在审查和批准的更改. 但一个常见的问题是,它们给你展示的可能不是实际改变的内容. 我把讨论限制在我有经验的服务和工具上,即它是git命令…...

什么是 Git Hooks?

在团队开发中&#xff0c;当成员提交代码的描述信息不符合约定提交规范的时候&#xff0c;需要阻止当前的提交&#xff0c;而要实现这个目的&#xff0c;我们就需要先来了解一个概念&#xff0c;叫做 Git hooks&#xff0c;即Git 在执行某个事件之前或之后进行一些其他额外的操…...

Android中加载一张图片占用的内存

在安卓&#xff08;Android&#xff09;系统中&#xff0c;加载图片占用内存的大小并不是图片本身的大小&#xff0c;比如一张图片大小为100kb&#xff0c;那当他加载到Android上时其占用的内存大小并不是100kb。 加载图片到内存中占用的内存大小取决于多种因素&#xff0c;包括…...

【竞技宝】LOL:IG新赛季分组被质疑

北京时间2024年12月31日&#xff0c;今天已经2024年的最后一天&#xff0c;在进入一月之后&#xff0c;英雄联盟将迎来全新的2025赛季。而目前新赛季第一阶段的抽签结果已经全部出炉&#xff0c;其中人气最高的IG战队在本次抽签中抽到了“绝世好签”引来了网友们的质疑。 首先介…...

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之12 方案再探之3:特定于领域的模板 之2 首次尝试和遗留问题解决

本文提要 现在就剩下“体”本身的 约定了--这必然是 自律自省的&#xff0c;或者称为“戒律” --即“体”的自我训导discipline。完整表述为&#xff1a; 严格双相的庄严“相” (<head>侧&#xff09;&#xff0c;完全双性的本质“性”&#xff08;<boot>侧&…...

超融合时间节点同步

1. 执行以下命令停止相关进程。 l 节点为主机&#xff0c;执行&#xff1a; perl /opt/galax/gms/common/config/restartCnaProcess.pl l 节点为VRM&#xff0c;执行&#xff1a; sh /opt/omm/ha/module/hacom/script/stop_ha.sh 2. 执行以下命令修改节…...

【分布式文件存储系统Minio】2024.12保姆级教程

文章目录 1.介绍1.分布式文件系统2.基本概念 2.环境搭建1.访问网址2.账号密码都是minioadmin3.创建一个桶4.**Docker安装miniomc突破7天限制**1.拉取镜像2.运行容器3.进行配置1.格式2.具体配置 4.查看桶5.给桶开放权限 3.搭建minio模块1.创建一个oss模块1.在sun-common下创建2.…...

pycharm pytorch tensor张量可视化,view as array

Evaluate Expression 调试过程中&#xff0c;需要查看比如attn_weight 张量tensor的值。 方法一&#xff1a;attn_weight.detach().numpy(),view as array 方法二&#xff1a;attn_weight.cpu().numpy(),view as array...

LeetCode 3219.切蛋糕的最小总开销 II:贪心——先切贵的

【LetMeFly】3219.切蛋糕的最小总开销 II&#xff1a;贪心——先切贵的 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-cost-for-cutting-cake-ii/ 有一个 m x n 大小的矩形蛋糕&#xff0c;需要切成 1 x 1 的小块。 给你整数 m &#xff0c;n 和两个数组&…...

【PDF物流单据提取明细】批量PDF提取多个区域内容导出表格或用区域内容对文件改名,批量提取PDF物流单据单号及明细导出表格并改名的技术难点及小节

相关阅读及下载&#xff1a; PDF电子物流单据&#xff1a; 批量PDF提取多个区域局部内容重命名PDF或者将PDF多个局部内容导出表格&#xff0c;具体使用步骤教程和实际应用场景的说明演示https://mp.weixin.qq.com/s/uCvqHAzKglfr40YPO_SyNg?token720634989&langzh_CN扫描…...

Redis到底支不支持事务啊?

大家好&#xff0c;我是锋哥。今天分享关于【Redis到底支不支持事务啊&#xff1f;】面试题。希望对大家有帮助&#xff1b; Redis到底支不支持事务啊&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 支持事务&#xff0c;但它的事务模型与传统的…...

Druid连接Oracle数据库,连接失效导致SQL无法执行

原始配置&#xff1a; type: com.alibaba.druid.pool.DruidDataSource druid:initial-size: 5max-active: 25min-idle: 5max-wait: 10000testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsetimeBetweenEvictionRunsMillis: 2000minEvictableIdleTimeMillis: 600000ma…...

JVM 及内存管理:掌握 Java 8 的内存模型与垃圾回收机制

Java 虚拟机&#xff08;JVM&#xff09;是运行 Java 程序的核心&#xff0c;它负责代码执行和内存管理。Java 8 引入了一些重要的内存模型和垃圾回收机制优化。本文将详细解析 JVM 的内存模型、垃圾回收机制&#xff0c;并配以相关图解&#xff0c;帮助你深刻理解 JVM 的工作原…...

用户界面的UML建模06

4.1 抽象表示层的结构&#xff08;Abstract Presentation Structure&#xff09; 如图6 所示&#xff0c;抽象表示层模型具有一个顶层的容器&#xff08;container&#xff09;&#xff0c;《apm》AbstractForm&#xff0c;其包含了许多组件&#xff0c;《apm》AbstractCompon…...

HTML——41有序列表

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>有序列表</title></head><body><!--有序列表&#xff1a;--><!--1.列表中各个元素在逻辑上有先后顺序&#xff0c;但不存在一定的级别关系-->…...

REDIS1.0

redis的基础知识&#xff1a; NOsql&#xff1a; not only sql 非关系型数据库&#xff1a;主流的数据库以外&#xff0c;基本上都是nosql 非关系型数据库也有库&#xff0c;库是系统自带的&#xff0c;而且也不需要创建&#xff0c;也不能创建&#xff0c;也无需在裤子创建…...

【HarmonyOS之旅】ArkTS语法(二) -> 动态构建UI元素

目录 1 -> Builder 2 -> BuilderParam8 2.1 -> 引入动机 2.2 -> 参数初始化组件 2.3 -> 尾随闭包初始化组件 3 -> Styles 4 -> Extend 5 -> CustomDialog 1 -> Builder 可通过Builder装饰器进行描述&#xff0c;该装饰器可以修饰一个函数&…...

【漫话机器学习系列】028.CP

Mallows’ Cp&#xff1a;标准化公式解析与应用 Mallows’ Cp 是一种常用的模型选择工具&#xff0c;用于在一系列候选模型中权衡拟合度和复杂性&#xff0c;帮助我们选择性能最优的模型。本文将基于其标准化公式展开详细解析&#xff0c;并探讨其应用场景、实现方法、优点与局…...

【SpringBoot教程】搭建SpringBoot项目之编写pom.xml

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f44f;今天毛毛张分享的内容主要是Maven 中 pom 文件&#x1f195;&#xff0c;涵盖基本概念、标签属性、配置等内容 文章目录 1.前言&#x1f96d;2.项目基本…...

送给一年编程道路的自己

回望过去一年在编程道路上的成长与收获&#xff0c;是一个很有意义的过程。总结自己这一年的编程经历&#xff0c;不仅可以帮助你更清晰地了解自己的进步和不足&#xff0c;还能为未来的发展指引方向。以下是一些可能的收获&#xff0c;供你参考&#xff1a; 1. 技能提升 语言…...

libvirt学习

文章目录 libvirt 简介节点、Hypervisor和域libvirt 安装和配置libvirt的XML配置文件libvirt APIMain libvirt APIsError handlingSpecial specific APIs 建立到Hypervisor的连接libvirt API使用编译libvirt工具virshvirt-clonevirt-dfvirt-imagevirt-installvirt-topvirt-what…...

第二十五天 项目实践:图像分类

项目实践&#xff1a;图像分类 一、数据集准备 在图像分类任务中&#xff0c;数据集的选择和准备是至关重要的。一个高质量的数据集可以显著提高模型的训练效果和泛化能力。 数据集选择 ImageNet&#xff1a;这是一个广泛应用于训练卷积神经网络&#xff08;CNN&#xff09;模…...

学技术学英文:Tomcat的线程模型调优

导读&#xff1a; tomcat 线程调优关键需要理解下面这几个参数&#xff1a; 1. maxConnections 描述&#xff1a;指定服务器能够同时接受和处理的最大连接数。也就是说&#xff0c;服务器在任何时候都能处理的最大并发连接数。作用&#xff1a;限制服务器在任何给定时间点能…...

软考高项(二十)高级项目管理 ★重点集萃★

&#x1f451; 个人主页 &#x1f451; &#xff1a;&#x1f61c;&#x1f61c;&#x1f61c;Fish_Vast&#x1f61c;&#x1f61c;&#x1f61c; &#x1f41d; 个人格言 &#x1f41d; &#xff1a;&#x1f9d0;&#x1f9d0;&#x1f9d0;说到做到&#xff0c;言出必行&am…...

Android 系统 `android.app.Fragment` 类的深度定制与常见问题解析

Android 系统 android.app.Fragment 类的深度定制与常见问题解析 目录 引言Fragment 概述Fragment 的生命周期Fragment 的系统层深度定制 4.1 Fragment 的创建与初始化4.2 Fragment 的布局与视图4.3 Fragment 的通信机制4.4 Fragment 的动画与过渡4.5 Fragment 的状态保存与恢…...

[Qt] Qt介绍 | 搭建SDK

目录 1. Qt 简介 什么是 Qt&#xff1f; 1.1 引入 1.2 GUI 1.3 Qt 介绍 2. Qt 发展史 3. Qt 支持的平台 4. Qt 版本信息 5. Qt 的优点 6. Qt 应用场景 7. Qt 成功案例 8. Qt 发展前景及就业分析 二. Qt 开发环境搭建 1. 开发工具概述 2.Qt SDK 安装 3.使用 1. …...

工作中常用Vim的命令

Hi, 我是你们的老朋友&#xff0c;主要专注于嵌入式软件开发&#xff0c;有兴趣不要忘记点击关注【码思途远】 目录 0. ctags -R 1.认识 Vim的几种工作模式 2.高频使用命令 2.1 修改文件 2.2 关于行号 2.3 删除多行&#xff0c;删除部分 2.4 复制粘贴 2.5 光标移动 2.…...

【广州计算机学会、广州互联网协会联合主办 | ACM独立出版 | 高录用】第四届大数据、信息与计算机网络国际学术会议(BDICN 2025)

第四届大数据、信息与计算机网络国际学术会议&#xff08;BDICN 2025&#xff09;定于2025年01月10-12日在中国广州举行。会议旨在为从事“大数据”、“计算机网络”与“信息”研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术&#xff0c;了解学术发…...

CSS系列(43)-- Anchor Positioning详解

前端技术探索系列&#xff1a;CSS Anchor Positioning详解 &#x1f3af; 致读者&#xff1a;探索智能定位的艺术 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 CSS Anchor Positioning&#xff0c;这个强大的元素定位特性。 基础概念 &#x1f680; 锚点设…...

测试带宽上行方法

测试宽带上行速度的软件有多种&#xff0c;以下是一些常见的选择&#xff1a; Speedtest 平台支持&#xff1a;iOS、Android、Windows、MacOS等 特点&#xff1a;全球知名的网络测速软件&#xff0c;测试结果准确&#xff0c;支持多平台。用户可以选择最近的服务器进行测试&am…...

pugixml XML配置文件 的增删改查

<?xml version"1.0" encoding"UTF-8"?> <SXConfiguration><LocalSetting><VMSLoginServer><exitServerName>2</exitServerName><server><name>2</name><ip>152.131.121.131</ip><…...

自动化办公-将 Excel 的 Sheet 页拆分成单独的 Excel 文件

在日常的数据处理工作中&#xff0c;很多时候我们会遇到一个包含多个工作表&#xff08;Sheet&#xff09;的 Excel 文件&#xff0c;可能需要将每个工作表分别保存为独立的 Excel 文件。手动进行这种操作非常繁琐且易出错&#xff0c;但借助 Python 中的 pandas 库&#xff0c…...

安全漏洞合集

一&#xff0c;X-Content-Type-Options响应头降低XSS攻击的风险 在Nginx配置文件中&#xff0c;可以使用add_header指令来添加自定义的HTTP响应头。 &#xff08;通常是nginx.conf或站点特定的配置文件&#xff09;添加以下指令来设置X-Content-Type-Options响应头&#xff1a…...

python 堆排序(Heap Sort)

堆排序&#xff08;Heap Sort&#xff09; 堆排序是一种基于二叉堆数据结构的排序算法。它的基本思想是&#xff1a;将待排序的数组构建成一个最大堆&#xff08;或最小堆&#xff09;&#xff0c;然后依次将堆顶元素&#xff08;最大值或最小值&#xff09;与堆的最后一个元素…...

word中文献引用[]符号的上下标格式修改

word中文献引用[]符号的上下标格式修改 百度网址 1、查找打开使用通配符&#xff0c;输入[[][0-9]{1,2}[]]&#xff0c;即可匹配所有的字[1],[12]这些字符&#xff0c;然后鼠标点击替换为的空白处&#xff0c;再点击特殊格式–>“字体”&#xff0c;选中上标&#xff0c;最…...

地心地固坐标系

地心地固坐标系&#xff08;ECEF, Earth-Centered, Earth-Fixed&#xff09; 是一种三维坐标系&#xff0c;常用于表示地球表面或地球内部的点的位置。它的特点是坐标系的原点位于地球的质心&#xff0c;并且坐标轴固定在地球表面&#xff0c;并随地球自转而旋转。 ECEF 坐标系…...

3.CSS字体属性

3.1字体系列 CSS使用font-family属性定义文本的字体系列。 p{font-family:"微软雅黑"} div{font-family:Arial,"Microsoft Yahei",微软雅黑} 3.2字体大小 css使用font-size属性定义字体大小 p{ font-size:20px; } px(像素)大小是我们网页的最常用的单…...

使用PyTorch实现的二分类模型示例,综合了CNN、LSTM和Attention技术

以下是一个使用PyTorch实现的二分类模型示例,综合了CNN、LSTM和Attention技术,并尝试满足你提出的各项需求: 1. 数据预处理 扩充输入数据维度 假设你的原始数据是二维的(例如图像或序列数据),可以通过一些变换来扩充维度。例如,对于图像数据,可以进行翻转、旋转、缩放…...

[Wi-Fi]802.11u Vs hotspot2.0

介绍 802.11u 和 Hotspot 2.0 是两个相关但不同的技术标准&#xff0c;它们都旨在改善无线网络的用户体验&#xff0c;特别是在公共 Wi-Fi 环境中。 802.11u 定义&#xff1a;802.11u 是 IEEE 802.11 标准的一个扩展&#xff0c;专注于增强无线网络的互操作性和用户体验。功能…...

VisualStudio 2019 升级遇到的问题及解决

事件起因 今天计划想研究下.net core&#xff08;后面版本直接称为 .net &#xff09;,发现 .net sdk 5.0 最新版本安装不成功。解决之后&#xff0c;真是手欠&#xff0c;看着Visual Studio 2019 有更新了&#xff0c;就直接点击了&#xff0c;这时才发现问题大了。。。 安装…...

Java - 日志体系_Simple Logging Facade for Java (SLF4J)日志门面_SLF4J集成logback 及 原理分析

文章目录 Pre官网集成步骤POM依赖使用第一步&#xff1a;编写 Logback 的配置文件第二步&#xff1a;在代码中使用 SLF4J 原理分析1. 获取对应的 ILoggerFactory2. 根据 ILoggerFactory 获取 Logger 实例3. 日志记录过程 小结 Pre Java - 日志体系_Apache Commons Logging&…...

机器学习-方案设计题(在线医疗诊断项目)

在一个在线医疗诊断项目中&#xff0c;我们希望利用机器学习算法来预测患者是否患有某种疾病。请设计一个方案&#xff0c;包括数据收集、预处理、特征选择、模型选择和评估等步骤来完成这个任务。 1.数据收集数据来源 ‌电子病历系统‌&#xff1a;收集患者的基本信息&…...

基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解

目录 1、三种方式介绍 1.1请求限流 1.2 线程隔离方案 1.3 服务熔断 2、基于sentinel实现 2.1 启动sentinel 2.2 基于springboot整合sentinel 2.2.1请求限流 2.2.2请求隔离 2.2.2.1 OpenFeign整合Sentinel 2.2.3 服务熔断 2.2.3.1 编写降级代码 2.2.3.2 服务熔断 1、…...