飞凌OKMX6ULL-C开发板试用

开箱体验

主要配件包括:USB Type-C调试线、电源线、主板。

 

资源下载

开发环境 

飞凌提供了制作好的ubuntu18.04的镜像,直接到网盘下载解压即可,VMWare的安装可以参考网上教程,这里不赘述。安装好VMWare后直接打开解压出来的ubuntu18.04镜像,登录账户forlinx,密码forlinx

 硬件资料

硬件资料包括用户手册、数据手册、PDF版的原理图以及更新记录

软件资料

软件方面提供了linux4.1.15+QT5.6的镜像、原厂资料包、丰富的应用笔记、数据手册、烧录工具以及Linux源码

 系统介绍

OKMX6ULL-C开发板使用的是NXP的imx6-ul处理器,主要特性如下

CPU

  • Cortex-A7内核,运行频率900 MHz,128 KB L2缓存

显示

  • 并行LCD显示,分辨率高达WXGA (1366x768)
  • 8/10/16/24位并行摄像头传感器接口
  • 电泳显示屏控制器支持直接驱动E-Ink EPD面板,分辨率高达2048x1536,工作频率106 Hz

存储

  • 16位LP-DDR2, DDR3/DDR3L
  • 8/16位并行NOR FLASH / PSRAM
  • 双通道Quad-SPI NOR FLASH
  • 8位原始NAND FLASH与40位ECC

连接

  • 2个MMC 4.5/SD 3.0/SDIO端口
  • 2个USB 2.0 OTG,HS/FS,器件或主机,带PHY接口
  • 音频接口包括3个I2S/SAI, S/PDIF Tx/Rx
  • 2个10/100以太网,支持IEEE 1588协议
  • 2个12位ADC,高达10个输入通道,以及电阻式触摸控制器(4线/5线)

安全性

  • 安全模块:TRNG,加密引擎(带DPA的AES,TDES/SHA/RSA),安全引导

系统测试

 查看 CPU 信息命令

取系统中的 CPU 的提供商和参数信息,则可以通过/proc/cpuinfo 文件得到。

  • processor:系统中逻辑处理核的编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
  • BogoMIPS :在系统内核启动时粗略测算的 CPU 每秒运行百万条指令数(MillionInstructions Per Second)
root@fl-imx6ull:~# cat /proc/cpuinfo 
processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 3.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5Hardware        : Freescale i.MX6 Ultralite (Device Tree)
Revision        : 0000
Serial          : 471669d75d5b2ac2

CPU使用情况

Top命令查看CPU使用情况

Tasks:  92 total,   1 running,  88 sleeping,   3 stopped,   0 zombie
%Cpu(s):  1.5 us,  2.0 sy,  0.0 ni, 96.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   489380 total,   373512 free,    35020 used,    80848 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   371988 avail Mem PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                 883 root      20   0    3236   1920   1612 R  3.2  0.4   0:03.34 top                                                     624 avahi     20   0    3692   2120   1948 S  0.6  0.4   0:00.50 avahi-daemon                                            1 root      20   0    1708   1096   1028 S  0.0  0.2   0:02.09 init                                                    2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd                                                3 root      20   0       0      0      0 S  0.0  0.0   0:00.15 ksoftirqd/0                                             5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                            7 root      20   0       0      0      0 S  0.0  0.0   0:00.34 rcu_preempt                                             8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_sched                                               9 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                  10 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                             11 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 khelper                                                 12 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kdevtmpfs                                               13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 perf                                                    14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback                                               15 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto                                                  16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                  17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd                                                 18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ata_sff                                                 20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 cfg80211                                                21 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 rpciod                                                  22 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kswapd0                                                 23 root      20   0       0      0      0 S  0.0  0.0   0:00.00 fsnotify_mark                                           24 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 nfsiod                                                  61 root      20   0       0      0      0 S  0.0  0.0   0:00.00 spi0                                                    62 root      20   0       0      0      0 S  0.0  0.0   0:00.00 spi1                                                    63 root      20   0       0      0      0 S  0.0  0.0   0:00.14 kworker/u2:1                                            68 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ci_otg                                                  69 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 goodix_wq                                               70 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 gtp_esd_check   
  • %us:表示用户空间程序的 cpu 使用率(没有通过 nice 调度)
  • %sy:表示系统空间的 cpu 使用率,主要是内核程序
  • %ni:表示用户空间且通过 nice 调度过的程序的 cpu 使用率
  • %id:空闲 cpu
  • %wa: 等待输入输出的 CPU 时间百分比
  • %hi:cpu 处理硬中断的数量
  • %si:cpu 处理软中断的数量

CPU支持的频率

查看当前CPU支持的频率档位

root@fl-imx6ull:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 
198000 396000 528000 792000 root@fl-imx6ull:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 
198000

获取 CPU 温度信息

root@fl-imx6ull:~# cat /sys/class/thermal/thermal_zone0/temp 
55025

上面显示的数字为千分之一度,处以1000就是当前温度

CPU压力测试

通过 bc 命令来计算圆周率方法来测试 CPU 在运算过程中的稳定性。基本上保持在98.5%左右

 过一会儿计算出了圆周率

 查看内存信息

可以通过/proc/meminfo 文件读取系统中的内存的参数信息

root@fl-imx6ull:~# cat /proc/meminfo 
MemTotal:         489380 kB
MemFree:          399972 kB
MemAvailable:     387244 kB
Buffers:            6788 kB
Cached:            40912 kB
SwapCached:            0 kB
Active:            40896 kB
Inactive:          28524 kB
Active(anon):      21932 kB
Inactive(anon):      860 kB
Active(file):      18964 kB
Inactive(file):    27664 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         489380 kB
LowFree:          399972 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                20 kB
Writeback:             0 kB
AnonPages:         21720 kB
Mapped:            22508 kB
Shmem:              1072 kB
Slab:              10640 kB
SReclaimable:       3420 kB
SUnreclaim:         7220 kB
KernelStack:         728 kB
PageTables:          972 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      244688 kB
Committed_AS:      75644 kB
VmallocTotal:    1548288 kB
VmallocUsed:       37188 kB
VmallocChunk:    1329932 kB
CmaTotal:         327680 kB
CmaFree:          326632 kB
root@fl-imx6ull:~# 

获取内存使用率

使用 free 命令来读取内存的使用情况,-m 参数代表单位为 MByte。

root@fl-imx6ull:~# free -mtotal        used        free      shared  buff/cache   available
Mem:            477          30         392           1          55         378
Swap:             0           0           0
  • total :内存总量 (我拿到的是512M的内存版本)
  • used :被使用的内存量
root@fl-imx6ull:~# memsize
384MB OK
384

内存压力测试

通过给定测试内存的大小和次数, 可以对系统现有的内存进行压力上的测试。可使用系统工具 memtester 进行测试,如指定内存大小 50MB,测试次数为 5,测试命令为“memtester 50M 5"。

root@fl-imx6ull:~# memtester 50M 5                                                                                                               
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).pagesize is 4096
pagesizemask is 0xfffff000
want 50MB (52428800 bytes)
got  50MB (52428800 bytes), trying mlock ...locked.
Loop 1/5:Stuck Address       : ok         Random Value        : okCompare XOR         : okCompare SUB         : okCompare MUL         : okCompare DIV         : okCompare OR          : okCompare AND         : okSequential Increment: okSolid Bits          : ok         Block Sequential    : ok         Checkerboard        : ok         Bit Spread          : ok         Bit Flip            : ok         Walking Ones        : ok         Walking Zeroes      : ok         Loop 2/5:Stuck Address       : ok         Random Value        : okCompare XOR         : okCompare SUB         : okCompare MUL         : okCompare DIV         : okCompare OR          : okCompare AND         : okSequential Increment: okSolid Bits          : ok         Block Sequential    : ok         Checkerboard        : ok         Bit Spread          : ok         Bit Flip            : ok         Walking Ones        : ok         Walking Zeroes      : ok         Loop 3/5:Stuck Address       : ok         Random Value        : okCompare XOR         : okCompare SUB         : okCompare MUL         : okCompare DIV         : okCompare OR          : okCompare AND         : okSequential Increment: okSolid Bits          : ok         Block Sequential    : ok         Checkerboard        : ok         Bit Spread          : ok         Bit Flip            : ok         Walking Ones        : ok         Walking Zeroes      : ok         Loop 4/5:Stuck Address       : ok         Random Value        : okCompare XOR         : okCompare SUB         : okCompare MUL         : okCompare DIV         : okCompare OR          : okCompare AND         : okSequential Increment: okSolid Bits          : ok         Block Sequential    : ok         Checkerboard        : ok         Bit Spread          : ok         Bit Flip            : ok         Walking Ones        : ok         Walking Zeroes      : ok         Loop 5/5:Stuck Address       : ok         Random Value        : okCompare XOR         : okCompare SUB         : okCompare MUL         : okCompare DIV         : okCompare OR          : okCompare AND         : okSequential Increment: okSolid Bits          : ok         Block Sequential    : ok         Checkerboard        : ok         Bit Spread          : ok         Bit Flip            : ok         Walking Ones        : ok         Walking Zeroes      : ok         Done.

查看分区信息

root@fl-imx6ull:~# cat /proc/partitions 
major minor  #blocks  name1        0      65536 ram01        1      65536 ram11        2      65536 ram21        3      65536 ram31        4      65536 ram41        5      65536 ram51        6      65536 ram61        7      65536 ram71        8      65536 ram81        9      65536 ram91       10      65536 ram101       11      65536 ram111       12      65536 ram121       13      65536 ram131       14      65536 ram141       15      65536 ram15179        0    7634944 mmcblk1179        1     512000 mmcblk1p1179        2    7020544 mmcblk1p2179       24       4096 mmcblk1rpmb179       16       4096 mmcblk1boot1179        8       4096 mmcblk1boot0
root@fl-imx6ull:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.5G  750M  5.4G  12% /
devtmpfs         79M  4.0K   79M   1% /dev
tmpfs            40K     0   40K   0% /mnt/.psplash
tmpfs           239M  172K  239M   1% /run
tmpfs           239M  172K  239M   1% /var/volatile
/dev/mmcblk1p1  500M   15M  486M   3% /run/media/mmcblk1p1

网络

设置网卡0的IP地址,ifconfig命令可以查看当前系统的网卡

root@fl-imx6ull:~# ifconfig eth0 192.168.1.1
root@fl-imx6ull:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 3a:63:34:0f:71:84  inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0UP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)eth1      Link encap:Ethernet  HWaddr 62:38:63:34:0f:71  UP BROADCAST MULTICAST DYNAMIC  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

uname查看内核版本

root@fl-imx6ull:~# uname -a
Linux fl-imx6ull 4.1.15-00050-ge85def2 #1 SMP PREEMPT Mon Apr 18 17:42:50 CST 2022 armv7l armv7l armv7l GNU/Linux

mplayer播放MP4

root@fl-imx6ull:~# mplayer -vo fbdev test.mp4 
Creating config file: /home/root/.mplayer/config
MPlayer 1.3.0-5.3.0 (C) 2000-2016 MPlayer TeamPlaying test.mp4.
libavformat version 57.25.100 (internal)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x887550]Protocol name not provided, cannot determine if input is local or a network protocol, l
[lavf] stream 0: video (mpeg4), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang und
VIDEO:  [MP4V]  480x272  24bpp  23.976 fps  1077.9 kbps (131.6 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 57.24.102 (internal)
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Clip info:major_brand: isomminor_version: 512compatible_brands: isomiso2mp41encoder: Lavf55.19.104
Load subtitles in ./
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
top - 04:06:00 up 21 min,  2 users,  load average: 0.08, 0.05, 0.05
Tasks:  92 total,   1 running,  89 sleeping,   2 stopped,   0 zombie
%Cpu(s):  0.3 us,  2.3 sy,  0.0 ni, 97.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   489380 total,   370476 free,    34204 used,    84700 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   370888 avail Mem 
root@fl-imx6ull:~# mplayer -vo fbdev test.mp4      
MPlayer 1.3.0-5.3.0 (C) 2000-2016 MPlayer TeamPlaying test.mp4.
libavformat version 57.25.100 (internal)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x887550]Protocol name not provided, cannot determine if input is local or a network protocol, l
[lavf] stream 0: video (mpeg4), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang und
VIDEO:  [MP4V]  480x272  24bpp  23.976 fps  1077.9 kbps (131.6 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 57.24.102 (internal)
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Clip info:major_brand: isomminor_version: 512compatible_brands: isomiso2mp41encoder: Lavf55.19.104
Load subtitles in ./
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 44100 Hz, 2 ch, floatle, 126.2 kbit/4.47% (ratio: 15775->352800)
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
[AO OSS] audio_setup: Can't open audio device /dev/dsp: No such file or directory
AO: [alsa] 44100Hz 2ch floatle (4 bytes per sample)
Starting playback...
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0xab8380]bicubic scaler, from yuv420p to bgra using C
[swscaler @ 0xab8380]No accelerated colorspace conversion found from yuv420p to bgra.
[swscaler @ 0xab8380]using unscaled yuv420p -> bgra special converter
VO: [fbdev] 480x272 => 484x272 BGRA 
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0xab8380]No accelerated colorspace conversion found from yuv420p to bgra.
VO: [fbdev] 480x272 => 484x272 BGRA 
A:   0.1 V:   0.0 A-V:  0.102 ct:  0.004   0/  0 ??% ??% ??,?% 0 0 
[VD_FFMPEG] DRI failure.
A:  20.0 V:  20.0 A-V:  0.005 ct:  0.065   0/  0 24%  3%  3.8% 0 0 Exiting... (End of file)

应用开发(VNC显示QT界面)

本次飞凌嵌入式提供的OKMX6ULL-C开发板,么有配LCD屏幕,想看一下系统的QT显示,只能尝试搞一下VNC,通过远程桌面来看QT的HMI界面。

OKMX6ULL-C(VNC Server)<-----------网线----------->PC (VNC Client)

下载x11vnc

下载链接:https://x11vnc.sourceforge.net/dev/x11vnc-0.9.14-dev.tar.gz

 解压x11vnc

切换到x11vnc解压出来的目录

cd /home/forlinx/work/x11vnc-0.9.14-dev/x11vnc-0.9.14

 配置交叉编译环境

设置交叉编译环境
source /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
确认一下交叉编译命令CC是否Okay
$ echo $CC
arm-poky-linux-gnueabi-gcc -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi

 配置x11vnc

查看configure文件中的编译变量指定:

这里直接使用的是$CC,所以上一步要source一下ToolChian,

source /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

 

--host参数指定交叉编译

--prefix指定最终的安装目录

./configure --host=arm-poky-linux --prefix=/home/forlinx/opt/vnc

 编译及安装

make &&make install

最终编译出来的x11vnc如下:

$ tree 
.
└── vnc├── bin│   └── x11vnc├── include│   └── rfb│       ├── keysym.h│       ├── rfbclient.h│       ├── rfbconfig.h│       ├── rfb.h│       ├── rfbint.h│       ├── rfbproto.h│       └── rfbregion.h├── man│   └── man1│       └── x11vnc.1└── share├── applications│   └── x11vnc.desktop└── x11vnc└── classes├── index.vnc├── ssl│   ├── index.vnc│   ├── proxy.vnc│   ├── README│   ├── SignedUltraViewerSSL.jar│   ├── SignedVncViewer.jar│   ├── ss_vncviewer│   ├── ultrasigned.vnc│   ├── UltraViewerSSL.jar│   ├── ultra.vnc│   └── VncViewer.jar└── VncViewer.jar11 directories, 22 files

运行x11vnc

OKMX6ULL-C板端作为VNC Server,PC作为VNC Viewer

通过网线连接PC和OMX6ULL-C板

板端

  • 将上述编译出来的~/opt/vnc整个目录通过scp传输到板端
  • 配置板子的IP地址为192.168.1.1
  • 直接运行
root@fl-imx6ull:~/vnc# ls
bin      include  man      share
root@fl-imx6ull:~/vnc# ./bin/x11vnc

 PC端

  • PC端安装好VNC viewer工具(下载链接 Download VNC Server | VNC® Connect)
  • 配置PC的IP地址为192.168.1.2
  • 设置好需要连接的远端桌面的IP(OKMX6ULL-C板端)192.168.1.1

打开VNC Viewer设置连接:

 

 

 连接成功后就可以看到QT的界面了,x11vnc支持事件捕获,所以是支持鼠标操控QT界面的。

最后上一个完整的靓图吧:)

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

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

相关文章

高性能MySQL实战(一):表结构

大家好&#xff0c;我是 方圆。最近因需求改动新增了一些数据库表&#xff0c;但是在定义表结构时&#xff0c;具体列属性的选择有些不知其所以然&#xff0c;索引的添加也有遗漏和不规范的地方&#xff0c;所以我打算为创建一个高性能表的过程以实战的形式写一个专题&#xff…

IMv1.0

一、背景内容 总结golang基础内容&#xff0c;通过一个实例实时 IM系统简进行总结知识 二、简要的图 简要说明&#xff1a; 1.在server.go中&#xff0c;创建一个Newserver返回server指针的结构体 2.正对这个指针结构体实现两个方法 Handler&#xff08;处理方法&#xff0…

VBA遍历Wrod所有表格每个单元格,单元格未尾两个回车替换

一、遍历 word中遍历所有表格的每个单元格。因为在单元格时会常出错。浪费了不少时间。 Sub a()Dim doc As Document, tb As Table, ce As cellDim rng As Range, p As ParagraphSet doc ActiveDocumentFor Each tb In doc.TablesFor Each ce In tb.Range.Cells 关键处就是这里…

redis入门2-命令

Redis的基本数据类型 redis的基本数据类型&#xff08;value&#xff09;: string,普通字符串 hash&#xff08;哈希&#xff09;,适合存储对象 list(列表),按照插入顺序排序&#xff0c;可以由重复的元素 set(无序集合)&#xff0c;没有重复的元素 sorted set(有序集合)&…

Rust 原生支持龙架构指令集

导读近日&#xff0c;Rust 开源社区发布 1.71.0 版本&#xff0c;实现对龙架构&#xff08;LoongArch&#xff09;指令集的原生支持。 龙架构操作系统发行版和开发者可基于上游社区源代码构建或直接下载 Rust 开源社区发布的龙架构二进制版本。Rust 开发者将在龙架构平台上获得…

【枚举】CF1706 C

有人一道1400写了一个小时 Problem - C - Codeforces 题意&#xff1a; 思路&#xff1a; 首先先去观察样例&#xff1a; 很显然&#xff0c;对于n是奇数的情况&#xff0c;只有一种情况&#xff0c;直接操作偶数位就好了 主要是没搞清楚n是偶数的情况 其实有个小技巧&…

无涯教程-Perl - delete函数

描述 此函数从哈希中删除指定的键和关联的值,或从数组中删除指定的元素。该操作适用于单个元素或切片。 语法 以下是此函数的简单语法- delete LIST返回值 如果键不存在,并且与已删除的哈希键或数组索引关联的值,则此函数返回undef。 Perl 中的 delete函数 - 无涯教程网无…

FreeRTOS(vTaskList与vTaskGetRunTimeStats)

目录 1、Cube配置 ①配置SYS ②配置TIM3 ③配置USART2 ④配置FreeRTOS ⑤配置中断优先级 2、代码添加改动 ①在main函数合适位置开启TIM3中断 ②修改HAL_TIM_PeriodElapsedCallback函数 ③完善两个相关函数 ④vTaskList与vTaskGetRunTimeStats的使用 vTaskList&#xff…

p7付费课程笔记6:CMS GC

目录 前言 工作步骤 缺点 问题 前言 上一章节我们讲了串/并行GC&#xff0c;这一章节说下CMS GC。看前思考一个问题&#xff0c;并行GC与CMS GC的区别在哪里。 什么是CMS收集器 CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于…

数据库索引的使用

1、MySQL的基本架构 架构图 左边的client可以看成是客户端&#xff0c;客户端有很多&#xff0c;像我们经常你使用的CMD黑窗口&#xff0c;像我们经常用于学习的WorkBench&#xff0c;像企业经常使用的Navicat工具&#xff0c;它们都是一个客户端。右边的这一大堆都可以看成是…

【C++从0到王者】第十六站:stack和queue的使用

文章目录 一、stack的使用1.stack的介绍2.stack的使用 二、queue的使用1.queue的护额晒2.queue的使用 三、stack和queue相关算法题1.最小栈2.栈的压入、弹出序列3.逆波兰表达式4.两个栈实现一个队列5.用两个队列实现栈6.二叉树的层序遍历1.双队列2.用一个变量levelSize去控制 7…

ECharts 折线图使用相关

一、折线图堆叠设置为不堆叠的方法 官网是这样的&#xff0c;但是不需要这种堆叠形式的如下图&#xff1a; 即&#xff1a;第2条数据值 第1条数据值 第2条数据值 ​​​​​​​ 第3条数据值 第2条数据值 第3条数据值 需要改成实际值展示&#xff0c;如下图&#xff1a; 只…

数据结构之栈和队列---c++

栈和队列的简单介绍 栈 栈是一个“先进后出”结构 队列 入队演示 队列是一种“先进先出”的结构 出队演示 接下来我们开始本次的内容 栈实现队列 分析 1.我们可以老老实实的写一个栈然后将所有的接口函数实现出来&#xff0c;最后再进行实现队列&#xff0c;但是显然…

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块7

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

【数学建模学习(9):模拟退火算法】

模拟退火算法(Simulated Annealing, SA)的思想借 鉴于固体的退火原理&#xff0c;当固体的温度很高的时候&#xff0c;内能比 较大&#xff0c;固体的内部粒子处于快速无序运动&#xff0c;当温度慢慢降 低的过程中&#xff0c;固体的内能减小&#xff0c;粒子的慢慢趋于有序&a…

空地协同智能消防系统——无人机、小车协同

1 题目 1.1 任务 设计一个由四旋翼无人机及消防车构成的空地协同智能消防系统。无人机上安装垂直向下的激光笔&#xff0c;用于指示巡逻航迹。巡防区域为40dm48dm。无人机巡逻时可覆盖地面8dm宽度区域。以缩短完成全覆盖巡逻时间为原则&#xff0c;无人机按照规划航线巡逻。发…

2019年09月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题 第1题 关于Python的编程环境,下列的哪个表述是正确的? A:Python的编程环境是图形化的; B:Python只有一种编程环境ipython; C:Python自带的编程环境是IDLE; D:用windows自带的文本编辑器也可以给Python编程?,并且也可以在该编辑器下运行; 正确答案…

自动驾驶传感器选型

360的场景&#xff0c;避免有盲区&#xff0c;长距离 Lidar&#xff08;激光雷达&#xff09; 典型特点一圈一圈的&#xff0c;轮廓和很高的位置精度 禾赛的机械雷达 速腾的固态雷达 固态雷达是车规级的&#xff0c;车规级的意思是可以装到量产车上 Radar&#xff08;毫米…

门面模式(C++)

定义 为子系统中的一组接口提供一个一致(稳定) 的界面&#xff0c;Facade模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用(复用)。 应用场景 上述A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合&#xff0c;随着外部客户程序和各子…

数据结构—哈夫曼树及其应用

5.6哈夫曼树及其应用 5.6.1哈夫曼树的基本概念 路径&#xff1a;从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。 结点的路径长度&#xff1a;两结点间路径上的分支数。 树的路径长度&#xff1a;从树根到每一个结点的路径长度之和。记作 TL 结点数目相同的…