i.MX9352——介绍一款多核异构开发板
本篇来介绍一款多核异构的Linux开发板——OK-MX9352-C开发板。
1 开发板硬件介绍
OK-MX9352-C开发板由核心板和底板组成,核心板采用处理器芯片为NXP的i.MX9352,这是一款多核异构的芯片,核心板基础配置如下
- CPU:2×Cortex-A55@1.5GHz+1×Cortex-M33@250MHz
- NPU:0.5 TOPS
- 1GB LPDDR4
- 8GB eMMC
1.1 板子正面

1.2 板子反面

2 系统登陆
2.1 串口登录
串口波特率 115200,使用root用户登录,无密码。
串口登录后效果如下:

通过串口登录到开发板的Linux系统后,可以使用WiFi设置脚本来连接WiFi
fltest_wifi.sh -i wlan0 -s WiFi名称 -p WiFi密码
2.2 SSH登录
OK-MX9352-C开发板支持SSH服务,在开发板连接到网络后,通过SSH方式使用板子的IP进行无线登录。
SSH登录后效果如下:

3 文件互传
3.1 WinSCP方式
SSH服务除了可以用于无线登录,借助WinSCP软件,还可实现Windows电脑与开发板之间的文件互传。
使用WinSCP软件连接开发板后的文件展示效果如下,左侧是Windows电脑的文件系统,右侧是OK-MX9352-C 开发板的文件系统。

3.2 FTP方式
OK-MX9352-C开发板还支持FTP服务,借助FileZilla软件,也可实现Windows电脑与开发板之间的文件互传。
使用FileZilla软件连接开发板后的文件展示效果如下,左侧是Windows电脑的文件系统,右侧是OK-MX9352-C 开发板的文件系统。

4 基础功能体验
4.1 系统信息查看
查看内核和cpu信息
uname -a
查看Linux操作系统的相关信息
cat /etc/issue
查看开发板中设置的环境变量:
env

查看开发板上CPU的温度:
cat /sys/class/thermal/thermal_zone0/temp

34350表示温度值为 34.350℃
4.2 LED测试
OK-MX9352-C 开发板上有两个可以控制的LED:
- 核心板有1个蓝色心跳LED(D1),对应/sys/class/leds下的heartbeat
- 底板上有1个蓝色定时闪烁LED (D6),对应/sys/class/leds下的led1

下面以底板上的LED为例,查看其触发条件:
cat /sys/class/leds/led1/trigger
当触发条件设置为none后,即可通过如下命令控制其亮灭
echo none > /sys/class/leds/led1/trigger
echo 1 > /sys/class/leds/led1/brightness
echo 0 > /sys/class/leds/led1/brightness
通过如下指令,可将其改为心跳灯或定时器灯
echo heartbeat > /sys/class/leds/led1/trigger
echo timer > /sys/class/leds/led1/trigger
4.3 按键测试
OK-MX9352-C开发板的底板上有一个用户按键(K1),就在用户LED的下方

查看按键的 input 事件,并进行按键测试
cat /proc/bus/input/devices
evtest /dev/input/event1
此时按下按键和抬起按键,会上报对应的信息

4.4 ADC测试
OK-MX9352-C开发板的底板上引出了4 路ADC接口,旁边还有一个滑动变阻器,通过跳线帽可将ADC1或ADC2与滑动变阻器相连:

以 ADC1为例,用跳线帽短接,然后使用如下命令:
cat /sys/bus/iio/devices/iio\:device0/in_voltage_scale
cat /sys/bus/iio/devices/iio\:device0/in_voltage1_raw

调节滑动变阻器,上述命令读取的ADC是值随之变化
电压值计算公式:voltage = voltage_scale * voltage_raw
0.439453125 * 3327 ≈ 1462 mV
最大值4095,对应最大参考电压1.8V
0.439453125 * 4095 ≈ 1800 mV
4.5 GPIO测试
OK-MX9352-C开发板的底板上引出了28个GPIO口

使用如下命令将 GPIO0设置为高电平,最后的1改为0即为设置为低电平
gpioset gpiochip0 0=1
使用如下命令获取GPIO电平状态
gpioget gpiochip0
4.6 串口测试
OK-MX9352-C开发板的底板集成了 XR21V1414IM48 芯片,实现USB 转串口功能。
该芯片引出4个串口:
- ttyUSB0 和 ttyUSB3 被设计为RS-485串口
- ttyUSB1和 ttyUSB2 被被设计为RS-232串口

4.6.1 232串口测试
关闭电源,短接 P19 的第 5 脚和第 8 脚,使 ttyUSB1 的接收引脚和 ttyUSB2 的发送引脚相连
设置 ttyUSB1 为接收模式, ttyUSB2 为发送模式:
fltest_uarttest -d /dev/ttyUSB1 r &
fltest_uarttest -d /dev/ttyUSB2 w

可以看到,ttyUSB1收到了ttyUSB2 发送的数据
4.6.2 485串口测试
测试方法与485 串口类似,连接两个485 串口,即A1引脚(9脚)和A2引脚(12脚)相连,B1引脚(8脚)和 B2引脚(11脚)相连
设置 ttyUSB0为接收模式, ttyUSB3为发送模式:
fltest_uarttest -d /dev/ttyUSB0 r &
fltest_uarttest -d /dev/ttyUSB3 w
4.7 CAN测试
OK-MX9352-C开发板的底板上有两个CAN 端口,可以测试两个端口之间的通信。
将CAN1的H端(2脚)与CAN2的H端(5脚)连接,CAN1的L端(1脚)与CAN2的L端(4脚)相连:

开启can功能
ip link set can0 up type can bitrate 500000
ip link set can1 up type can bitrate 500000
设置CAN0 处于接收模式 ,CAN1 随机发送帧数据
candump can0 &
cangen can1

5 总结
本篇介绍了飞凌OK-MX9352-C开发板的基础硬件功能、系统登录方式、文件互传方式,并通过串口指令,对开发板的基础功能进行了测试。
相关文章:
i.MX9352——介绍一款多核异构开发板
本篇来介绍一款多核异构的Linux开发板——OK-MX9352-C开发板。 1 开发板硬件介绍 OK-MX9352-C开发板由核心板和底板组成,核心板采用处理器芯片为NXP的i.MX9352,这是一款多核异构的芯片,核心板基础配置如下 CPU:2Cortex-A551.5G…...
【Python】一文学会面向对象?当然可以的
文章目录前言一、万物皆对象二、类也是对象三,元类总结前言 在大家学习python的时候,一定听说过一句话: 在我们python中万物皆对象,不管是整数、字符串、列表、字典这些基本数据类型,还是函数、以及自定义类创建出来…...
ElasticSearch - SpringBoot整合ES:精确值查询 term
文章目录00. 数据准备01. ElasticSearch 结构化搜索是什么?02. ElasticSearch 结构化搜索方式有哪些?03. ElasticSearch 全文搜索方式有哪些?04. ElasticSearch term 查询数字?05. ElasticSearch term 查询会不会计算评分…...
【GPT4】微软对 GPT-4 的全面测试报告(2)
欢迎关注【youcans的GPT学习笔记】原创作品,火热更新中 微软对 GPT-4 的全面测试报告(1) 微软对 GPT-4 的全面测试报告(2) 【GPT4】微软对 GPT-4 的全面测试报告(2)2. 多模态与跨学科的组合&…...
Docker打包exe运行环境
Docker打包exe运行环境 本文运行环境 Window安装Docker环境 修改配置 点击Switch to Window containers OS/Arch 变为 windows/amd64 拉取window镜像 访问Nano Server找到需要的Window版本拉取镜像 运行镜像测试 进入到容器内部 其他内容就自由发挥啦~~ 参考内容…...
springboot+vue田径运动会成绩管理系统java
springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 田径运动会成绩管理系统,主要的模块包括首页、个人中心、赛…...
我能“C”——详解操作符(上)
目录 1.操作符的分类: 2. 算数操作符 3.移位操作符 4.位操作符 5.赋值操作符 6.单目操作符 7.关系操作符 8.逻辑操作符 THE END 1.操作符的分类: 操作符也叫运算符 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑…...
第一章Vue基础
文章目录前端发展史前端三要素JavaScript框架UI框架JavaScript构建工具三端合一什么是VueVue的好处什么是MVVM为什么要使用MVVM环境配置第一个Vue程序声明式渲染模板语法绑定样式数据绑定为什么要实现数据的双向绑定el与data的两种写法条件渲染事件驱动事件的基本用法事件修饰符…...
【虚幻引擎UE】UE5核心效率插件推荐
一、UnrealEditorPythonScripts (基于UE5 的Python支持插件) 支持Python语言基于UE5进行开发 GIT地址:https://github.com/mamoniem/UnrealEditorPythonScripts 二、Haxe-UnrealEngine5 (基于UE5 的Haxe支持插件) Haxe是一门新兴的开源编程语言,是一种开源的编程语言。…...
记录丨阿里云校招生的成长经历
为了帮助大家更好地了解阿里云云原生应用平台团队同学的成长路径,我们采访了6位各个时间点加入阿里云的学长学姐们,希望他们的经历可以帮助到大家。 经历分享 钰诚丨2022年加入阿里云,校招 大家好,我叫钰诚,目前刚来…...
蓝桥杯第14天(Python版)
并查集的使用# 并查集模板 N400 fa[] def init(): # 初始化,默认自身为根接点for i in range(N):fa.append(i)def merge(x,y): # 发现可以合并,默认选x的根节点为根接点fa[find(x)]find(y)def find(x): # 相等就是根结点,不然就递归查找根…...
双指针常用方法
1.双指针介绍 双指针是解题时一种常见的思路,一般有两种用法。 1)两个指针反方向,分别从数组开头和结尾开始移动,例如对有序数组的搜索。 2)两个指针同方向移动,例如快慢指针,都是从数组开头…...
人工智能大模型之ChatGPT原理解析
前言 近几个月ChatGPT爆火出圈,一路狂飙;它功能十分强大,不仅能回答各种各样的问题,还可以信写作,给程序找bug…我经过一段时间的深度使用后,十分汗颜,"智障对话"体验相比,…...
傅里叶谱方法-傅里叶谱方法的原理、快速傅里叶变换及其Matlab程序实现
第 3 章 傅里叶谱方法 本章介绍的求解偏微分方程(组)的方法都包含着周期性边界条件, 尽管周期性边界条件不属于数学物理方法中常见的传统三类边界条件, 但它并不脱离实际。某些科学问题的研究重点不受边界的影响, 如孤子之间的相互作用 (非线性薛定谔方程或 K d V \mathrm{…...
11万字数字政府智慧政务大数据建设平台(大数据底座、数据治理)
本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。部分资料内容: 一.1.1 数据采集子系统 数据采集需要实现对全区各委办单位的数据采集功能,包括离线采集、准实时采集和实时采集的采集方式,根…...
Node.js学习笔记——Node.js模块化
一、介绍 1.1.什么是模块化与模板? 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为模块化。 其中拆分出的每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块…...
【洛谷刷题】蓝桥杯专题突破-广度优先搜索-bfs(12)
目录 写在前面: 题目:P1746 离开中山路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述: 输入格式: 输出格式: 输入样例: 输出样例: 解题思路: 代码: …...
【数据结构】堆(堆的实现 堆向下调整算法 堆的创建 堆的插入 堆的删除 堆的代码实现 堆的应用)
文章目录堆的实现堆向下调整算法堆的创建堆的插入堆的删除堆的代码实现堆的应用堆的实现 堆是属于操作系统进程地址空间内存区域的划分。 我们下面实现数据结构中的堆。 堆是一个完全二叉树:分为小根堆和大根堆。 小根堆:任何一个节点的值都<孩子的…...
JDBC数据库驱动的下载与安装与连接
目录 JDBC数据库驱动下载 Intellij IDEA安装JDBC驱动 在使用 JDBC 之前,需要下载相应的 JDBC 驱动程序,该驱动程序应该与你使用的数据库的版本相对应。可以在数据库官网上找到相应的 JDBC 驱动程序。 JDBC数据库驱动下载 点击官方链接 MySQL :: MySQ…...
如何更改 PDF 背景颜色?
PDF 是用于简洁演示的文件格式,许多员工都参考它来演示文件。如果您想要 PDF 文本的最佳对比度方案,我们建议您更改PDF 背景颜色。您甚至可以更改 PDF 颜色的文本,但它不会有太大吸引力,而是尝试使用 PDF 背景更改器应用程序。如果…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
