0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Rootkit是什么

工程师 来源:未知 作者:姚远香 2018-11-07 16:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。

在悬念迭起的中外谍战片里,对战双方中的一派势力通常会派遣特工人员潜伏到对手阵营中。这名卧底人员良好的伪装使得对手对此长时间毫无察觉;为了能够长期潜伏他不贸然采取高风险行为以免过早暴露自己;他赢得敌人的信任并因此身居要职,这使得他能够源源不断地获取重要情报并利用其独特渠道传送回去。

从某种意义上说这位不速之客就是Rootkit——持久并毫无察觉地驻留在目标计算机中,对系统进行操纵、并通过隐秘渠道收集数据的程序。Rootkit的三要素就是:隐藏、操纵、收集数据。

“Rootkit”中root术语来自于unix领域。由于unix主机系统管理员账号为root账号,该账号拥有最小的安全限制,完全控制主机并拥有了管理员权限被称为“root”了这台电脑。然而能够“root”一台主机并不意味着能持续地控制它,因为管理员完全可能发现了主机遭受入侵并采取清理措施。因此Rootkit的初始含义就在于“能维持root权限的一套工具”。

简单地说,Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。Rootkit通过加载特殊的驱动,修改系统内核,进而达到隐藏信息的目的。

rootkit并不一定是用作获得系统root访问权限的工具。实际上,rootkit是攻击者用来隐藏自己的踪迹和保留root访问权限的工具。通常,攻击者通过远程攻击获得root访问权限,或者首先密码猜测或者密码强制破译的方式获得系统的访问权限。进入系统后,如果他还没有获得root权限,再通过某些安全漏洞获得系统的root权限。接着,攻击者会在侵入的主机中安装rootkit,然后他将经常通过rootkit的后门检查系统是否有其他的用户登录,如果只有自己,攻击者就开始着手清理日志中的有关信息。通过rootkit的嗅探器获得其它系统的用户和密码之后,攻击者就会利用这些信息侵入其它的系统。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • rootkit
    +关注

    关注

    0

    文章

    8

    浏览量

    2949
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    A-47 双麦阵列语音处理模块:高性能回音消除与降噪核心方案

    A-47双麦阵列语音处理模块,以专业 DSP 芯片 + 深度优化算法为基础,实现90dB 回音消除 + 45dB 降噪的顶级声学性能,同时兼顾低功耗、宽温域、抗干扰、易集成四大工程需求。11 种标准化硬件方案、近中远三档程序、模拟数字双接口,让它既能满足消费电子的轻薄便携需求,也能支撑工业安防的高可靠要求。
    的头像 发表于 05-03 00:00 1130次阅读
    A-47 双麦阵列语音处理模块:高性能回音消除与降噪核心方案

    摩尔线程完成DeepSeek-V4全链路工程化适配:S5000基于MUSA+SGLang实现复杂MoE模型快速落地

    近日,摩尔线程依托旗舰级AI训推一体智算卡MTT S5000与自研MUSA软件栈,基于SGLang 开源推理框架,成功完成DeepSeek-V4的完整运行验证。该成果表明,面向新一代MoE大模型,摩尔线程已构建起从硬件架构核心计算引擎承接、热点算子支持,再到端到端部署验证的系统化适配链路,验证了国产GPU平台对前沿大模型“框架级兼容、开箱即落地”的承载实力及工程化落地能力。 随着大模型架构持续演进,DeepSeek-V4等先进模型对底层精度能力、算子覆盖、编译优化、
    发表于 05-02 09:01 606次阅读

    其利天下电动工具无刷驱动方案 BOM 成本高?教你一招直降 30%

    电动工具行业比拼成本,更比拼稳定量产能力。盲目缩减物料规格换低价,只会埋下批量售后隐患;选对高集成核心方案,才是长效降本最优解。 其利天下电动工具无刷驱动方案,以成熟KY32DS024为核心硬件底座,依托高集成架构简化全链路设计,实打实把综合BOM成本下降30%,同时守住动力、静音、防护、量产全维度标准,适配高低压全平台、全品类电动工具。想要控成本、保品质
    的头像 发表于 05-01 14:00 2654次阅读
    其利天下电动工具无刷驱动方案 BOM 成本高?教你一招直降 30%

    T型槽铸铁平台:从材质规格到使用维护,一篇读懂

    T型槽铸铁平台是一种表面带有T型槽的铸铁平板,主要用于固定工件,是机械制造、装配、调试和维修工作中不可或缺的基础工艺设备。下面从材质、结构、精度、规格及使用注意事项等几个方面为你详细介绍。主要特点与用途特点是工作面上加工有若干条T型槽,可以配合T型螺栓、压板等附件,方便地固定和调整各种工件或设备。因此,它特别适用于需要频繁装夹和调整的场景,例如钳工装配、设备调试、机械维修和焊接作业等。作为精和确的基准平面,它也用于检查零件的尺寸精度或形位偏差。规格与精度分级T型槽铸铁平台的规格、精度和材质都有明确的标准。执行标准:主要遵循国家标准 GB/T 22095-2008 或机械行业标准 JB/T 7974-1999。精度等级:按国家标准分为 0级、1级、2级、3级 四个等级。其中,0级和1级精度比较高,多用于精和密检测;2级和3级则常用于装配、划线或铆焊作业。常见规格:常规规格范围很广,从较小的200mm×200mm到大型的3000mm×8000mm都有。更大尺寸的平台可以采用多块拼接的方式实现。不同规格和精度等级的平台,其平面度公差有具体标准,例如一块2000mm×3000mm的2级平台,平面度公差为0.074mm(74μm)。材质与制造工艺平台通常选用高强度铸铁(如HT200-300)作为材质,以保证其硬度和耐磨性,工作面硬度通常要求达到HB 170-240。为确保尺寸稳定、不易变形,优质的制造工艺会包含两次人工时效处理(如退火和振动时效),以彻和底消除铸造和机加工产生的内应力。其工作面多采用刮削工艺,并用涂色法进行检验,以确保高精度的平面度和接触点均匀性。如何选择合适的T型槽平台?选型时,可以重和点考虑以下几点:用途决定精度:明确是用于精和密检测,还是一般的装配、焊接。检测务必选择0级或1级,而装配焊接选择2级或3级即可满足要求且成本更低。载荷决定材质与结构:根据比较大工件重量来选择。对于重载或使用频繁的场景,建议选择强度更高的HT250或HT300材质,并注意平台的筋板厚度和结构是否足够强壮。工件大小决定平台规格:平台工作面的尺寸应大于工件底座的尺寸,以便于安放和固定。T型槽参数需适配:根据你使用的T型螺栓规格,选择匹配的槽宽。T型槽的开口尺寸通常在12mm至60mm之间。使用与维护注意事项安装与调整平台需安装在稳固的基础上,用地锚器或调整垫铁调至水平,并使载荷均匀分布,防止因支撑不当导致变形。规范使用使用时,工件应平稳放置,严禁超载。避免在平台上进行敲击作业,以免损伤工作面。同时,要避免工件与平台面发生剧烈摩擦或磕碰。日常维护使用后应及时清理T型槽内的铁屑和杂物,并涂抹防锈油。长期不用时,应在工作面涂覆防锈油并用油纸覆盖,存放于干燥环境。
    发表于 05-01 13:32

    试验铁地板从入门到精通:材质、工艺、安装,一篇讲透

    试验铁地板是铸铁地板在测试和研发领域的专业叫法。和普通用于装配或焊接的铁地板相比,它的核心使命是:为高精度、高频率的试验设备提供一个绝和对稳定、可精和确重复的基准平台。 可以把它理解为一个融合了“高精度基准面”和“设备减震地基”双重功能的系统。它具备以下几个核心特征: 核心一:材质与结构——为吸收振动而生 试验平台比较大的敌和人就是“振动”,因为任何多余的晃动都会直接污染测试数据。 高性能材质:通常采用高强度铸铁 (如 HT200-300,高和端会用 QT600-3 球墨铸铁)。这类材料内部的石墨结构就像无数微小的减震器,天生具有高阻尼特性,能高和效吸收和耗散试验设备产生的振动能量。 双重热处理:所有高品质的试验铁地板在铸造后,都必和须经过两次人工时效处理(通常在600-700℃的高温炉中进行)。这个过程会彻和底消除铸件内部的应力,确保平台在长达数年的使用中不会发生丝毫变形,精度保持相当稳定。 核心二:精度标准——从“毫米”到“微米”的跃升 试验铁地板精度远高于普通工业地板,它的精度是保证试验数据可重复、可信赖的基础。 平面度:这是比较核心的指标。普通平台可能满足于1mm/m的误差,但试验铁地板通常要求达到 0级精度,即每平方米平面度误差不超过 0.05毫米(约一根头发丝的直径)。 刮研工艺:要达到如此高的平面度,必和须依靠传统的人工“刮研”手艺。工人们在平台表面反复涂抹色浆,用刮刀一剔除高点,比较终使表面布满均匀的接触斑点(每平米超过25个点)。 水平度:安装调试后,整个台面的水平度误差要求控制在 0.03mm/m 以内,确保设备运行不会产生倾斜偏差。 核心三:T型槽系统——灵活固定的关键 试验铁地板表面布满平行的 T型槽,这是它功能性的体现。 作用:你可以利用T型槽和配套的螺栓,快速、牢固地固定发动机、测功机、振动台等各种形状各异的试验设备,而无需在地面上打孔。 组成:一个完整的试验铁地板通常由平台本体、T型槽、盖板、地脚螺栓和专门的调平装置(如垫铁)组成。 试验铁地板的四种常见应用布局 热模拟实验室型: 主要应用场景:材料高温、高压试验。 特点说明:侧重耐热性和热稳定性,减少温度变化带来的变形。 单缸机实验台型: 主要应用场景:小型发动机或单体部件测试。 特点说明:平台尺寸相对较小,但精度要求高,便于快速拆装。 多缸机实验台型: 主要应用场景:大型多缸发动机、变速箱测试。 特点说明:平台面积大,承重能力相当强,通常设计有复杂的油路和排水系统。 汽车疲劳振动试验型: 主要应用场景:模拟车辆长期颠簸、振动环境。 特点说明:对抗振和抗共振要求相当高,常配备专业的螺旋钢和弹簧减震系统。
    发表于 05-01 13:20

    龙虾爆发那几天,79%的用户去了同一个地方

    欧美AI靠X破圈,中国AI靠什么?
    的头像 发表于 05-01 13:10 4710次阅读
    龙虾爆发那几天,79%的用户去了同一个地方

    黑马-Java+AI新版V16零基础就业班百度云网盘下载+Java+AI全栈开发工程师

    传统开发升级,Java+AI 融合开发精讲——构建下一代企业级智能应用的技术栈重塑 在人工智能加速渗透至各行各业的当下,Java 开发者正面临一个关键转折点:要么被动旁观 AI 能力的边缘化集成,要么主动将 AI 能力深度融入 Java 技术体系,成为具备“传统架构 + 智能增强”双重竞争力的融合型工程师。Java+AI 融合开发并非简单的 SDK 调用,而是一套从架构模式、数据流设计到部署运维的系统性能力升级。本文从技术实战视角,拆解 Java 生态拥抱 AI 能力的核心路径与工程要点。(搜星 课it。top) 一、融合架构范式:从“调用式集成”到“嵌入式智能” 传统 Java 应用引入 AI 能力有两条典型路径。初级做法是独立部署 AI 模型服务(Python 推理端),Java 业务层通过 HTTP/RPC 调用获取结果。这种方式开发快、解耦好,但延迟与稳定性受网络调用影响。进阶做法是嵌入式智能——将轻量化模型直接运行于 Java 进程内。这一方向的技术基础包括:ONNX Runtime 对跨格式模型的高性能推理、Deep Java Library 提供的 Java 原生模型加载与训练扩展、以及最新版本的 Spring AI 框架对多种模型接入的抽象封装。实战中,需要根据响应时延要求(嵌入适合毫秒级,远程接受百毫秒级)、模型大小(百 MB 内可考虑嵌入)和更新频率(高频更新适合远程服务)做出架构决策。真正具备竞争力的融合架构,往往采用混合模式——对推理延迟极度敏感且模型轻量的场景嵌入运行,对模型需频繁迭代或计算密集的场景走独立服务通道,两者通过统一抽象接口向业务层屏蔽差异。 二、Java 推理引擎选型与性能优化 将 AI 模型跑在 JVM 内,最大的技术挑战是性能。传统 Python 生态依靠原生 C++ 后端与高效内存管理获得推理速度,而 Java 需通过桥接技术逼近这一水平。目前生产级验证充分的三条技术线:一是 ONNX Runtime Java 绑定 ,支持加载主流框架导出的 ONNX 模型,利用内置的 CPU/GPU 执行提供跨平台高性能;二是 Deep Java Library (DJL) ,亚马逊开源的框架无关引擎,提供统一 API 管理 PyTorch、TensorFlow、MXNet 等后端,并内置了模型 Zoo 与内存复用策略;三是 Tribuo ,专注机器学习预测的解释与部署。优化层面需关注的要点包括:通过批量推理摊薄单次调用 JNI 开销、预分配张量缓冲区减少 GC 压力、针对 CPU 推理启用 OpenMP 线程绑定、针对 GPU 推理优化数据在主机与设备间的拷贝频次。经验数据表明,充分优化的 Java 推理与原生 Python 推理的性能差距可控制在 20% 以内,足以支撑绝大多数企业级场景。 三、数据流与特征管线:Java 生态的传统优势发挥 AI 应用的性能瓶颈往往不在模型推理,而在上游的数据准备与特征工程。这正是 Java 生态的传统强项。借助 Kafka、RabbitMQ 构建实时特征管道,利用 Spark、Flink 做大规模特征变换,依赖 Spring Cloud Data Flow 编排特征流水线——这些组件天然与 Java 服务共享运行时与开发体感。设计要点在于将特征计算与模型推理解耦:离线批次特征可由定时任务写入特征存储(如 Redis、Alluxio),实时在线特征则通过轻量级计算从原始请求中提取并缓存复用。此外,善用 Java 强大的对象池技术与堆外内存管理,可显著降低特征转化过程中的内存抖动。这一层设计妥善时,Java+AI 系统的数据吞吐能力与扩展性可超越许多纯 Python 方案,成为架构上的差异化优势。 四、模型版本管理与热加载:解决更新停机之痛 企业级应用中,模型需要随数据分布变化而频繁更新。若每次更新都需要重启 Java 服务,将导致停机窗口与运维复杂度飙升。成熟的融合方案需支持模型热加载能力:通过监听配置中心或对象存储的版本变更事件,运行时动态替换内存中的模型实例。技术实现上,通常使用持有当前模型引用的原子引用包装类,新模型加载验证通过后以原子操作替换引用;同时保留前版本作为回退候选,并设计优雅的流量切换(如按百分比灰度路由至新模型)。更进一步,可以构建模型版本与特征管线版本的关联矩阵,确保新旧模型与特征逻辑的兼容性。这套能力的实现,让 Java 应用具备了 ML Ops 生产级的模型迭代能力,是架构设计成熟度的重要标志。 五、提示工程与结构化输出:Java 代码的确定性优势 大语言模型集成是 Java+AI 的重要子领域。与传统机器学习输出数值或类别不同,大语言模型的自由文本输出给 Java 程序带来了解析问题。核心对策是利用模型的结构化输出能力(JSON Mode、Function Calling/Tool Use),并配合 Java 的类型系统进行强类型解析。例如,通过定义 Tool 的输入参数 Schema,要求模型以指定 JSON 格式返回,再使用 Jackson、Gson 反序列化为 POJO,借助编译期类型校验规避运行时解析异常。对于复杂业务逻辑,可以设计两阶段调用:第一阶段让模型对用户意图分类,第二阶段根据分类结果路由到专门的提示模板与输出约束。这种确定性优先的设计思路,将大模型的非确定性压缩在被限定的范围内,其余交由 Java 的类型安全体系保障,是实现稳健融合的关键理念。 六、工程化落地考量:链路追踪、可观测性与失败策略 AI 能力引入增加了系统的复杂性与不确定性。生产环境必须建立专用的可观测性体系:每个推理请求应携带唯一追踪 ID,贯穿业务层调用、特征提取、模型推理、后处理全链路;记录模型输入特征摘要、推理耗时、输出置信度与原始预测值;对于大语言模型,还应记录 Token 消耗与 Prompt 指纹。对于推理失败(模型服务超时、结果异常、校验不通过),必须设计降级与重试策略,且策略需与业务场景匹配——推荐场景可返回默认结果,金融风控场景则更需要显式拒绝。此外,建立模型输出的运行时校验层,检测业务规则违例、特征合理性越界等情况,并可通过飞轮机制将异常样本记录用于模型迭代。这些工程细节常被忽视,却直接决定了系统从“能用”到“稳定可用”的关键跨越。 总结:Java 依然是最好的 AI 应用载体之一 AI 不等于 Python,Java 在企业级规模、并发模型、类型安全、生态完备性上的优势,与 AI 能力融合后将释放巨大潜力。传统 Java 开发者大可不必恐慌转型,而是应主动将 AI 作为能力增强点,扩展自身技术半径。掌握上述六大实战维度:架构范式选择、推理引擎优化、特征管线构建、模型热加载、大模型整合、工程可观测性,便是完成了从“传统 CRUD 开发者”到“智能应用架构师”的升级。这一转变,不仅是技术栈的丰富,更是问题解决能力维度的升维。在 AI 重构软件开发的浪潮中,Java + AI 的融合深度,将成为区分核心工程师与普通开发者的分水岭。
    发表于 05-01 11:29

    【瑞萨RA2L1入门学习】+ LCD1602液晶屏显示驱动

    LCD1602液晶屏是一款较为传统的显示屏,由于采用并行方式传送数据十分占用引脚资源,为此可通过转接板将其改造为IIC接口的使用方式,其外观及电路见图1和图2所示。 图1 器件外观 图2 器件外观 为驱动该显示屏,它与开发板的连接关系为: LCD1602_SCL-----P407 LCD1602_SDA----P408 实现该液晶屏显示驱动的程序为: void IIC_Write_Byte(uint8_t date) { uint8_t i,temp; temp=date; IIC_OUTPUT_MODE_SET(); for(i=0;i<8;i++) { SCL_Clr(); if(temp & 0x80) { SDA_Set(); } else { SDA_Clr(); } temp=temp<<1; delay_us(); delay_us(); SCL_Set(); delay_us(); } SCL_Clr(); delay_us(); SDA_Set(); delay_us(); } void IIC_Write_Comm_LCD(uint8_t comm) { uint8_t data_h = comm & 0xf0; uint8_t data_l = (comm & 0x0f) << 4; IIC_Write_Byte(0x00+data_h); IIC_Ack(); IIC_Write_Byte(0x04+data_h); IIC_Ack(); IIC_Write_Byte(0x00+data_h); IIC_Ack(); delay(5); IIC_Write_Byte(0x00+data_l); IIC_Ack(); IIC_Write_Byte(0x04+data_l); IIC_Ack(); IIC_Write_Byte(0x00+data_l); IIC_Ack(); delay(5); } void IIC_Write_Date_LCD(uint8_t date) { uint8_t data_h = date & 0xf0; uint8_t data_l = (date & 0x0f) << 4; IIC_Write_Byte(0x01+data_h); IIC_Ack(); IIC_Write_Byte(0x05+data_h); IIC_Ack(); IIC_Write_Byte(0x01+data_h); IIC_Ack(); delay(5); IIC_Write_Byte(0x01+data_l); IIC_Ack(); IIC_Write_Byte(0x05+data_l); IIC_Ack(); IIC_Write_Byte(0x01+data_l); IIC_Ack(); delay(5); } 液晶屏的初始化函数为: void LCD1602_Init() { uint8_t i = 0; R_BSP_SoftwareDelay(20, BSP_DELAY_UNITS_MICROSECONDS); IIC_Start(); IIC_Write_Byte(ADDR); IIC_Ack(); IIC_Write_Comm_LCD(0x02); //设置四线发送数据 IIC_Write_Comm_LCD(0x28); //设置显示模式 IIC_Write_Comm_LCD(0x08); //显示关闭 IIC_Write_Comm_LCD(0x0c); //设置光标开关 IIC_Write_Comm_LCD(0x06); //设置光标移动 IIC_Write_Comm_LCD(0x01); //清屏 for(i=0;i<String_len1;i++) { IIC_Write_Date_LCD(lcd_show1[i]); } IIC_Write_Comm_LCD(0xc0); for(i=0;i<String_len2;i++) { IIC_Write_Date_LCD(lcd_show2[i]); } } 实现显示测试的主程序为: void hal_entry(void) { IIC_OUTPUT_MODE_SET(); LCD1602_Init(); while(1); } 经程序的编译和下载,其测试效果见图4所示。 图3 器件连接 图4 显示效果
    发表于 05-01 10:17

    【瑞萨RA2L1入门学习】+ TFT屏显示驱动

    RA-Eco-RA2L1-V2.0开发板是一种近于最小系统的开发板,因此其外设资源十分有限。为了实现LCD屏的显示驱动,这里选取的是一款LCD屏,其显示分辨率为128*160像素点。 为此,需在RASC的Stack中加入SPI,见图1所示。 图1 添加SPI 随后,按图2所示进行参数配置。 图2 配置参数 此外,还需提供其它控制引脚的配置,见图3所示。 图3 辅助引脚配置 在完成引脚配置后,点击“Generate Project Content”,即可生成Keil工程。 LCD屏的引脚连接关系为: CS ----P407 REST----P408 DC---P409 BL ---VCC SDI ----P213 SCK ----P100 在生成Keil工程后,即可进行程序设计。 为便于高低电平的输出控制,所进行的语句定义有: #define CS_SetR_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_07,BSP_IO_LEVEL_HIGH) #define CS_ClrR_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_07,BSP_IO_LEVEL_LOW) #define RST_Set R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_08,BSP_IO_LEVEL_HIGH) #define RST_Clr R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_08,BSP_IO_LEVEL_LOW) #define DC_SetR_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_09,BSP_IO_LEVEL_HIGH) #define DC_ClrR_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_09,BSP_IO_LEVEL_LOW) SPI的初始化函数为: void SCI_SPI_Init(void) { fsp_err_t err = R_SCI_SPI_Open(&g_spi1_ctrl,&g_spi1_cfg); assert(err == FSP_SUCCESS); } SPI的中断回调函数为: void sci_spi_callback(spi_callback_args_t *arg) { if(arg->event == SPI_EVENT_TRANSFER_COMPLETE) { sci_spi_send_complete_flag = true; } } SPI写字节数据的函数为: void LCD_WriteData(uint8_t data) { CS_Clr; DC_Set; R_SCI_SPI_Write(&g_spi1_ctrl,(uint8_t*)&data,1,SPI_BIT_WIDTH_8_BITS); while(!sci_spi_send_complete_flag); sci_spi_send_complete_flag = false; CS_Set; } SPI写16位数据的函数为: void LCD_WriteData16(uint16_t data) { uint8_t buffer[2]; buffer[0] = (uint8_t)(data >> 8); buffer[1] = (uint8_t)data; CS_Clr; DC_Set; R_SCI_SPI_Write(&g_spi1_ctrl,(uint8_t*)&buffer[0],1,SPI_BIT_WIDTH_8_BITS); while(!sci_spi_send_complete_flag); sci_spi_send_complete_flag = false; R_SCI_SPI_Write(&g_spi1_ctrl,(uint8_t*)&buffer[1],1,SPI_BIT_WIDTH_8_BITS); while(!sci_spi_send_complete_flag); sci_spi_send_complete_flag = false; CS_Set; } SPI写字节指令的函数为: void LCD_WriteCommond(uint8_t cmd) { CS_Clr; DC_Clr; R_SCI_SPI_Write(&g_spi1_ctrl,(uint8_t*)&cmd,1,SPI_BIT_WIDTH_8_BITS); while(!sci_spi_send_complete_flag); sci_spi_send_complete_flag = false; CS_Set; } 显示屏的初始化函数为: void LCD_Init(void) { SCI_SPI_Init(); RST_Clr; R_BSP_SoftwareDelay(20, BSP_DELAY_UNITS_MILLISECONDS); RST_Set; R_BSP_SoftwareDelay(20, BSP_DELAY_UNITS_MILLISECONDS); LCD_WriteCommond(0x11); R_BSP_SoftwareDelay(120, BSP_DELAY_UNITS_MILLISECONDS); LCD_WriteCommond(0xB1); LCD_WriteData(0x05); LCD_WriteData(0x3C); LCD_WriteData(0x3C); LCD_WriteCommond(0xB2); LCD_WriteData(0x05); LCD_WriteData(0x3C); LCD_WriteData(0x3C); LCD_WriteCommond(0xB3); LCD_WriteData(0x05); LCD_WriteData(0x3C); LCD_WriteData(0x3C); LCD_WriteData(0x05); LCD_WriteData(0x3C); LCD_WriteData(0x3C); LCD_WriteCommond(0xB4); LCD_WriteData(0x03); LCD_WriteCommond(0xC0); LCD_WriteData(0x28); LCD_WriteData(0x08); LCD_WriteData(0x04); LCD_WriteCommond(0xC1); LCD_WriteData(0XC0); LCD_WriteCommond(0xC2); LCD_WriteData(0x0D); LCD_WriteData(0x00); LCD_WriteCommond(0xC3); LCD_WriteData(0x8D); LCD_WriteData(0x2A); LCD_WriteCommond(0xC4); LCD_WriteData(0x8D); LCD_WriteData(0xEE); LCD_WriteCommond(0xC5); LCD_WriteData(0x1A); LCD_WriteCommond(0x36); LCD_WriteData(0x00); LCD_WriteCommond(0xE0); LCD_WriteData(0x04); LCD_WriteData(0x22); LCD_WriteData(0x07); LCD_WriteData(0x0A); LCD_WriteData(0x2E); LCD_WriteData(0x30); LCD_WriteData(0x25); LCD_WriteData(0x2A); LCD_WriteData(0x28); LCD_WriteData(0x26); LCD_WriteData(0x2E); LCD_WriteData(0x3A); LCD_WriteData(0x00); LCD_WriteData(0x01); LCD_WriteData(0x03); LCD_WriteData(0x13); LCD_WriteCommond(0xE1); LCD_WriteData(0x04); LCD_WriteData(0x16); LCD_WriteData(0x06); LCD_WriteData(0x0D); LCD_WriteData(0x2D); LCD_WriteData(0x26); LCD_WriteData(0x23); LCD_WriteData(0x27); LCD_WriteData(0x27); LCD_WriteData(0x25); LCD_WriteData(0x2D); LCD_WriteData(0x3B); LCD_WriteData(0x00); LCD_WriteData(0x01); LCD_WriteData(0x04); LCD_WriteData(0x13); LCD_WriteCommond(0x3A); LCD_WriteData(0x05); LCD_WriteCommond(0x29); } 以色彩填充显示屏的函数为: void LCD_Fill(uint16_t xsta,uint16_t ysta,uint16_t xend,uint16_t yend,uint16_t color) { uint16_t i,j; LCD_Address_Set(xsta,ysta,xend-1,yend-1); for(i=ysta;i<yend;i++) { for(j=xsta;j<xend;j++) { LCD_WriteData16(color); } } } 实现驱动测试的主程序为: void hal_entry(void) { LCD_Init(); LCD_Fill(0,0,128,160,0XF800); R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); LCD_Fill(0,0,128,160,GREEN); R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); LCD_Fill(0,0,128,160,CYAN); R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); LCD_Fill(0,0,128,160,YELLOW); R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS); while(1); } 经程序的编译和下载,其测试效果如图3至图6所示,说明驱动控制有效。 图3 填充红色 图4填充黄色 在添加字库和显示函数的情况下,其显示效果如图5所示。 图5显示字符串 演示视频:
    发表于 05-01 10:00

    【瑞萨RA2L1入门学习】+ 模拟信号采集与应用

    RA-Eco-RA2L1内置有12 位 ADC,并提供了多个检测通道。有了硬件的支持,要实现相应的功能,需由RASC进行配置,并生成KEIL工程代码,其步骤为: 添加ADC入栈,见图1所示。 图1 添加ADC 按图2来配置参数,按图3来选取采集通道。 图2 配置参数 图3 选取通道 然后点击“Generate Project Content”按钮,以生成项目工程。在生成项目框架后,以KEIL打开所生成的工程,并程序文件中添加相应的代码,完成后的内容为: volatile uint8_t ADC0_Busy; void adc0_callback(adc_callback_args_t * p_args) { FSP_PARAMETER_NOT_USED(p_args); ADC0_Busy = 0; } void ADC0_Init(void) { err = R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg); assert(FSP_SUCCESS == err); err = R_ADC_ScanCfg(&g_adc0_ctrl, &g_adc0_channel_cfg); assert(FSP_SUCCESS == err); ADC0_Busy = 0; } void ADC0_Convert(uint8_t channel) { FSP_PARAMETER_NOT_USED(channel);/* Enable scan triggering from ELC events. */ err = R_ADC_ScanStart(&g_adc0_ctrl); assert(FSP_SUCCESS == err); } uint16_t ADC0_GetValue(uint8_t channel) { uint16_t ret; err = R_ADC_Read(&g_adc0_ctrl, (adc_channel_t)channel, &ret); assert(FSP_SUCCESS == err); return ret; } 在添加串口通讯的情况下,实现双通道A/D数据采集的主程序为: void hal_entry(void) { uint16_t u; uint32_t v; err = R_SCI_UART_Open(&g_uart0_ctrl, &g_uart0_cfg); assert(FSP_SUCCESS == err); err = R_SCI_UART_Read(&g_uart0_ctrl, uart_rx_buffer, 3); assert(FSP_SUCCESS == err); printf(\"RA2L1 & ADC test:\\\\\\\\n\"); ADC0_Init(); while(1) { ADC0_Convert(ADC_CHANNEL_0); u=ADC0_GetValue(ADC_CHANNEL_0); v=u*3300/4095; printf(\"u1= %d\\\\\\\\n\",u); printf(\"v1= %d\\\\\\\\n\",v); ADC0_Convert(ADC_CHANNEL_1); u=ADC0_GetValue(ADC_CHANNEL_1); v=u*3300/4095; printf(\"u2= %d\\\\\\\\n\",u); printf(\"v2= %d\\\\\\\\n\",v); R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); } } 经程序的编译和下载,其测试效果如图4至图7所示,说明程序设计准确。 图4 采集GND信号 图5 信号波动现象 图6 采集3.3V信号 在进行双通道采集的情况下,其测试效果如图7所示。 图7 采集结果 在连接光照与温度检测电路的情况下,可进行相应的检测及波形绘制,见图10和图11所示。 图8 光照与温度检测电路 图9 实物连接 图10 平稳状态波形 图11 遮挡光线的波形变化
    发表于 05-01 09:47

    探索MAX1471:315MHz/434MHz低功耗ASK/FSK超外差接收器

    探索MAX1471:315MHz/434MHz低功耗ASK/FSK超外差接收器 在无线通信领域,低功耗、高性能的接收器一直是工程师们追求的目标。MAX1471作为一款315MHz/434MHz低功耗、3V/5V ASK/FSK超外差接收器,凭借其独特的性能和丰富的功能,在众多应用场景中展现出了强大的竞争力。本文将深入剖析MAX1471的特点、工作原理及应用,为电子工程师们提供全面的参考。 文件下载: MAX1471.pdf 一、产品概述 MAX1471是一款低功耗、CMOS超外差式RF双通道接收器,无需重新配置设备或引入与改
    的头像 发表于 05-01 09:05 3057次阅读

    其利天下电动工具无刷电机控制器:高低压平台全覆盖,适配全品类电动工具

    其利天下针对行业痛点,推出全平台适配型电动工具无刷电机控制器,以KY32DS024高性能32位MCU为核心控制芯片,采用高集成一体化架构,搭配45V、250V、600V多档栅极驱动电压,真正实现高低压平台全覆盖、全品类电动工具通用适配,同时可延伸应用于吸尘器、风扇灯等高速电机场景,为厂家提供一站式无刷驱动解决方案。
    的头像 发表于 05-01 09:00 2940次阅读
    其利天下电动工具无刷电机控制器:高低压平台全覆盖,适配全品类电动工具

    工业级 AI 神经网络语音处理模组 A-59 设计与应用研究

    A-59 工业级 AI 语音处理模组将神经网络降噪与自适应回声消除技术深度融合,在高音量、近间距、强噪声等极端声学条件下仍可保持清晰人声与流畅全双工体验,同时具备宽温、低功耗、小体积、多接口等工程化优势。该模组可显著提升语音识别率与通话质量,降低整机声学开发难度,缩短产品落地周期。
    的头像 发表于 05-01 00:00 3823次阅读
    工业级 AI 神经网络语音处理模组 A-59 设计与应用研究

    方正微电子在北京汽车展发布:车规主驱SiC MOSFET累计出货量超3000万颗暨G3平台新产品重磅发布

    中国.北京,2026年4月26日 – 在2026北京国际汽车展览会期间,深圳方正微电子有限公司联合中国汽车芯片产业创新战略联盟,隆重举办“方正微电子车规主驱SiC MOSFET出货量超3000万颗里程碑暨G3平台新产品发布会”。 方正微电子总裁吴伟涛正式宣布:公司车规级主驱SiC MOSFET芯片累计出货量突破3000万颗,在新能源汽车车规主驱SiC MOSFET市场占有率超过10%。这一数字不仅是企业发展的一个重要里程碑,更标志着中国SiC企业在新能源车SiC应用领域中,国产SIC主驱
    的头像 发表于 04-30 20:24 3327次阅读
    方正微电子在北京汽车展发布:车规主驱SiC MOSFET累计出货量超3000万颗暨G3平台新产品重磅发布

    富士通发布FY2025财报 调整后营业利润3,905亿日元,同比增长27.1%

    富士通于4月28日发布了FY2025财报。根据财报显示,调整后的FY2025合并营收为35,029亿日元,在业务结构持续调整的背景下保持总体稳定;调整后营业利润达到3,905亿日元,同比增长27.1%,实现连续第四年创历史新高,盈利能力与现金创造能力同步提升。 富士通主营业务中,服务解决方案(Service Solution)业务营收23,469亿日元,同比增长4.5%,调整后营业利润提升至3,614亿日元,利润率达到15.4%,继续成为增长引擎。 其中,Uvance业务增长显著,全年营收7,093亿日
    的头像 发表于 04-30 18:38 3975次阅读