首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • .NET 10 Native AOT 在 Linux 嵌入式设备上的实战

    本文分享我如何通过 .NET 10 Native AOT 和交叉编译技术,将一个原本动辄 100MB 的应用压缩到 16MB,并在资源极度受限的环境中实现流畅运行的实战经验。 1. 背景 在嵌入式领域,C/C++ 一直是绝对的主角。但随着 .NET 的演进,Native AOT让 C# 开发者也能在资源极度受限的 SoC 上大展身手。 使用官方的 .NET 10 SDK 镜像 可以获得一个纯净的编译沙盒。 在嵌入式 Web 后台场景中,我们通常不需要复杂的国际化 ICU 库,这一项就能省下约 25MB。 静态裁剪:Native AOT 默认开启 Trimmed。 .NET 10 Native AOT 已经完全具备了在国产工业芯片上取代传统嵌入式开发语言的实力。它让我们可以用高效的 C# 语法,写出 C++ 级别的性能。

    7910编辑于 2026-04-14
  • 来自专栏我命由我不由天

    嵌入式设备网络设置

    嵌入式设备的网络设置主要是靠一些命令进行处理的: #MAC地址设置 ifconfig eth0 down ifconfig eth0 hw ether $MACADDR ifconfig eth0 up

    99310发布于 2019-08-02
  • 来自专栏电子电路开发学习

    嵌入式设备如何显示IP属地?

    IP属地来了,不让物联网设备“裸泳”,给你的设备加个自动获取IP属地的功能吧! 对于嵌入式物联网设备,除了一些特殊场合,比如环境监测、路径规划、定位追踪等,需要通过GPS模块获取精确的地理位置,对于一些天气预报、疫情数据相关的设备来说,地理位置要求没那么精确,只需要基本的时区、国家 常用的IP定位接口有两种: 一种是不需要知道当前设备的IP地址,直接访问接口,接口会返回设备的IP地址。 proxy": "1", "att": "中国,北京", "operators": "联通" } } 先用网络调试助手测试一下: API接口没问题,下一步使用嵌入式设备来完成自动获取 的过程: 3.JSON数据解析 嵌入式设备可以使用的JSON解析库,常用的JSON解析库有cJSON和Jansson等。

    1.6K20编辑于 2022-05-19
  • 来自专栏AIoT技术交流、分享

    嵌入式设备异常掉电怎么办?

    工业现场嵌入式设备常因电网波动、操作失误或设备切换等原因发生非计划断电,这对系统可靠性带来很多风险。 通常会导致以下几种危害: 1. 文件系统损坏 未经特殊设计的嵌入式文件系统在写入过程中若遭遇掉电,可能导致关键元数据(如分区表、块位图等)半更新状态,从而引发文件系统崩溃或无法挂载。 通过上述硬件冗余设计与软件架构优化相结合的方法,嵌入式产品能够在工业现场的异常掉电和频繁上下电环境中保持高可用性与数据完整性,为生产安全和经济效益提供坚实保障。

    61110编辑于 2025-04-30
  • 来自专栏Vehicle攻城狮

    ROS与嵌入式设备的通讯:串口

    ROS与嵌入式系统实现串口通讯的方式有很几种,如已开发好的Roserial,Roserial已支持Arduino、STM32等开源或低成本硬件的通讯。 Rosserial的作用是让嵌入式系统作为一个ros节点实现与其他节点的直接交互,在架构上更符合ros,但由于需要移植ros的一些库,嵌入式开发人员可能需要在原先熟悉的开发方式下去熟悉另外一套语法,其次譬如 : 这种方式虽然不太符合ros架构,但更灵活,因为你依然可采用熟悉的方式进行嵌入式系统的开发,同时也不影响ROS与硬件的交互,当然这种方式需要提前约定好通讯协议规则。 配置完成后即可编译,下面就是见证奇迹的时刻,首先你需要在嵌入式设备写个Demo程序,例如我写了个通过串口持续输出“Hello ROS Edit by Lijing”的例程,此时我需要将刚编译好的Ros节点运行起来 同理通过该节点你可以发送特定的信息经过串口送给嵌入式设备,从而实现最终的控制。

    2.2K20编辑于 2022-04-19
  • 来自专栏嵌入式音视频

    day10嵌入式(2022.1.16)

    union{ float score; char subject[10]; }value; // 分数/所教科目(共用体) }; void show_info(struct usr_info

    38330编辑于 2022-12-02
  • 来自专栏ATYUN订阅号

    【科技】嵌入式深度学习:从云端到设备

    苹果的人脸识别标志着嵌入式人工智能第二阶段的开始,在这一阶段,更多的智能发生在独立于云的设备上。但它们并不是唯一的选择。 “健谈”的智能助手已经成为消费设备的标配,比如手机和智能手表。 苹果的新生物认证系统,使用由传感器数组和一个AI加速的iPhone SoC芯片组成的面部识别系统,标志着第二阶段的嵌入式人工智能会发生在更多的智能设备和独立的云端上。 ? 苹果公司的研究人员在一篇有关“人脸检测的深度神经网络”的论文中指出,去年iOS 10首次开始使用深度学习技术,在iOS 10中,它必须解决甚至是高端手机在深度学习算法方面的局限。 开发框架还具有可以在可用时自动使用设备硬件加速器的接口。 微软还在开发可以安装在移动设备和物联网设备上的嵌入式机器学习软件。 该研究目前专注于针对特定场景的利基应用(niche application)上,比如嵌入式医疗设备或智能工业传感器。 另一家公司,Reality AI提供了为嵌入式传感器和设备设计的机器学习软件库。

    2K50发布于 2018-03-05
  • 来自专栏深度学习|机器学习|歌声合成|语音合成

    arm设备上的嵌入式开发编译环境搭建

    文章目录 下载marvell 编译 命令 示例cmake项目 arm设备上运行编译结果 下载marvell marvell是交叉编译工具 解压到容器,cpoy到容器.我采用的容器是libtorch的容器 the project name project (hello_cmake) # Add an executable add_executable(hello_cmake main.cpp) arm设备上运行编译结果

    60540编辑于 2022-08-07
  • 来自专栏林德熙的博客

    win10 uwp 判断设备类型

    ipBytes = myIPAddress.GetAddressBytes(); // 10.0.0.0/24 if (ipBytes[0] == 10 = myIPAddress.GetAddressBytes(); // 10.0.0.0/24 if (ipBytes[0] == 10

    85120发布于 2019-03-13
  • 来自专栏Rice嵌入式

    嵌入式设备端的网络报文在wireshark显示》-- 应用

    摘要 前面一篇文章把整个SP2WS工具的原理描述了,这一篇来描述这个操作怎么玩。 应用说明 这个工具提供了两条命令,可以同时对wifi模块和主控进行监控 对于wifi模块端命令: 参数-com[port_num]:wifi模块端对应的调试串口 参数-wifi_slave:wifi模块端对应的管道名字 SP2WS.py com[port_num] wifi_slave 例如: SP2WS.py com1 wifi_slave 对于主控端命令: 参数-com[port_num]:主端对应的调试串口 参数-

    43210编辑于 2022-05-10
  • 来自专栏程序员叨叨叨

    10】Hexo博客的跨设备同步

    设备同步 同步思路与Github推拉源码思路相同,使用git指令,保持本地的博客文件与Github上的博客文件相同即可,其步骤如下: 使用hexo搭建部署Github博客 // 在本地博客根目录下安装 checkout -b 分支名 // 添加所有本地文件到git git add . // git提交 git commit -m "" // 文件推送到hexo分支 git push origin hexo 其他设备上 clone下Github上新建的分支的文件到本地 在另一台设备上使用git指令下载Github新建分支上的文件: // 克隆文件到本地 git clone -b 分支名 https://github.com pull origin 分支名 --allow-unrelated-histories // 比较解决前后版本冲突后,push源文件到Github的分支 git push origin 分支名 至此多设备同步到此为止 问题解决 由于公司里的电脑是win 10所以在部署博客的过程中会遇到一些问题,整理如下: Deployer not found: git 在终端执行命令: npm install hexo-deployer-git

    91020发布于 2018-08-28
  • 来自专栏林德熙的博客

    win10 uwp 判断设备类型

    本文提供一个方法,可以判断当前的设备是PC还是手机,UWP 判断当前的 PC 是否平板模式,判断是否苏非的设备 如果需要判断 当前的设置是平板或者pc,判断当前是否是手机,那么可以使用下面的代码 using

    50920编辑于 2022-08-04
  • 来自专栏林德熙的博客

    win10 uwp 判断设备类型

    本文提供一个方法,可以判断当前的设备是PC还是手机,UWP 判断当前的 PC 是否平板模式,判断是否苏非的设备 如果需要判断 当前的设置是平板或者pc,判断当前是否是手机,那么可以使用下面的代码 using

    93210发布于 2018-09-18
  • 来自专栏混说Linux

    嵌入式Linux驱动开发——字符设备驱动框架入门

    1 提到了关于Linux的设备驱动,那么在Linux中I/O设备可以分为两类:块设备和字符设备。 相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。 块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。 两种设备本身并没用严格的区分,主要是字符设备和块设备驱动程序提供的访问接口(file I/O API)是不一样的。本文主要就数据接口、访问接口和设备注册方法对两种设备进行比较。 第二个问题,解决起来也不是很困难,在Linux中提供了一种机制是udev,可以用于自动的创建设备,在嵌入式Linux的文件系统,比如busybox,也有一套简化版的机制,是mdev,在配置文件系统的时候会进行相应的配置 同时我们如果查看一下 /dev/ 目录中,我们发现在该目录下,创建了一个主设备号为252的设备文件。那么如果用测试程序来操作,就只需要操作该设备文件就能够操作对应的硬件设备了。

    4.2K20编辑于 2022-11-18
  • 来自专栏集智书童

    属于嵌入式和移动设备的轻量级 YOLO 模型 !

    这一演变某种程度上忽视了嵌入式和面向移动设备的AI目标检测应用。 在本文中,作者重点关注基于FLOP的高效目标检测计算的神经网络架构设计选择,并提出几项优化措施来提高基于YOLO模型的效率。 另一方面,优化执行速度的YOLO型模型遵循计算资源的演变,放弃了嵌入式设备。幸运的是,基于YOLO的新型架构实现了高效计算,专注于MAC和FLOP。 这些架构在边缘AI和工业应用中展示了它们的有用性,提升了嵌入式设备并使模型能直接响应。 实际上,对“YOLO”模型有着强烈的兴趣,这些模型在工业和非计算研究领域中同样受欢迎。 作者的评估重点关注MSCOCO [37]验证mAP和FLOP比例,强调对于嵌入式设备而言最低计算的重要性。 可扩展性: LeYOLO为工业、边缘和嵌入式设备提供了使用轻量级YOLO模型与最先进的扩展效率的新机会。

    1.5K10编辑于 2024-07-08
  • 嵌入式 ARM Linux 系统构成(4):设备驱动程序

    嵌入式 ARM Linux 系统的宏伟蓝图中,设备驱动程序宛如连接硬件与软件的桥梁,起着不可或缺的关键作用。 资源管理:合理管理硬件设备所占用的系统资源,如内存、中断、I/O 端口等。在多任务并发执行的嵌入式系统中,避免资源冲突至关重要。 驱动框架选择 驱动类型 适用场景 核心结构体 字符设备 GPIO/ADC等简单设备 file_operations 平台设备 片上系统外设 platform_driver 设备树匹配 现代嵌入式设备 of_device_id Compilation):智能编译优化 十、总结 嵌入式ARM Linux设备驱动开发需要兼顾硬件特性与软件架构设计。 介绍如何在构建系统过程中,将设备驱动加入根文件系统,配置驱动相关选项,管理驱动依赖等,帮助开发者利用工具高效构建包含设备驱动的嵌入式 Linux 系统。

    32710编辑于 2026-01-21
  • 来自专栏韦东山嵌入式

    嵌入式Linux获取设备信息、查询方式、休眠-唤醒方式

    7.3.3 获取设备信息 通过 ioctl 获取设备信息,ioctl 的参数如下: int ioctl(int fd, unsigned long request, ...); 有些驱动程序对 request 比如要读取输入设备的 evbit 时,ioctl 的 request 要写为“EVIOCGBIT(0, size)”,size 的大小可以由你决定:你想读多少字节就设置为多少。

    2.9K20编辑于 2022-05-05
  • 来自专栏C++

    Windows核心编程:第10章 同步设备IO与异步设备IO

    Github https://github.com/gongluck/Windows-Core-Program.git //第10章 同步设备IO与异步设备IO.cpp: 定义应用程序的入口点。 // #include "stdafx.h" #include "第10章 同步设备IO与异步设备IO.h" //可提醒IO回调 VOID WINAPI funComplete( _In_ 章 同步设备IO与异步设备IO.cpp"), GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, nullptr, OPEN_EXISTING, 0, nullptr 章 同步设备IO与异步设备IO.cpp"), (DWORD*)&li.HighPart);//物理大小 //文件指针 li.QuadPart = 0; bres = SetFilePointerEx 章 同步设备IO与异步设备IO.cpp"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_FLAG_OVERLAPPED

    1K10发布于 2019-02-22
  • 来自专栏TopSemic嵌入式

    嵌入式Linux系列第10篇:使用CAN

    CAN总线由于其高可靠性,被广泛的应用在汽车电子及工业领域。生活中常见的一个使用CAN的地方是汽车OBD接口,它一般位于汽车方向盘的左下角,是一个16针的插座,其中里面就有一个CAN接口,可以用来查看汽车的刹车、转向、故障信息等。单片机或处理器上如果有CAN控制器,外围再搭配一个CAN收发器,就可以进行通信了。本篇对Linux下CAN使用做个简单总结,希望对大家有所帮助。

    2.1K30发布于 2021-05-31
  • 来自专栏混说Linux

    一种简易的嵌入式设备系统日志记录方法

    1 在嵌入式设备应用场景中,系统日志时常可以监控设备软件的运行状态,及时记录问题点以及关键信息,方便开发人员后期定位以及解决问题。 系统日志 本文将讲述一种简易的系统日志记录方法,用于保存设备的系统日志,视具体嵌入式设备情况而定,可存储在MCU内部Flash、外部Flash、EEPROM等,本文采用外部Flash作为示例展开介绍。 FLASH内存划分 FLASH内存需要看具体设备进行合理划分,目录区、参数区与日志区实现环形存储,延长擦写寿命。 system_log_param_addr = start_addr + len; /* 首地址存储,擦除整个系统日志参数存储区,如果划分的内存较大,可能出现第一次擦写等待时间较长, 但实际应用嵌入式设备应该不会占用太多的内存存储系统日志 , num + TIME_PREFIX_SIZE); } exit_end: xSemaphoreGive(sem); return ret; } 结语 本文提供的一种简易嵌入式设备系统日志记录方法

    1.7K30编辑于 2022-11-18
领券