logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

rt-thread学习之路第四十三章--网络组件之lwip IP协议

首部检验和的计算方法。也许是因为协议发展过程中有所改变,也许是有些书籍中出现了谬误,也许是这些不同的描述本质上是一样的(这设计到比较深奥的数学知识,已经超出了我的能力范畴),因此吧检验的介绍放到源码分析的部分来讲解,结合代码中的实际操作,确保给小伙伴们呈现除一个正确的计算方法。该函数首先对 IP 数据报的合法性进行检查,包括 IP 版本、检验和、长度等信息的检查,然后判断 IP 数据报是否确实是却

文章图片
#网络#学习#tcp/ip +1
rt-thread学习之路第五十六章--软件包之网络工具集 (NetUtils)

RT-Thread NetUtils 作为网络工具合集,既有用于测试调试的 Ping 命令, 同步时间的 NTP 工具, 性能和带宽测试的 Iperf 、 NetIO,还有在嵌入式系统中广泛使用的轻量级文件传输工具 TFTP,方便地通过网络完成两个设备间的文件互传。另外, RT-Thread 还针对开发中的实际问题,提供了一些高级的辅助工具,如可以远程登录到 RT-Thread Finsh/MSH

文章图片
#嵌入式#c语言#物联网 +1
rt-thread学习之路第一百章——MQTT实现

MQTT 协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在 1999 年发布。注:* 如用 QEMU 模拟器平台需要连接外网,如出现连接失败的

文章图片
#学习#网络
rt-thread学习之路第八章——中断管理

在中断处理过程中,在系统响应中断前,软件代码(或处理器)需要把当前线程的上下文保存下来(通常保存在当前线程的线程栈中),再调用中断服务程序进行中断响应、处理。中断服务程序是一种需要特别注意的运行环境,它运行在非线程的执行环境下(一般为芯片的一种特殊运行模式(特权模式)),在这个运行环境中不能使用挂起当前线程的操作,因为当前线程并不存在,执行相关的操作会有类似打印提示信息,“Function [ab

文章图片
#学习#单片机#iot +1
rt-thread学习之路第十八章--设备驱动之CAN设备

也可以指定为硬件过滤表号的值,表示此次读取数据从哪一个硬件过滤表对应的消息链接读取数据,此时需要设置硬件过滤表的时候 hdr 有指定正确的过滤表号。CAN 设备在中断接收模式下,当 CAN 接收到一帧数据产生中断时,就会调用回调函数,并且会把此时缓冲区的数据大小放在 size 参数里,把 CAN 设备句柄放在 dev 参数里供调用者获取。此示例代码不局限于特定的 BSP,根据 BSP 注册的 CA

文章图片
#学习#iot#linux +3
rt-thread学习之路第一百零二章——连接中移OneNet云

组件包是 RT-Thread 系统针对 OneNET 平台连接的适配,通过这个组件包可以让设备在 RT-Thread 上使用 MQTT 协议连接 OneNet 平台,完成数据的接受和发送、以及设备的控制等功能,更多 OneNET 平台信息可查看。此设备的相关信息就都显示出来了,比如:设备 ID、鉴权信息、设备 APIkey,这些信息需要记下,在ENV配置时会用到。接入设备之后,可以看到设备管理的界

文章图片
#学习#嵌入式
rt-thread学习之路第八十七章——STM32上使用PWM

开发板,给出了 PWM 的具体应用示例代码,由于 RT-Thread 上层应用 API 的通用性,因此这些代码不局限于具体的硬件平台,用户可以轻松将它移植到其它平台上。如果使用的 BSP 在 menuconfig 中没有给出 PWM 通道的配置项,那么就需要自己添加 PWM 的驱动,下面就如何自己添加 PWM 驱动展开讲解。本文描述了如何在搭载了 RT-Thread 操作系统的平台上使用 PWM

文章图片
#学习#stm32#嵌入式 +2
rt-thread学习之路第八十二章——CmBacktrace应用

​CmBacktrace(Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。​

文章图片
#嵌入式
rt-thread学习之路第九章——内核移植

在动态创建线程和初始化线程的时候,会使用到内部的线程初始化函数_rt_thread_init(),_rt_thread_init() 函数会调用栈初始化函数 rt_hw_stack_init(),在栈初始化函数里会手动构造一个上下文内容,这个上下文内容将被作为每个线程第一次执行的初始值。libcpu 的移植需要完成的工作,就是确保 rt_tick_increase() 函数会在时钟节拍的中断里被周

文章图片
#学习#linux#物联网
rt-thread学习之路第五章——线程间同步

线程间同步在多线程实时系统中,一项工作的完成往往可以通过多个线程协调的方式共同来完成,那么多个线程之间如何 “默契” 协作才能使这项工作无差错执行?下面举个例子说明。例如一项工作中的两个线程:一个线程从传感器中接收数据并且将数据写到共享内存中,同时另一个线程周期性的从共享内存中读取数据并发送去显示,下图描述了两个线程间的数据传递:如果对共享内存的访问不是排他性的,那么各个线程间可能同时访问它,这将

文章图片
#学习#物联网#linux +1
    共 40 条
  • 1
  • 2
  • 3
  • 4
  • 请选择