Jetson nano 系统安装

news2024/10/6 22:31:04

Contents

  • Jetson Nano
  • 在 EMMC 上安装镜像
  • U 盘启动和 TF 卡启动
    • U 盘启动 (复制 eMMC 上系统)
    • TF 卡启动
  • 设置远程登录系统
  • SDK 安装
    • 使用 SDK Manager 安装
    • 使用指令安装
  • Linux 操作基础
  • 文件传输、系统备份
  • 风扇配置
  • IMX219-83 Stereo Camera
  • AI 环境搭建
    • PIP3 安装
    • 安装机器学习领域重要的安装包
    • 设置 CUDA 环境
    • Tensorflow GPU 环境搭建
    • Pytorch 环境搭建
  • 硬件控制
    • Jetson-IO - 端口使能
    • 修改设备树使能端口
  • 更多资料
  • References

我是直接购买的微雪 Jetson nano 开发板,它基于 Jetson Nano Module 核心板,提供与官方的 Jetson Nano Developer Kit (B01) 几乎一模一样的外设接口、大小及厚度

Jetson Nano

Jetson Nano Module 参数

在这里插入图片描述


JETSON-IO-BASE-A 底板资源

在这里插入图片描述

  • (1) 模组卡座:插入 Jetson Nano 核心板
  • (2) SD 卡扩展卡槽:可以接入 SD 卡做 SD 卡扩展,支持从 SD 卡启动系统
  • (3) M.2 Key E 接口:可接入 AC8265 无线网卡
  • (4) 1.25mm 风扇接口
  • (5) PoE 管脚:不含 PoE 模块
  • (6) 40 PIN GPIO 扩展接口:兼容树莓派引脚,方便就树莓派外设
  • (7) 2.54mm 风扇接口
  • (8) Micro USB 接口:可用于 5V 电源输入或者 USB 数据传输
  • (9) 千兆以太网端口:10/100/1000 Base-T 自适应,接入 PoE 模块可支持 PoE 供电
  • (10) 4 路 USB 3.0 接口支持从 USB 启动系统
  • (11) HDMI 高清接口
  • (12) DisplayPort 接口
  • (13) DC 电源接口:可用于 5V 电源输入
  • (14) 2 路 MIPI CSI 摄像头接口

在 EMMC 上安装镜像

如果购买的是微雪提供的带核心板的 Nano 套件,出厂的时候就已经预先烧好了 JetPack4.6 镜像在 emmc 上,且已经设置了 SD 卡识别,可以跳过这一步。如果需要修改 SD 卡启动,请查看使用手册修改启动路径即可

  • 安装过程可参考 系统环境搭建 和 在 EMMC 上安装镜像

U 盘启动和 TF 卡启动

  • 我们可以额外地烧录系统到 U 盘或者 TF 卡,然后从 U 盘或者 TF 卡启动系统 (因为 EMMC 容量较小,所以有必要把系统装在 U 盘或 TF 卡上)。U 盘启动或 TF 卡启动都是先启动核心板里的 EMMC 上的系统,再由核心板的系统引导到 U 盘上启动或 TF 卡上启动,因此在准备 U 盘启动或者 TF 卡启动时,必须先确保成功烧录 EMMC 系统。核心板里的系统可以使用虚拟机中的 SDK Manager 来烧录系统;TF 卡系统可以使用 Win32DiskImager 来烧录系统;U 盘里的系统使用虚拟机烧录

U 盘启动 (复制 eMMC 上系统)

系统安装

  • 将 U 盘接入 Jetson Nano,查看 U 盘的设备号, 例如 sda,打开 Jetson Nano 终端输入
ls /dev/sd*
  • 格式化 U 盘
sudo mkfs.ext4 dev/sda
  • 修改启动路径. 找到语句 APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0, 将 mmcblk0p1 修改为 sda 保存
sudo vi /boot/extlinux/extlinux.conf
  • 挂载 U 盘
sudo mount /dev/sda /mnt
  • 复制系统到 U 盘
sudo cp -ax / /mnt
  • 复制完成后卸载 U 盘(不是拔掉 U 盘)
sudo umount /mnt/
  • 重启系统
sudo reboot

TF 卡启动

设备树时能 SD 卡

  • 在 Ubuntu 主机安装 dtc 软件
sudo apt-get install device-tree-compiler
  • 进入 HW Imager 内核路径下,反编译 dts 源文件
# 若使用的 SDK Manager 软件请使用以下命令
cd ~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/kernel/dtb #(针对不同jetpack,修改对应路径)
dtc -I dtb -O dts -o tegra210-p3448-0002-p3449-0000-b00.dts tegra210-p3448-0002-p3449-0000-b00.dtb
# 若使用的资源包请使用以下命令
cd sources_nano/Linux_for_Tegra/kernel/dtb
sudo dtc -I dtb -O dts -o tegra210-p3448-0002-p3449-0000-b00.dts tegra210-p3448-0002-p3449-0000-b00.dtb
  • 修改设备树
sudo gedit tegra210-p3448-0002-p3449-0000-b00.dts
  • 找到 sdhci@700b0400 部分,将 status = "disable" 改成 status = "okay",并在下面添加 TF 信息
cd-gpios = <0x5b 0xc2 0x0>;
sd-uhs-sdr104;
sd-uhs-sdr50;
sd-uhs-sdr25;
sd-uhs-sdr12;
            
no-mmc;
uhs-mask = <0xc>;

在这里插入图片描述

  • 编译 dtb 文件
sudo dtc -I dts -O dtb -o tegra210-p3448-0002-p3449-0000-b00.dtb tegra210-p3448-0002-p3449-0000-b00.dts
  • 烧录系统,Jetson Nano 需进入 recovery 模式,连接到 Ubuntu 电脑
# 若使用的 SDK Manager 软件请使用以下命令:
cd ~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra
sudo ./flash.sh jetson-nano-emmc mmcblk0p1
# 若使用的资源包请使用以下命令:
cd sources_nano/Linux_for_Tegra
sudo ./flash.sh jetson-nano-emmc mmcblk0p1
  • 断开 USB 线和跳帽,进行 Jetson Nano 开机配置
  • 检查 SD 卡是否被识别. 如果有识别到 mmcblk1p1 设备,说明 SD 卡被正常识别了
sudo ls /dev/mmcblk*

安装系统 - 直接复制 eMMC 上系统 (该操作会格式化 TF 卡 )

  • 格式化 SD 卡 (如果出现提示已有文件系统就需要先卸载 SD 卡 sudo umount /media/(这里按下 Tab 键自动补全))
sudo mkfs.ext4 /dev/mmcblk1
  • 挂载 SD 卡
sudo mount /dev/mmcblk1 /mnt
  • 复制系统到 SD 卡(该过程没有信息打印请耐心等待)
sudo cp -ax / /mnt
  • 复制完成后卸载 SD 卡(不是拔掉 SD 卡)
sudo umount /mnt/

下载其他镜像

  • 也可以直接在 Github 下载 Jetson nano 镜像进行烧录,例如 A Jetson Nano - Ubuntu 20.04 image with OpenCV, TensorFlow and Pytorch (User: jetson; Password: jetson).

修改从 SD 卡启动系统 (可选)

sudo vi /boot/extlinux/extlinux.conf
  • 找到语句 APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0, 将 mmclk0p1 改成 mmcblk1p1, 保存,然后重启系统即可

扩容镜像

  • 注意,如果 SD 卡是 64G 的,在进入系统后,打开终端,输入 df -h,查看磁盘大小,若空间大小显示小于 64G,可以按如下方法扩容镜像
cd /usr/lib/nvidia/resizefs/
sudo chmod 777 nvresizefs.sh
sudo ./nvresizefs.sh
sudo reboot

设置远程登录系统

  • 先用网线确保 Jetson nano 和主机在同一局域网下,再用 MobaXterm 远程登录即可。也可以用 NoMachineVNC 登录远程桌面,可参考 NoMachine 登录 和 配置 VNC 服务器

SDK 安装

  • 前面的系统安装的时候只是安装了基本的系统,其他的 JetPack SDK 组件,比如 cuDNN, CUDA, TensorRT, Computer Vision 等都需要在系统正常启动后进一步安装,这里提供安装 SDK 组件的步骤说明。若要安装该部分,请保证是在以 TF 卡或者 U 盘为主系统的情况下,因为下载内容可能会导致 EMMC 磁盘容量告急

使用 SDK Manager 安装

  • 用 USB 数据线连接 Jetson Nano 的 Micro USB 接口到 Ubuntu 主机 (不需要设置 nano为 recovery 模式),Ubuntu 主机电脑运行 sdkmanager 指令打开 SDK Managaer
  • 类似于前面烧录系统的操作,不同的是,在步骤 2 中,不勾选 OS 选项,而是勾选 SDK 选项, 然后 continue 到安装.在下载资源之后,会弹窗提示填写用户名和密码,填写 nano 系统的用户名和密码即可

使用指令安装

sudo apt update
sudo apt install nvidia-jetpack

Linux 操作基础

  • 可参考 Linux 操作基础

文件传输、系统备份

  • 可参考 配置

风扇配置

  • 系统自带温控系统,不必要情况可以不需要手动控制
# 风扇转速调节
# 255 是最大转速,0 是停止
sudo sh -c 'echo 255 > /sys/devices/pwm-fan/target_pwm'
# 获取 CPU 温度,可以通过程序智能控制风扇
cat /sys/class/thermal/thermal_zone0/temp

IMX219-83 Stereo Camera

硬件连接

  • 将两条摄像头排线,金属面朝向散热板插入 Jetson Nano 开发套件上的摄像头接口

测试摄像头

  • 打开终端,输入以下指令查看设备是否被正常识别到,如果出现 video0 和 video1 就是正常的
ls /dev/video*

测试 video 0

DISPLAY=:0.0 nvgstcapture-1.0 --sensor-id=0

测试 video 1

DISPLAY=:0.0 nvgstcapture-1.0 --sensor-id=1

如果摄像头拍摄效果偏红的话,可以按照一下步骤操作

# 下载 camera-override.isp 文件,解压到特定文件夹
wget http://www.waveshare.net/w/upload/e/eb/Camera_overrides.tar.gz
tar zxvf Camera_overrides.tar.gz 
sudo cp camera_overrides.isp /var/nvidia/nvcam/settings/

# 安装文件
sudo chmod 664 /var/nvidia/nvcam/settings/camera_overrides.isp
sudo chown root:root /var/nvidia/nvcam/settings/camera_overrides.isp

AI 环境搭建

  • 下面操作基于 JetPack4.6 系统镜像,Python 版本为 Python3.6,TensorFlow 版本为 2.5.0,Pytorch 版本为 1.9.0 为例

PIP3 安装

  • Jetson Nano 中默认安装了 Python3.6 版本,这里直接安装 PIP3
sudo apt update
sudo apt-get install python3-pip python3-dev
# 默认安装的 PIP 是 9.01 版本,需要把它升级到最新版
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade --force-reinstall pip
sudo reboot
# 查看 pip3 版本
pip3 -V
  • 为了防止出现 “Illegal instruction (core dumped)” 报错,需要在 ~/.bashrc 最后添加
export OPENBLAS_CORETYPE=ARMV8

安装机器学习领域重要的安装包

sudo apt-get install python3-numpy
sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-matplotlib
sudo apt-get install python3-sklearn

设置 CUDA 环境

注意:需要先进行 SDK 安装来安装 CUDA

  • 设置环境变量
sudo vim .bashrc
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.2
# 查看 CUDA 版本
nvcc -V

Tensorflow GPU 环境搭建

  • 可参考 Tensorflow GPU 环境搭建

Pytorch 环境搭建

  • 下载依赖库
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev libopenblas-base libopenmpi-dev
  • 登录英伟达官网下载 Pytorchv1.9.0 安装包 后进行安装
sudo pip3 install torch-1.9.0-cp36-cp36m-linux_aarch64.whl 
  • Torchvision 版本要与 Pytorch 版本相匹配,我们前面安装的 Pytorch 版本为 1.9.0,Torchvision 安装 v0.10.0 版本
pip3 install torchvision==0.10.0

硬件控制

  • 可参考 硬件控制

Jetson-IO - 端口使能

  • 所有 Jetson 扩展板上都会带有 40-pin GPIO 接口,我们可以按需求使能其中的 Special Function I/O (SFIO) (e.g. I2C, I2S, SPI, and so on). 这些端口的默认配置 (绝大多数端口都被默认设置为了 GPIO) 都被存储在了 Jetson 的 Flash 中,在之前我们需要经过复杂的步骤才能对这些端口功能进行重新配置,但从 JetPack 4.3 开始,我们可以使用 Jetson-IO 更轻松地进行端口配置

Warning: Jetson-io.py 无法支持 Jetson Nano B01 带 emmc 模组版本,因此用户无法通过 jetson-io.py 来直接配置 40PIN 引脚

sudo /opt/nvidia/jetson-io/jetson-io.py

在这里插入图片描述

在这里插入图片描述


使能 SPI

  • Configure Jetson 40pin Header ⇒ \Rightarrow Configure header pins manually ⇒ \Rightarrow 按回车使能 SPI1 (pins 19,21,23,24,26) ⇒ \Rightarrow Back
    在这里插入图片描述可以看到,此时 main menu 中已经显示新的端口配置了,SPI 用到的 5 个端口都已被使能
    在这里插入图片描述
  • 最后保存配置并重启即可完成配置:Save Pin changes ⇒ \Rightarrow Save and reboot to reconfigure pins

修改设备树使能端口

  • 对于无法使用 Jetson-IO 的情况,就只能直接修改设备树文件来使能端口 (下面的操作需要重装系统,请谨慎操作)

资源下载 (Jetpack 4.6.2)

  • 如果之前用 SDK Manager 安装过系统镜像,可以直接在上面修改设备树。 如果没有的话,需要参考以下资源下载部分先进行操作
  • 在 ubuntu 电脑新建一个文件夹
sudo mkdir sources_nano
cd  sources_nano
  • 下载以下两个资源包
wget https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t210/jetson-210_linux_r32.7.2_aarch64.tbz2
wget https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t210/tegra_linux_sample-root-filesystem_r32.7.2_aarch64.tbz2
  • 解压资源
sudo tar -xjvf jetson-210_linux_r32.7.2_aarch64.tbz2
cd Linux_for_Tegra/rootfs/
sudo tar -xjvf ../../tegra_linux_sample-root-filesystem_r32.7.2_aarch64.tbz2
cd ../
sudo ./apply_binaries.sh  # 若出现报错按照系统提示操作,然后再次输入该行命令

修改设备树

  • 安装 dtc 工具
sudo apt-get install -y device-tree-compiler
  • 反编译出 dts 文件
cd kernel/dtb
sudo dtc -I dtb -O dts -o tegra210-p3448-0002-p3449-0000-b00.dts tegra210-p3448-0002-p3449-0000-b00.dtb
  • 修改 dts 文件
sudo cp tegra210-p3448-0002-p3449-0000-b00.dts tegra210-p3448-0002-p3449-0000-b00-bak.dts
sudo gedit tegra210-p3448-0002-p3449-0000-b00.dts
  • 找到 spi@7000d400{} 部分,在其中的 spi@0 结构和 spi@1 结构分别添加语句 status = “okay”
    在这里插入图片描述
  • 找到 spi1 的引脚设置,将其中的 nvidia,function 改为 spi1, nvidia,tristate 改为 0x0, nvidia,enable-input 改为 0x1. 如图, 五个引脚都要操作
    在这里插入图片描述
  • 保存文件,并重新编译为 dtb. 注意,如果你还需要修改 SD 卡等操作,请一起在设备树中进行修改
sudo dtc -I dts -O dtb -o tegra210-p3448-0002-p3449-0000-b00.dtb tegra210-p3448-0002-p3449-0000-b00.dts

重新烧录系统

  • 将 nano 设置为 recovery 烧录模式,接入 ubuntu 电脑。注意,这里不支持只更新 dtb 分区,因此需要重新烧录整个系统,烧录系统后需要重新做开机配置,因此,请提前将 HDMI 屏幕和键盘连接到 nano 上
cd ../../
sudo ./flash.sh jetson-nano-emmc mmcblk0p1

测试 SPI

  • 加载 spidev
sudo modprobe spidev
git clone https://github.com/rm-hull/spidev-test
cd spidev-test/
gcc spidev-test.c -o spidev-test
  • 用一根排线将 nano 40PIN 的 19 和 21 号引脚短接,运行程序测试,如果中断打印信息 RX 和 TX 可以正常的发送和接受信息即可
./spidev-test -v -D /dev/spidev0.0 -p "Test"

在这里插入图片描述

更多资料

  • 可参考 资料

References

  • waveshare Jetson-nano-dev-kit wiki
  • A Jetson Nano - Ubuntu 20.04 image with OpenCV, TensorFlow and Pytorch
  • SPI on Jetson – Using Jetson-IO
  • jetson-io.py がすぐに終了するときの解決策
  • Ubuntu/Jetson Nano问题解决“Illegal instruction(core dumped)”
  • IMX219-83 Stereo Camera

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63645.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MOSFET 和 IGBT 栅极驱动器电路的基本原理学习笔记(二)栅极驱动参考

栅极驱动参考 1.PWM直接驱动 2.双极Totem-Pole驱动器 3.MOSFET Totem-Pole驱动器 4.速度增强电路 5.dv/dt保护 1.PWM直接驱动 在电源应用中&#xff0c;驱动主开关晶体管栅极的最简单方法是利用 PWM 控制其直接控制栅极&#xff0c;如 图 8 所示。 直接栅极驱动最艰巨的任务…

5‘-二磷酸鸟嘌呤核苷-岩藻糖二钠盐,GDP-Fucose,15839-70-0

中文名 5-二磷酸鸟嘌呤核苷-岩藻糖二钠盐 英文名 Guanosine 5′-diphospho-β-L-fucose sodium salt 英文别名 [(2R,3S,4R,5R)-5-(2-Amino-6-oxo-1,6-dihydro-9H-purin-9-yl)-3,4-dihydroxytetrahydro-2-furanyl]methyl (3S,4R,5S,6S)-3,4,5-trihydroxy-6-methyltetrahydro-2…

Linux Podman安装DVWA靶场环境

一、DVWA靶场环境简介 1.DVWA一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用&#xff0c;旨在为安全专业人员测试自己的专业技能和工具提供合法的环境&#xff0c;帮助web开发者更好的理解web应用安全防范的过程。 ​ 2.DVWA 一共包含了十个攻击模块&#xff0c;分别是&#…

Unity + Mirror实现原创卡牌游戏局域网联机

资源下载地址 局域网联机插件 Mirror&#xff1a;Mirror | 网络 | Unity Asset Store 本地客户端测试多人游戏&#xff08;不用打包&#xff09;插件 &#xff1a; ParrelSync Mirror官方文档&#xff1a;General - Mirror (gitbook.io) Mirror使用 前置准备 导入Mirror …

UNet 网络做图像分割DRIVE数据集

目录 1. 介绍 2. 搭建 UNet 网络 3. dataset 数据加载 4. train 训练网络 5. predict 分割图像 6. show 7. 完整代码 1. 介绍 项目的目录如下所示 DRIVE 存放的是数据集predict 是待分割的图像result 里面放分割predict 的结果dataset 是处理数据的文件、model存放une…

day5_redis学习

文章目录秒杀优化阻塞队列实现消息队列Redis实现消息队列List实现消息队列PubSub实现消息队列Stream实现消息队列发布以及查看探店笔记点赞以及点赞排行榜秒杀优化 上面的过程中&#xff0c;我们进行秒杀操作的基本步骤为: 所以这时候整个过程就耗费较长的时间&#xff0c;因…

【1687. 从仓库到码头运输箱子】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 你有一辆货运卡车&#xff0c;你需要用这一辆车把一些箱子从仓库运送到码头。这辆卡车每次运输有 箱子数目的限制 和 总重量的限制 。 给你一个箱子数组 boxes 和三个整数 portsCount, maxBoxes 和 m…

python大数据毕业设计选题题目大全

文章目录0 前言1 大数据相关题目2 开题指导2.1 起因2.2 如何避坑(重中之重)2.3 为什么这么说呢&#xff1f;2.4 难度把控2.5 题目名称3 最后0 前言 这是学长亲手整理的&#xff0c;大数据毕设选题系列第二篇&#xff0c;都是经过学长精心审核的题目&#xff0c;适合作为毕设&a…

CPP 核心编程6-多态

#include "iostream" using namespace std;//多态 class Animal { public:void speak(){cout << "动物在说话" << endl;} };class Cat : public Animal { public:void speak(){cout << "cat在说话" << endl;} };//地址早…

【C语言航路】第七站:结构体初阶

目录 一、结构体的声明 1.结构的基础知识 2.结构的声明 3.结构体成员的类型 4.结构体变量的定义和初始化 二、结构体成员的访问 三、结构体传参 总结 一、结构体的声明 1.结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量&#xff0c;结构的每个成员可…

《少有人走的路:心智成熟的旅程》笔记

几乎人人都有心理问题&#xff0c;只是程度不同而已。 几乎人人都有横渡不同的心里疾病&#xff0c;只是得病的时间不同而已。 ps : 许多人都没有付出足够的时间和精力&#xff0c;去解决知识、社交、心理方面的问题 作者序言&#xff1a; 目录 一、痛苦的价值 二、对待痛苦…

Linux操作系统粘滞位(解决上篇文章提出的问题)

前言 &#xff1a; 在上一篇Linux操作系统的博客中提出了&#xff0c;一个问题就是在一个公共目录里&#xff0c;假如我们有了对目录写的权限&#xff0c;我们就能进行创建属于我们自己的文件&#xff0c;并且给这个文件进行设置他的权限&#xff0c;我们发现虽然是我的文件&am…

抗疫行动题材网页设计 大学生最美逆行者感动人物网页代码 众志成城万众一心抗击疫情HTML网页设计

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

【GD32F427开发板试用】+DHT11温湿度监测

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;四季的温度 在完成所有项目后会开源&#xff0c;本次依旧是想做一个通过DHT11采集信息&#xff0c;OLED显示&#xff0c;ESP8266上传&#xff…

第二十四章《学生信息管理系统》第1节:学生信息管理系统简介

学生信息管理系统用于管理学生基本信息,该系统除能够大大的帮助学籍管理人员提高工作效率。本小节将从软件功能、数据库系统设计和项目结构几个方面介绍该软件系统的设计方案。 24.1.1系统功能简介 学生信息管理系统集信息展示、查询、增删和修改多种功能为一体,该系统的主…

1552_AURIX_TC275_时钟分发

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这一页文件我没写什么批注&#xff0c;但是还是留下来了。从这个图中能够看到各个模块的时钟源是可以来自于什么地方。 1. CCU的输入主要是来自于两个PLL、备份时钟以及晶振。 2. 对大多数…

SpringBoot引入外部jar包,项目打包成war包发布(亲测有效) - 第453篇

历史文章&#xff08;文章累计450&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 利用Spring扩展点对敏感信息加密解密&a…

【小f的刷题笔记】(JS)数组 - 前缀和 LeetCode303 LeetCode34

【数组】 前缀和&#xff1a; &#x1f31f; 原始数组不会被修改的情况下&#xff0c;频繁查询某个区间的累加和 ✔ 一次把所有从一开始到本数的累加值计算出来存在一个新数组里&#xff0c;区间的累加值通过减法得出 LeetCode303 链接&#xff1a; 303.区域和检索 - 数组…

刷爆力扣之至少是其它数字两倍的最大数

刷爆力扣之至少是其它数字两倍的最大数 HELLO&#xff0c;各位看官大大好&#xff0c;我是阿呆 &#x1f648;&#x1f648;&#x1f648; 今天阿呆继续记录下力扣刷题过程&#xff0c;收录在专栏算法中 &#x1f61c;&#x1f61c;&#x1f61c; 该专栏按照不同类别标签进行刷…

一文带你了解【深度学习】中CNN、RNN、LSTM、DBN等神经网络(图文解释 包括各种激活函数)

觉得有帮助请点赞关注收藏~~~ 一、深度学习概述 深度学习算法属于机器学习算法的范畴&#xff0c;深度学习一般具有自主学习能力 基于深度学习的自然语言处理基本操作步骤包括&#xff1a; 将原始信息输入神经网络模型&#xff0c;通过自主学习算法识别输入特征&#xff1b;…