tag 标签: 嵌入式开发

相关博文
  • 2025-1-3 11:37
    92 次阅读|
    0 个评论
    本文继续介绍Linux系统查看硬件配置及常用调试命令,方便开发者快速了解开发板硬件信息及进行相关调试。 触觉智能RK3562开发板 演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。 查看系统版本信息 查看操作系统版本信息 root @ido :/ # cat /etc/*release DISTRIB_ID =Ubuntu DISTRIB_RELEASE = 20.04 DISTRIB_CODENAME =focal DISTRIB_DESCRIPTION = "Ubuntu 20.04.3 LTS" NAME = "Ubuntu" VERSION = "20.04.3 LTS (Focal Fossa)" ID =ubuntu ID_LIKE =debian PRETTY_NAME = "Ubuntu 20.04.3 LTS" VERSION_ID = "20.04" HOME_URL = "https://www.ubuntu.com/" SUPPORT_URL = "https://help.ubuntu.com/" BUG_REPORT_URL = "https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL = "https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME =focal UBUNTU_CODENAME =focal BUILD_INFO = "root@industio Sun Oct 9 05:54:12 UTC 2022" BUILD_INFO = "root@industio Thu Oct 20 02:17:12 UTC 2022" BUILD_INFO = "root@industio Thu Oct 20 02:19:41 UTC 2022" 查看linux内核版本信息 root @ido :/ # uname -a Linux ido 5.10.160#24 SMP Thu Jul 18 19:06:25 CST 2024 aarch64 aarch64 aarch64 GNU/Linux 查看内核信息 直接查看内核信息 root @ido :/ #dmesg Booting Linux on physical CPU 0x0000000000 Linux version 5.10 .160 (ronnie @dell-PowerEdge-R430 ) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3 - 2021.07 (arm- 10.29 )) 10.3 . 1 20210621 , GNU ld (GNU Toolchain for the A-profile Architecture 10.3 - 2021.07 (arm- 10.29 )) 2.36 . 1.20210621 ) #24 SMP Thu Jul 18 19 : 06 : 25 CST 2024 Machine model: Rockchip RK3562 IDO EVB3562 V1B Board ...... 筛选出关键字相关的内核信息 # "xxx" 替换成要搜索的关键字 dmesg | grep "xxx" #需要忽略大小写时可以用加上-i dmesg | grep -i "xxx" 关闭内核打印信息 将系统日志优先级调为 0 即可关闭内核打印信息 echo /proc/sys/kernel/printk #控制台的日志优先级简介 # define KERN_EMERG 0 致命级:紧急事件消息,系统崩溃之前提示,表示系统不可用 # define KERN_ALERT 1 警戒级:报告消息,表示必须采取措施 # define KERN_CRIT 2 临界级:临界条件,通常涉及严重的硬件或软件操作失败 # define KERN_ERR 3 错误级:错误条件,驱动程序常用KERN_ERR来报告硬件错误 # define KERN_WARNING 4 告警级:警告条件,对可能出现问题的情况进行警告 # define KERN_NOTICE 5 注意级:正常但又重要的条件,用于提醒 # define KERN_INFO 6 通知级:提示信息,如驱动程序启动时,打印硬件信息 # define KERN_DEBUG 7 调试级:调试级别的信息 查看进程 查看进程信息 PID表示唯一标识,CMD表示进程名,能有多个。 root @ido :~ #ps PIDTTY TIME CMD 465ttyFIQ0 00:00:00 login 769ttyFIQ0 00:00:00 bash 991ttyFIQ0 00:00:00 ps 杀死进程 #杀死某一个进程 root @ido :~ #kill-9PID #杀死某一类进程 root @ido :~ # killall -9 CMD 至此,Linux常用命令教程完成,希望能帮助到大家,2025一起加油。
  • 2024-12-31 10:01
    101 次阅读|
    0 个评论
    本文介绍Linux系统查看硬件配置及常用调试命令,方便开发者快速了解开发板硬件信息及进行相关调试。 触觉智能RK3562开发板 演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。 查看DDR 获取内存信息 下面数字以MB为单位。 root @ido :/ #free-m totalused free shared buff/cache available Mem: 1970 287 1316 19 366 1638 Swap: 0 0 0 更详细信息可以使用下面命令查看 root @ido :/ #cat/proc/meminfo MemTotal: 2017532 kB #总内存的大小 MemFree: 1347508 kB #系统当前可用的空闲内存大小 MemAvailable: 1677712 kB #系统当前可用的内存大小,这包括空闲内存和缓存的内存。 Buffers: 32500 kB Cached: 309484 kB SwapCached: 0 kB Active: 108648 kB Inactive: 433624 kB Active (anon): 1080 kB Inactive(anon): 219252 kB Active (file): 107568 kB Inactive(file): 214372 kB Unevictable: 8132 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 208420 kB Mapped: 189896 kB Shmem: 20044 kB KReclaimable: 33300 kB Slab: 74908 kB SReclaimable: 33300 kB SUnreclaim: 41608 kB KernelStack: 5328 kB PageTables: 7736 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1008764 kB Committed_AS: 1675032 kB VmallocTotal: 263061440 kB VmallocUsed: 11944 kB VmallocChunk: 0 kB Percpu: 720 kB CmaTotal: 16384 kB CmaAllocated: 1600 kB CmaReleased: 14784 kB CmaFree:2088kB 查看DDR频率 下面数字以hz为单位。 root @ido :/ #free-m totalused free shared buff/cache available Mem: 1970 287 1316 19 366 1638 Swap: 0 0 0 查看存储 查看物理存储空间 root @ido :~ #lsblk NAMEM AJ:MI N RM SIZE RO TYPE MOUNTPOINT mmcblk2179:0 0 14.6G 0 disk ├─mmcblk 2p1179:1 0 4 M 0 part ├─mmcblk 2p2179:2 0 4 M 0 part ├─mmcblk 2p3179:3 0 64 M 0 part ├─mmcblk 2p4179:4 0 128 M 0 part ├─mmcblk 2p5179:5 0 32 M 0 part ├─mmcblk2p6179:6 0 2G 0 part /media/ido/userdata ├─mmcblk2p7179:7 0 128M 0 part /media/ido/oem └─mmcblk 2p8179:8 0 12 . 2 G 0 part / mmcblk2boot0179:32 0 4M 1 disk mmcblk2boot 1179:64 0 4 M 1 disk 查看文件系统空间 root @ido :/ #df-h FilesystemSize Used Avail Use% Mounted on /dev/root12G 3.5G 8.0G 31% / devtmpfs974M 8.0K 974M 1% /dev tmpfs985M 0 985M 0% /dev/shm tmpfs197M 7.6M 190M 4% /run tmpfs5.0M 4.0K 5.0M 1% /run/lock tmpfs985M 0 985M 0% /sys/fs/cgroup tmpfs197M 0 197M 0% /run/user/0 tmpfs197M 8.0K 197M 1% /run/user/1001 /dev/mmcblk2p7121M 12M 101M 11% /media/ido/oem /dev/mmcblk2p62.0G 36K 1.8G 1% /media/ido/userdata 查看CPU 查看CPU频率 下面数字以kHz为单位。 root @ido : /#cat/s ys/devices/ system /cpu/cpu* /cpufreq/ cpuinfo_cur_freq 408000 408000 408000 408000 查看CPU温度 下面数字以毫摄氏度为单位,需要除以1000即35摄氏度。 root @ido : /#cat/ sys /class/ thermal /thermal_zone0/ temp 34375 查看网络信息 查看网络节点及IP root @ido :~ #ifconfig enp1s0: flags=4163 mtu 1500 inet 192.168.0.96 netmask 255.255.255.0 broadcast 192.168.0.255 inet6fe80::a60a:bffe:32d2:8a02 prefixlen 64 scopeid 0x20< link ether9a: 55 : 02 : 97 :d9 :a2 txqueuelen 1000 ( Ethernet ) RXpackets 121 bytes 12817 ( 12 . 8 KB) RXerrors 0 dropped 2 overruns 0 frame 0 TXpackets 31 bytes 5749 ( 5 . 7 KB) TXerrors 0 dropped 0 overruns 0 carrier 0 collisions 0 deviceinterrupt 90 base 0xd000 eth0: flags=4099 mtu 1500 ether8a: 18 :a3 :a0 : 63 :c9 txqueuelen 1000 ( Ethernet ) RXpackets 0 bytes 0 ( 0.0 B ) RXerrors 0 dropped 0 overruns 0 frame 0 TXpackets 0 bytes 0 ( 0.0 B ) TXerrors 0 dropped 0 overruns 0 carrier 0 collisions 0 deviceinterrupt 71 eth2: flags=4099 mtu 1500 ether8e: 18 :a3 :a0 : 63 :c9 txqueuelen 1000 ( Ethernet ) RXpackets 0 bytes 0 ( 0.0 B ) RXerrors 0 dropped 0 overruns 0 frame 0 TXpackets 0 bytes 0 ( 0.0 B ) TXerrors 0 dropped 0 overruns 0 carrier 0 collisions 0 deviceinterrupt 75 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0 x10 looptxqueuelen 1000 (Local Loopback) RXpackets 192 bytes 14785 ( 14 . 7 KB) RXerrors 0 dropped 0 overruns 0 frame 0 TXpackets 192 bytes 14785 ( 14 . 7 KB) TXerrors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4099 mtu 1500 etherc0:f5:35:12:5a:40 txqueuelen 1000 (Ethernet) RXpackets 0 bytes 0 ( 0.0 B ) RXerrors 0 dropped 0 overruns 0 frame 0 TXpackets 0 bytes 0 ( 0.0 B ) TXerrors 0 dropped 0 overruns 0 carrier 0 collisions 0 查看网关 root @ido :~ #route-n KernelIP routing table DestinationGateway Genmask Flags Metric Ref Use Iface 0 . 0.0.0192 . 168.0.1 0.0.0.0 UG 100 0 0 enp1s0 192.168.0.00 . 0 . 0 . 0 255.255.255.0 U 100 0 0 enp1s0 更多Linux常用系统查询命令,请关注下集。 产品简介 触觉智能 RK3562 开发板 (型号EVB3562),基于瑞芯微新一代Soc RK3562/RK3562J设计,可用于轻量级人工智能应用。EVB3562开发板配备了PCIe2.1/USB3.0 OTG/千兆网口等各类型接口,支持4G/5G通信、多摄像头及多种视频接口,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示、工业控制等行业领域。 搭载瑞芯微新一代RK3562/RK3562J芯片; 1TOPS算力NPU,支持INT8/INT16/FP16 等数据类型运算; 支持4K@30FPS与1080P@60FPS视频解码; 13M ISP,支持HDR与多路摄像头视频采集; 单路MIPI-DSI,最高2048 x 1080@60fps ; 单通道LVDS,最高1366 x 768@60fps ; 三路独立的以太网口,其中两路千兆网口, 一路百兆网口; 支持5G/4G/WiFi/蓝牙无线通信; 支持Android,Linux操作系统;
  • 2024-12-30 15:40
    142 次阅读|
    0 个评论
    在电子世界的广袤领域中,微控制器(MCU,Microcontroller Unit)宛如一颗璀璨的明星,发挥着至关重要的作用。从简单的智能家居设备到复杂的工业控制系统,MCU 无处不在。今天,我们就一同深入了解 MCU 的基础以及常用的编程手段。 MCU 基础:麻雀虽小,五脏俱全 MCU 是一种将中央处理器(CPU)、存储器(如闪存、随机存取存储器 RAM)、输入输出接口(I/O 接口)、定时器 / 计数器等多种功能集成在一个芯片上的微型计算机系统。它就像是一个小型的电子大脑,能够接收外部信号,进行处理,并根据预设的程序输出相应的控制信号。 核心部件 CPU :作为 MCU 的核心,负责执行指令和处理数据。不同的 MCU 采用不同架构的 CPU,常见的有 ARM 架构、8051 架构等。这些架构在性能、功耗和成本等方面各有特点,以满足不同应用场景的需求。例如,ARM 架构凭借其高性能和低功耗的优势,在移动设备和物联网领域广泛应用;而 8051 架构则以其简单易懂、开发成本低的特点,在一些基础的电子项目中备受青睐。 存储器 :分为程序存储器和数据存储器。程序存储器用于存储 MCU 运行的程序代码,常见的是闪存(Flash),它具有非易失性,即使断电也能保存程序。数据存储器则用于存储程序运行过程中产生的临时数据,如变量、堆栈等,一般采用随机存取存储器(RAM)。 I/O 接口 :是 MCU 与外部设备进行通信的桥梁。通过 I/O 接口,MCU 可以连接各种传感器(如温度传感器、光照传感器)获取外部信息,也可以控制各种执行器(如电机、继电器)实现对外部设备的操作。I/O 接口通常分为通用 I/O 口(GPIO)和专用 I/O 口,GPIO 可以根据需要灵活配置为输入或输出模式,而专用 I/O 口则用于特定的功能,如串口通信(UART)、SPI 通信、I2C 通信等。 定时器 / 计数器 :用于产生精确的时间间隔或对外部事件进行计数。在许多应用中,如定时控制、PWM(脉冲宽度调制)信号生成等,都离不开定时器 / 计数器的支持。 工作原理 MCU 的工作过程可以简单理解为不断地从程序存储器中读取指令,然后在 CPU 中执行这些指令。指令的执行可能涉及到数据的读取、运算和存储,以及对 I/O 接口的操作。在这个过程中,时钟信号起着关键的作用,它为 MCU 的各个部件提供了统一的时间基准,确保它们能够协调工作。 MCU 编程手段:赋予 MCU 智慧的魔法 了解了 MCU 的基础,接下来让我们看看如何通过编程赋予它 “智慧”,使其按照我们的意愿工作。 编程语言 C 语言 :C 语言是 MCU 编程中最常用的语言之一。它具有简洁高效、可移植性强等优点,能够直接对硬件进行操作,非常适合 MCU 开发。通过 C 语言,我们可以使用各种数据类型和控制结构来编写程序逻辑,利用函数来封装功能模块,提高代码的可读性和可维护性。例如,以下是一段简单的 C 语言代码,用于初始化一个 GPIO 口为输出模式,并输出高电平: 收起 c # include // 包含 8051 单片机的头文件sbit LED = P1^0;// 定义 P1.0 口为 LED 控制引脚voidmain(){ LED =1;// 输出高电平,点亮 LEDwhile(1);// 无限循环,保持程序运行} 汇编语言 :汇编语言是一种面向机器的低级编程语言,它直接对应着 MCU 的指令集。虽然汇编语言编写的程序执行效率高,但代码编写和调试相对复杂,对开发者的硬件知识要求较高。在一些对性能要求极高或需要直接控制硬件底层的场合,汇编语言仍然发挥着重要作用。例如,以下是一段简单的 8051 汇编语言代码,用于将累加器 A 的值加 1: 收起 asm ORG 0000H START: MOV A, #00H ; 将累加器 A 初始化为 0 ADD A, #01H ; 将 A 的值加 1 SJMP $ ; 无限循环 END 开发工具 集成开发环境(IDE) :为了方便 MCU 编程,通常会使用集成开发环境。不同的 MCU 厂商会提供相应的 IDE,如 Keil 是一款广泛用于 8051 单片机和 ARM 单片机开发的 IDE,它集成了编辑器、编译器、调试器等多种功能,能够帮助开发者快速编写、编译和调试程序。 编程器 :编程器用于将编写好的程序代码烧录到 MCU 的程序存储器中。一些 MCU 可以通过在线编程(ISP,In-System Programming)或在应用编程(IAP,In-Application Programming)的方式,直接通过串口或其他通信接口将程序下载到芯片中,无需额外的编程器;而对于一些早期的 MCU 或特定型号的芯片,可能需要使用专门的编程器进行烧录。 编程流程 需求分析 :在开始编程之前,首先要明确 MCU 的应用需求,确定需要实现的功能和性能指标。 硬件设计 :根据需求设计硬件电路,包括 MCU 的选型、外围电路的连接等。硬件设计的合理性直接影响到程序的编写和运行效果。 程序设计 :根据硬件设计和需求分析,选择合适的编程语言和开发工具,进行程序的编写和调试。在编写过程中,要注意代码的规范性和可读性,合理划分功能模块,提高代码的可维护性。 测试与优化 :将编写好的程序烧录到 MCU 中进行实际测试,检查是否满足设计要求。如果发现问题,需要对程序进行调试和优化,直到达到预期的效果。 MCU 作为现代电子系统的核心部件,其基础和编程手段是电子工程师必备的知识。通过深入了解 MCU 的基础结构和工作原理,掌握常用的编程手段,我们能够充分发挥 MCU 的潜力,开发出各种功能强大的电子应用系统。希望本文能够帮助你开启 MCU 开发的大门,在电子世界中创造出更多精彩的作品!
  • 2024-12-26 09:20
    175 次阅读|
    0 个评论
    本文介绍瑞芯微开发板/主板Android系统APK签名文件使用方法, 触觉智能EVB3588开发板 演示,搭载了瑞芯微RK3588芯片,各类接口一应俱全,帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。 系统签名文件 生成APK系统签名文件,具体可参考此文章方法RK3588主板/开发板Android12系统APK签名文件生成方法,干货满满 使用方法 第一步,修改APK工程文件 app/src/build.gradle,并添加以下内容: android { namespace 'com.example.rk3562_android13' compileSdk 33 defaultConfig { applicationId "com.example.rk3562_android13" minSdk 33 targetSdk 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + signingConfigs { + release { + storeFile file("../signature/rk3588.jks") + storePassword '123456' + keyAlias 'rk3588' + keyPassword '123456' + } + + debug { + storeFile file("../signature/rk3588.jks") + storePassword '123456' + keyAlias 'rk3588' + keyPassword '123456' + } + } } 代码释义 storeFile file:工程签名文件放置目录; storePassword/keyPassword:签名文件密码; keyAlias:签名文件别名; 第二步,修改APK工程文件 app/src/main/res/AndroidManifest.xml,并添加以下内容:
  • 2024-12-26 09:19
    137 次阅读|
    0 个评论
    本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。 触觉智能EVB3588开发板 演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。 工具准备 下载Keytool-ImportKeyPair工具 在源码:build/target/product/security/系统初始签名文件目录中,将以下三个文件拷贝出来: platform.pem; platform.pk8; platform.x509.pem; 环境搭建 将第一节获取到的工具文件拷贝到虚拟机,并解压出来,如图所示: 安装keytool工具,命令如下所示: # apt - get update # apt-get install openjdk-11-jdk 给予keytool-importkeypair可执行权限,命令如下所示: # chmod +x keytool-importkeypair 系统签名文件生成 执行以下命令生成jks系统签名文件:: # ./keytool-importkeypair -k xxx.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem - alias xxx 备注: # xxx.jks : 签名文件 # 123456 : 签名文件密码 # platform.pk8、platform.x509.pem : 系统初始签名文件 # xxx : 签名文件别名 命令执行效果: root @luffy :/share/system_signature # ./keytool-importkeypair -k rk3588.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias rk3588 Importing "rk3588" with SHA1 Fingerprint = 41 : 79 : 1 C: 9 B: 8 F: AF : 15 :E1 :AC :D5 :AA :F5 : 92 : 10 :FD : 42 : 46 : 7 D: 82 : 77 正在将密钥库 /tmp/keytool-importkeypair.nEFF/p12 导入到 rk3588.jks... 已成功导入别名 rk3588 的条目。 已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消 文件生成成功后,如图所示:
相关资源