- 博客(14)
- 收藏
- 关注
原创 【学习笔记】AutoSAR CAN协议栈框架
这一层包括了多个服务模块,如CAN Transport Protocol(CanTP)、PDU Router(PDUR)、Communication Manager(COM)等,它们负责数据的路由、传输和通信管理。:这一层包括了多个服务模块,如CAN Transport Protocol(CanTP)、PDU Router(PDUR)、Communication Manager(COM)等,它们负责数据的路由、传输和通信管理。:CanTP,负责大协议数据单元的拆包和组包,以及数据流控制和错误检测。
2024-05-29 13:35:08
800
原创 Real-Time Transfer (RTT) Viewer移植及使用说明
集成Segger RTT功能时,会用到Segger RTT库的API来实现数据的发送和接收。初始化与配置API:初始化RTT系统。一般在程序启动时调用一次。:配置一个上行(Target到Host)的RTT缓冲区(通道)。参数包括通道索引、缓冲区地址、大小、模式等。:配置一个下行(Host到Target)的RTT缓冲区,如果双向通信需要。数据发送API:格式化输出数据到RTT缓冲区,类似于C语言的printf,是最常用的输出函数。:直接写入原始数据到RTT缓冲区,适用于非字符串数据的传输。
2024-05-14 19:25:49
1320
原创 RT-Thread线程-管理线程
如果新的优先级高于当前运行线程的优先级,且系统允许抢占,那么在函数调用后可能会立即触发一次线程调度,使得被调整优先级的线程获得执行权。如果没有更优先的线程,或者所有同优先级的线程也都在等待状态,当前线程可能会继续执行(这取决于调度器的具体实现和当前系统状态)。挂起态的线程被移出调度队列,不会参与调度,直至等待的条件满足,线程被恢复到就绪态。:线程变为就绪状态后,根据RT-Thread的调度算法,如果它是当前最高优先级的就绪线程,且系统允许抢占,那么它将立即或在下一个调度时机获得CPU执行权。
2024-05-06 13:25:08
970
原创 RT-Thread线程-创建线程
它是线程在系统中的核心表示,存储了线程的关键属性、状态信息以及与线程生命周期管理相关的数据。:TCB存储了线程执行时的CPU寄存器状态(如程序计数器PC、通用寄存器、状态寄存器等),当发生线程上下文切换时,这些信息会被保存到当前线程的TCB中,同时从即将运行的线程TCB中加载相应的寄存器状态,从而实现线程执行现场的切换。:TCB作为线程的唯一标识,记录线程的唯一标识符(线程ID)和当前状态(如就绪、运行、挂起、阻塞、结束等),使得操作系统能够准确跟踪和控制各个线程的执行情况。
2024-04-25 10:00:00
1166
1
原创 RT-Thread线程知识
线程定义与组成在RT-Thread中,线程(Thread)是操作系统调度的基本单位,代表了一个独立的执行流,它包含了要执行的任务或服务的具体代码。通过将复杂的系统任务分解为多个线程,可以实现并发执行,提高系统的响应速度和资源利用率。线程代码(函数):这是线程要执行的实际逻辑,通常以用户定义的函数形式提供,是线程的主体部分。线程控制块(TCB, Thread Control Block):这是一个数据结构,用于存储线程相关的状态信息(如优先级、栈指针、调度信息等)以及与线程生命周期管理相关的控制数据。
2024-04-24 23:10:38
564
原创 RT-Thread 启动流程详解
RT-Thread 的启动流程是操作系统初始化和运行应用程序之前的关键步骤。系统启动入口:RT-Thread 规定的统一启动入口是函数。不同的平台和编译器可能会有不同的启动文件和入口点,但最终都会调用这个函数。硬件初始化:在函数中首先进行的是硬件的初始化,这通常包括 CPU、内存、外设等的初始化。系统堆初始化:硬件初始化之后,系统会初始化系统堆,这是为应用程序和其他软件组件提供内存分配的基础。打印版本信息:系统会打印出 RT-Thread 的版本信息,这对于调试和确认系统状态很有帮助。定时器初始化。
2024-04-23 12:02:53
1347
原创 RTOS基本概念
实时多任务操作系统(Real-Time Operating System, RTOS)是一种特别设计用于满足实时性要求的软件系统,它允许在一个或多个处理器上并发执行多个任务,并确保系统能够在确定的时间内对外部事件或内部请求作出响应。综上所述,RTOS的基本概念涵盖了实时性要求、任务管理、任务调度、中断处理、同步与通信机制、内存管理以及启动流程等多个方面,这些概念共同构成了一个能够高效、可靠地支持实时应用需求的操作系统框架。它指的是系统能够及时响应外部事件或内部请求,并在规定的时间限制内完成特定任务的能力。
2024-04-22 18:27:33
369
原创 RT-Thread简介
特性功能完备性高低中间层组件丰富(文件系统、网络、图形等)无设备框架支持不支持Kconfig/Env支持支持不支持资源占用较大(相对于Nano版)极小移植难度中等简单适用场景对功能要求较高、资源相对充足的项目资源极其有限的嵌入式设备、微控制器选择使用哪个版本的RT-Thread,应根据具体项目的资源约束、功能需求、开发复杂度等因素来决定。如果项目需要丰富的中间层支持、设备驱动框架以及易于配置的系统,标准版是理想选择。
2024-04-22 14:07:26
717
3
原创 十步学习法
目的:设定清晰、可度量的学习目标。行动:列出具体的学习成果期望,如掌握特定数量的核心概念、完成特定项目、通过认证考试或达到某种实践能力水平。确保目标SMART(Specific, Measurable, Achievable, Relevant, Time-bound)原则。
2024-04-22 13:45:34
373
原创 Hi3518EV200开发环境搭建
Hi3518EV200开发环境搭建安装Ubuntu14系统在VMware上安装Ubuntu14虚拟机,关于安装Ubuntu步骤就不细说了。关闭dashsudo dpkg-reconfigure dash避免安装hisi SDK时出现dash和bash不兼容的错误安装其它工具sudo apt install lib32stdc++6-4.8-dbgsudo apt install lib32z1-dev让64位系统可以运行32位的可执行文件安装Hi3518EV200 SDKHi3518
2020-08-29 15:08:11
286
原创 MC20 OpenCPU开发记录
MC20 OpenCPU开发笔记OpenCPU软件体系结构资源32-bit ARM7EJ-STMRISC 260MHz4MB flash4MB RAM串口提供两个UART端口:MAIN UART、DEBUG UART。分别命名为UART1和UART2。UART1是9-pin串行接口。UART2是3-wire接口,具有调试功能,可以用来调试核心系统。GPIO有21个I/O管脚可配置为通用I/O。EINTOpenCPU支持外部中断输入。有三个I/O引脚可配置为外部中断输入。但是,EI
2020-08-29 14:15:31
1025
原创 Linux应用编程之进程与信号
Linux应用编程之进程与信号进程什么是进程UNIX标准把进程定义为:“一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源”。像Linux这样的多任务操作系统可以同时运行多个任程序。每个运行着的程序实例就构成一个进程。进程的基础知识每个进程都会被分配一个唯一的数字编号,称之为进程标识符或PID。它通常是一个取值范围2~32768的正整数。Linux进程不能对用来存放程序代码的内存区域进行写操作,程序代码是以只读形式加载到内存中的。它可以被多个进程安全的共享。进程有自己的栈空间,用
2020-05-24 22:47:18
237
原创 Linux应用编程之Socket
Linux应用编程之SocketSocket介绍Socket也称套接字,是一种通信机制。Socket就是我们建立网络连接的工具。Socket明确的将客户和服务器区分开。Socket机制可以实现将多个客户连接到服务器。Socket连接Socket连接过程:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NmZ7gEfw-1589209934036)(E:\Git\Study-Note\linux\socket\tmp\Socket流程.jpg)]服务器端服
2020-05-11 23:15:39
318
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人