自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1913)
  • 资源 (14)
  • 收藏
  • 关注

转载 Rpmsg与Virtio介绍

源码所在路径:drivers\rpmsg\KconfigMakefile1234567891011Rpmsg的整体框架是Rpmsg Bus、Rpmsg Device与Rpmsg Driver所构成,即Linux中的Bus模型;Rpmsg Bus:由rpmsg_core.c文件所构建,负责bus的构建;Driver-device的match;device的probe与remove;uevent机制;12345678。

2022-08-22 22:55:51 1399 2

转载 linux 核间通讯rpmsg架构分析

以imx8为例在最底层硬件上,A核和M核通讯是靠硬件来进行的,称为MU,如图。

2022-08-22 22:34:16 2352

转载 Linux 的 I / O 虚拟化 virtio 框架详解

本文原文链接: https://developer.ibm.com/technologies/linux/articles/l-virtio/简而言之,virtio是半虚拟化管理程序中设备上的抽象层。virtio由Rusty Russell开发以支持他自己的虚拟化解决方案lguest。本文从准虚拟化和仿真设备的介绍开始,然后探讨的细节virtio。重点是virtio2.6.30内核发行版中的框架。 Linux是虚拟机管理程序平台。正如我在有关Linux作为虚拟机管理程序的文章中所展示的那样,Linux提供了

2022-08-22 13:46:09 1168

转载 RPMsg:协议简介

对于非通用的操作系统,它上面很可能是没有搭载传统的TCP/IP协议栈的,因此,当主核想要通过RPC的方式调用从核上的服务的时候,便不能使用一般的RPC框架所采用的网络通信方式。为了最大限度的发挥他们的性能,协同完成某一任务,不同的核心上面运行的系统可能各不相同,有些核心上面运行的通用系统例如Linux、Android等,另外一些核心上可能运行的就是实时操作系统(RTOS)等。可能在不久的将来,RPMsg可以从一个事实上的标准变成一个真正的标准,毕竟,TCP/IP 也是这么过来的嘛。

2022-08-22 10:08:22 697

转载 linux rpmsg 命令,Linux RPMsg framework

更多关于这个框架的细节,请参考下面的链接:rpmsg: 一种基于virti的消息总线,允许内核驱动程序与系统上可用的远程处理器通信。当远端处理器使用“新服务声明”RPMsg消息请求相关联服务时,RPMsg框架将探测此驱动程序。当客户端驱动程序使用本地地址创建endpoint时,所有具有与endpoint本地地址相同的目标地址的入站消息都将被路由到该endpoint。vrings不是单向的,一个vring专用于发送到远程处理器的消息,另一个vring用于从远程处理器接收的消息。OpenAMP wiki文档。

2022-08-22 09:53:07 1069

转载 第四章 初始化程序init(main.c)

初始化程序。

2022-08-16 00:50:03 424

转载 Linux内核完全注释:第三章 内核引导启动程序-head.s讲解

续上篇博客。

2022-08-16 00:48:43 409

转载 Linux内核完全注释:第三章 内核引导启动程序-setup.s讲解

续上一篇。

2022-08-16 00:41:26 214

转载 操作系统-课堂笔记-磁盘调度(南航)

寻址的基本单位是块(block)地址线性增长:0,1,2,3,…块的大小是扇区大小的整数倍:一般为4K!在OS看来,一块磁盘可以当作block类型的一维数组LBA的出现是用来取代CHS的,那么LBA是如何寻址的呢?LBA是一个整数,通过转换,成为CHS格式完成磁盘寻址。LBA采用48个比特位寻址,最大寻址空间位128PB即LBA将CHS这种三维寻址转变成一维的线性地址,所谓一维即扇区号。...

2022-08-16 00:23:35 689

转载 INT 10H 中断简介

INT 10H 是由对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内。使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用 INT 10H。底下是它们的说明:AH功 能调用参数返回参数 / 注释置光标类型(CH)0―3 = 光标开始行(CL)0―3 = 光标结束行置光标位置BH = 页号DH = 行。...

2022-08-16 00:17:56 223

转载 int 13h 参数大全

直接磁盘服务(Direct。

2022-08-15 23:26:35 220

转载 Linux内核完全注释:第三章 内核引导启动程序-bootsect.s讲解

内核引导启动程序。

2022-08-11 23:25:11 698

转载 Linux0.11内核源码解析——启动代码bootsect.s(1)

距离我上次我写Linux0.11版本的内核分析,稍微隔得时间有点久,一个主要是由于要回答星球上朋友们遇到的问题,另外一个是自己去学习重温了一下汇编语言,其实也不是重温,压根就是自己基础差,以前没咋系统学习过!其实汇编还是非常有用的,比如平时调试错误在一些高级语言的时候,可以进行反汇编,这个有很大的帮助!这里为啥突然去学习一下汇编,最主要的原因是我想好好分析一下boot目录里面的汇编源码,看看里面到底是如何运行到把内核加载执行起来的。...

2022-08-11 22:30:29 1684

转载 Linux 0.11 实验环境搭建

如果想学习Linux 0.11,实验环境是必不可少的。最好是能编译,能运行,能调试。如今大家都是用64位的,而且是高版本的GCC(4.0以上),所以环境搭建是个难题。要么就是编译后满屏报错,要么就是运行时出问题,总之各种麻烦。还好,有热心的朋友提供了可用的环境,在此深表谢意。我的环境是:Win7(64位)++Ubuntu 16.04(64位)如果不用虚拟机,直接装个Linux,那自然是最好的。...

2022-08-08 23:18:42 2847

转载 AURIX核同步

核同步用到的函数IFX_ALIGN(4) IfxCpu_syncEvent g_cpuSyncEvent = 0;核同步的用处比如多个核需要用到同一外设,可放在cpu0里面初始化,然后利用核同步

2022-08-04 11:26:21 794 1

转载 TC397 LMURAM 使用

具体使用哪种方法,还要看实际效果,特别是做Boot+APP的时候,更要注意实际运行一下看程序到底能不能正常运行,也有可能两种方法都不对.跑算法模型的时候,通常会有特别大的数组或结构体,TC397的DSRAM经常不够用,如。这样编译就不会报错了,在MAP文件中可以看到分配到了LMU里面。编译出来HEX文件500多行.但具体能不能跑起来没有测试.编译出来HEX大概20000多行.当然很多。都是0,说明编译器处于一个有点懵的状态。指定到LMURAM里面,如。...

2022-08-01 23:09:04 1865

转载 FreeRTOS高级篇 FreeRTOS基础篇

https://blog.csdn.net/zhzht19861011/category_9265965.html?spm=1001.2014.3001.5482https://blog.csdn.net/zhzht19861011/category_9265276.html?spm=1001.2014.3001.5482

2022-07-26 16:01:01 274

转载 TriCore 内核学习笔记

TriCore是英飞凌半导体公司专为嵌入式实时系统设计的32位精简指令(RISC)的芯片架构。汽车电子上用的比较多。低中断延迟;硬件自动上下文切换都是它的特点。

2022-07-25 11:32:31 5194

转载 FreeRTOS任务切换的实现方式--Apple的学习笔记

继上一篇后,今天看了下运行过程中的任务切换。然后让我觉得我上一篇对于从PCXI读取地址的理解是错误的,我之前理解PCXI读取值时候会将它释放move到FCX,其实这个理解是错误的。PCXI为当前上下文,可以通过指针方式读取地址,然后通过指针offset修改其值。因为运行过程中的任务切换就是通过此种方式实现。那么既然可以通过此种方式修改返回地址(RA),那么是否我上一篇文章中提出的问题,仅初始化使用一个CSA可以解决吗?...

2022-07-24 15:49:14 525

转载 Tricore内核上下文切换机制CSA--Apple的学习笔记

FreeRTOS在port.c中都是和内核相关的,我就是想了解清楚TC2上下文切换的机制。所以看pxPortInitialiseStack函数,里面主要是初始化CSA,在FreeRTOS任务创建函数中会调用,另外还看了xPortStartScheduler函数,这里面主要是处理上下文切换。本来在看core寄存器说明文档,里面有说上下文切换保存和恢复的机制。...

2022-07-24 13:31:36 1256

转载 TriCore 与 RT-Thread(TC264 移植)

RT-Thread的libcpu抽象层需要实现以下三个线程切换相关的函数1)rt_hw_context_switch_to()没有来源线程,切换到目标线程,在调度器启动第一个线程的时候被调用。我的实现并不是最优解,这里还有很多值得探讨的。IE位是一个全局的中断使能位,当进入中断时,IE位会自动的置为0,当中断服务函数执行rfe指令后,会自动的恢复进中断前的值。TriCore提供了一种硬件的上下文机制,这种机制是专为嵌入式实时操作系统设计的,他的目的就是为了能提高线程切换的效率。...

2022-07-23 00:22:15 1708

转载 Aurix/Tricore实验分享之六十四:Tricore 1.3内核CSA管理

单个CSA大小为16Word,也就是64Byte.单个CSA可以保存UpperCSA,也可以保存LowerCSA.也就是两种CSA共用系统的CSA空间.CSA分为UpperCSA与LowerCSA两种.其中UpperCSA为硬件自动保存,LowerCSA为程序员视乎需要而保存/恢复.CSA与常规内核的Stack类似.可以看作把常规内核的Stack中的保护现场的功能抽出来了.这样分离设计的初衷在于加速上下文切换.......

2022-07-22 22:28:19 876 1

转载 FreeRTOS 在Tricore上的三种任务切换方式

①SysTick中断方式周期性地检查并进行任务切换,该中断优先级被设置为2,防止其抢占正在执行的中断处理而引发错误(若SysTick中断通过抢占其他中断而进入,那么在进行上下文切换时,会把被其打断的中断处理函数的上下文CSA地址保存到最近一次运行的任务TCB.TopOfStack中,而将PCX指向新任务的CSA地址,因此SysTick中断退出时会将新任务的上下文恢复到寄存器中从而执行新任务,而不是返回到被抢占的中断中继续执行,于是整个系统都会乱掉。(3)systick中断中的任务切换。...

2022-07-22 18:49:26 1248

转载 vTaskSwitchContext

在FreeRTOS任务管理中,最主要的目的就是找到就绪态优先级最高的任务,然后执行任务切换,从而能保持优先级最高的任务一直占用CPU资源。使用此方法,uxTopReadyPriority每个bit位表示一个优先级,bit0表示优先级0,bit31表示优先级31,使用此方式优先级最大只能是32个。知道最高优先级的优先级,则通过listGET_OWNER_OF_NEXT_ENTRY()对应最高优先级的列表项,将pxCurrentTCB指向对应的控制块。特殊方式是使用了某些硬件的特性,只针对部分MCU而使用。..

2022-07-22 18:36:48 1452 1

转载 AURIX系列之TC275学习笔记(五):中断系统

如图所示,每个可以生成服务请求的TC27x模块都是连接到中央中断路由器中的一个或多个服务请求节点(SRN)模块。中断路由器模块还包括几个通用服务可用于软件(SW)触发的服务请求的请求节点(SRN)。每个SRN都包含一个服务请求控制寄存器(SRC),用于配置服务要求有关优先级,每个ICU处理来自以下设备的竞争服务请求之间的中断仲裁映射到ICU的SRN。•通用服务请求xy只能通过将“1”写入相关SRC_GPSRxy.SETR1)位或通过向相关服务请求广播寄存器位SRBx[y]写入“1”。...

2022-07-22 15:28:11 1395

转载 TC397A移植FreeRTOS

1-由应用软件决定存放位置,必须实现两个回调函数,vApplicationGetIdleTaskMemory()提供IdleTask使用的Memory,vApplicationGetTimerTaskMemory()提供Daemon/TimerServicetask使用的Memory(configUSE_TIMERSissetto1)。*0-相同优先级的任务,在systick中断时,不切换,1-中断时,切换。优先级之上的中断,不会被RTOS的中断行为影响,响应最实时的事件。...

2022-07-22 14:18:00 1090 2

转载 Mastering the FreeRTOS Real Time Kernel-A Hands-On Tutorial Guide 掌握FreeRTOS™ 实时内核 中文版

Mastering the FreeRTOS Real Time Kernel-A Hands-On Tutorial Guide 掌握FreeRTOS™ 实时内核 中文版

2022-07-22 14:12:10 1043

转载 TC275调试日志——中断系统2:STM0比较中断

今天我们继续上贴的中断系统进行说明,上贴已经说明了中断系统的工作方式以及中断仲裁。今天我们来说明中断的应用。上贴说过,中断控制单元ICU会对中断节点的中断进行处理,将仲裁胜出的中断对应的信息(包括优先级SRPN、校验ECC、中断节点号SRN index)发送到中断服务者(CPU或者DMA)。相应的中断服务者接受中断后会返还这些信息,这些信息的承载以及中断服务是通过中断服务者的接口来完成的。那么中断服务者是怎么根据这些信息就可以判断中断类型,并进行相应的中断服务呢?我们知道在51中,每个中断都有相应的地址,触

2022-07-22 11:25:53 1419

转载 英飞凌基础学习笔记STM(System Timer)

→STM有一个64位计数器,由来自CCU(时钟控制单元)的fSTM进行时钟→系统计时器值可以通过7个寄存器读取,每个寄存器选择系统计时器值的32位范围。→每一个都可以用作具有不同分辨率和范围的计数器。→由于64位的宽度,整个计数器需要用两个加载指令来读取。计时器将在加载操作之间继续计数,因此读取值有可能不匹配。为了实现对STM内容的同步和一致的读取,我们实现了一个捕获寄存器。→这个捕获寄存器保持计时器的上值,为什么读取下面的部分。因此,第二个加载操作将读取捕获寄存器的内容。1.START(开始。...

2022-07-22 10:23:05 1084

转载 TC397 STM(System Timer)

STM专为需要高和长周期的整体系统计时应用而设计。特殊的STM语义以不同的分辨率提供整个64位计数器或32位子集的同步视图。STM是一个向上计数器,以f(STM)频率运行。在应用程序复位的情况下,如果位被置零,则STM被复位。复位后,STM被使能并立即开始向上计数。在正常操作期间不可能影响定时器的内容。定时器寄存器只能读不能写。STM可以选择禁用以节省电力,或暂停以进行调试。在挂起模式下,STM时钟停止,但所有寄存器仍然可读。...

2022-07-21 15:15:34 1134

转载 英飞凌TC397移植FreeRTOS

本次移植过程由于参考了第三方TASKING工程示例代码(目的是将TASKING项目转移到AURIXDevelopmentStudio项目),篇幅有限,故port接口中的详细内容没办法展示,移植FreeRTOS的主要思想就是port接口的几个关键API的实现,中断的配置等等,并不局限于哪款单片机,此次移植过程作为工作中的查错记录使用,关于TC3978问题可以和本人沟通,后续有相关内容会继续补充,加油,汽电人。httpshttpshttpshttps。...

2022-07-20 23:21:25 2468 4

转载 K210 FreeRTOS SDK启动分析

main_thunk任务内部执行了一些系统初始化操作(hal/drivers/fpioa),然后执行user_main函数,这个函数就是os_entry函数的入参,我们继续跟踪,发现lib/bsp/entry_user.c这个里面的_init_bsp调用了os_entry(main),此处的main即src/hello_world/main.c里面main函数,另外通过汇编代码跟踪,我们发现lib/bsp/crt.S这个里面调用了_init_bsp。针对以上疑问,我们做了这样一个尝试。...

2022-07-20 14:01:53 575

转载 搞一下TDA4 | 02 TDA4VM的SDK使用入门分享

前言

2022-07-01 15:59:55 5065 2

转载 TDA4平台学习--环境配置

TDA4平台学习–环境配置这个官网的文档有详细的说明,先直接安装 ti-processor-sdk-rtos-j721e-evm-07_01_00_11-linux-x64-installer.run 这个文件,根据说明,这个文件装的SDK应该是RTOS的SDK,直接cd到当前目录,输入就可以了。 然后会弹出安装的界面,按照要求,把TDA4这个包装在一个单独的文件夹里,不要有其他的文件。 接着我们就可以安装另外一个SDK了,另外一个SDK理所当然就是我们主芯片A72的SDK了,也就是linux系统的SDK

2022-07-01 15:50:30 4097 3

转载 【TDA4系列】芯片资源:处理器Processor Subsystems 与 加速器和协处理器Accelerators and Coprocessors

8.1 概述该设备实现了一个双核 Arm® Cortex®-A72 MPU,它与其他模块一起集成在计算集群中。 Cortex-A72 内核是通用处理器,可用于运行客户应用程序。 A72SS 围绕 Arm Cortex-A72 MPCore(A72 集群)构建,由 Arm 提供并由 TI 配置。它基于对称多处理器 (SMP) 架构,因此可提供高性能和最佳电源管理和调试功能。 A72 处理器是一个多问题无序超标量执行引擎,具有集成的 L1 指令和数据缓存,兼容 Armv8-A 架构。 Armv8-A 架构带来了

2022-07-01 14:38:39 2595

转载 【TDA4系列】 IPC applications应用举例

原文https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/06_02_00_21/exports/docs/psdk_rtos_auto/docs/user_guide/developer_notes.html不同 CPU/OS 上的整体 IPC SW 堆栈如下表所示IPC 的主要软件组件是,1、TI-RTOS的PDK IPC LLD驱动,包括RPMSG、VRING和HW Mailbox驱动。 2、Linux内核IPC驱动套件

2022-07-01 14:21:19 792

转载 【TDA4系列】通过MCU域的R5F1_0启动全部核心MAIN域核心(R5F DSP A73)

CAN 响应和引导加载程序演示应用程序此应用程序演示了 J721E SoC 上的八通道 SPI 闪存控制器提供的快速启动功能。 默认情况下,它使用基本应用程序启动主域内核,并提供在 MPU1_0(即 A72)内核上交替启动 Linux 或 QNX 的机制。 此外,它还演示了通过 J721E SoC 上的 MMCSD 介质启动主域内核。 该应用程序执行以下操作:这有助于实现汽车 ECU 通常需要的早期 CAN 响应功能,然后启动 SoC 上的主要域内核。该设备实现了一个双核 Arm® Cortex®-A72

2022-07-01 11:17:02 2437

转载 【TDA4系列】硬件分析与刷写程序的几种方式

TDA4 硬件分析TDA4是AMP架构,AMP即非对称多处理器结构,简单理解为将好几种处理器集成在一块硅片上,并且不同的核运行不同的操作系统。TDA4一共有6个Cortex-R5F核,2个Cortex-A72核,2个C66核,1个C71核。如果把所有核都利用起来,需要写:一共10份不同的程序,不同的程序为了完成同样目标,程序之间的数据交互就非常重要了。一个核间通信的关注点:TDA4的所有核不管在硬件上还是软件上,在内存上都是互联互通的。A72核把需要传输数据放在指定地址上,mcu1_0到指定的地址上取出数据

2022-06-30 15:23:43 5032

转载 【TDA4系列】Linux SDK安装与交叉编译测试,以及刷写SD卡

文档库:https://www.ti.com.cn/tool/download/PROCESSOR-SDK-LINUX-J721E/07.00.01.01使用于TDA4 E721J开发板,使用的SDK软件版本为0700下载和安装ti-processor-sdk-linux-automotive-j7-evm-07_00_01-Linux-x86-Install.bin这个SDK里包含了开发文件系统、目标文件系统、例程应用、工具链、BSP、脚本和文档。J721e的Linux SDK包含了ARM GCC工具链。

2022-06-30 15:09:26 1304

转载 TDA4 Linux SDK(二)07.02.00的版本特点

(1)新增内容pip3包pillow包tensorflow_runtime 包针对TVM和DLR的最新commitTVM、DLR和TFlite_runtime (针对主机仿真)的wheel文件(2)R5 SPL:MCU R5F和Main R5FSS Core0的early bootingA72上的Bootstrapping 2nd stage boot loader (u-boot)UART启动支持eMMC HS400模式支持eMMC模式支持(3)A72 U-boot:使用可配置的boot-strappin

2022-06-30 14:48:36 511

2DVI-1DP-withoutVGA.bin

AMD 显卡E8860 配置固件,配置模式为:2DVI-1DP-withoutVGA AMD 显卡E8860 配置固件,配置模式为:2DVI-1DP-withoutVGA

2020-01-14

EEPROM.bin

Intel 82580网卡芯片个4电口配置固件 eeprom固件 Intel 82580网卡芯片个4电口配置固件 eeprom固件

2020-01-14

瑞萨65N CS+8.0 can flash自擦写代码

瑞萨65N CS+8.0 can flash自擦写代码,自擦写代码,自擦写代码!!!

2019-03-25

mfgtools-with-rootfs-sd-nr.zip

imc6ull mfgtools中ucl2.xml烧写配置文件,精简版,删除多余配置代码

2018-09-17

Rx65N系列 CS+4.1代码生成配置方案

瑞莎RX65N系列 CS+4.1代码生成配置方案,包括uart spi timer pwm产生、捕获等等

2018-09-17

NRSEC3000安全芯片技术资料

南瑞NRSEC3000安全芯片技术资料 测试随机数测试程序 示波器波形图

2018-05-08

ddr_stress_tester_v2.40

imx6系列DDR压力测试功能 ddr_stress_tester_v2.40 ddr-test-mx7d ddr-test-mx6ul ddr-test-mx6sx ddr-test-mx6sl ddr-test-mx6dl ddr-test-mx6dq

2018-05-08

IAC-335x-Kit资料

IAC-335x-Kit资料包括 测试程序 使用手册 原理图 IAC-335x-Kit 嵌入式开发板/评估板Linux开发环境等等

2018-04-20

NUC970_NuWriter

NUC970_NuWriter-master NUC970 uboot kernel rootfs 代码烧写工具

2018-04-20

Pins_Tool_for_i.MX_Processors_v4_x64.exe

Pins_Tool_for_i.MX_Processors_v4_x64 i.MX系列CPU引脚配置软件,自动生成配置代码

2018-04-20

i.MX6UL Development Database

本文总结i.MX6UL的开发经验总结 i.MX6UL 软件定制

2018-04-20

MX6X_ASOC_V4-20160129

i.MX6X ASOC 音频驱动说明与定制 文件用于帮助理解基于NXP的i.MX6X的ASOC立体声音频驱动

2018-04-20

penmount_linux_android_driver_src_v1_16_0

PenMount Device Driver for Linux This file contains information about the open source version of PenMount device driver for Linux.

2018-04-20

GT9xx_Driver_for_Android_V2.4_2014112801

GT9xx_Driver_for_Android触摸屏驱动源码 GT9XX for Android 驱动移植说明书

2018-04-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除