自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 优雅的玩转TDA4VM

Linux TDA4VM 安装、使用、编译、启动

2023-04-23 09:55:45 3235 7

原创 数据记录回放工具

密级Secret level □公开L1 Public □内部L2 Internal only█保密L3 Confidential □机密L4 Strictly confidential1 修订历史 Revision History版本号 修订日期 修订内容 文档状态 审核日期V1.00 2023-06-08 新建 已发布 2023-06-16。

2024-12-12 16:31:19 697

原创 数据记录回注工具详细设计

密级Secret level □公开L1 Public □内部L2 Internal only█保密L3 Confidential □机密L4 Strictly confidential2.3 目的本文档旨在描述DAS数据记录回注工具的详细设计,包括该数据记录回注工具的功能、模块设计、数据结构、算法、接口设计等方面的详细描述,为软件编程和系统维护提供基础。

2024-12-12 16:30:22 810

原创 DAS软件架构设计说明书

支持传感器、执行器管理服务 https://aone.alibaba-inc.com/project/2020367/req/tree?DAS业务开发技术要求 https://aone.alibaba-inc.com/project/2020367/req/tree?// 实体名称,全局唯一,格式:实例名称 + @ + 插件名称,e.g. 1@plugin_demo,2@plugin_demo。// 硬件状态 0-在线,1-离线,2-工作异常,99-未知。// others,e.g.采样率。

2024-12-12 16:29:30 695

原创 基于地平线J5的时间同步方案

简介在高级驾驶辅助系统(ADAS)场景中,时间同步是一个至关重要的需求,因为它确保了系统中所有传感器和处理单元的数据在时间上是一致的。准确的时间同步允许系统准确地重建和理解车辆周围的环境,这对于决策制定和执行动作至关重要。具体比如,各个传感器的时钟有偏差,各种传感器的采样频率也不一致,当前激光典型采样频率为10HZ,相机为30fps,高精度组合导航为100HZ。没有准确的时钟同步,各传感器在哪一帧进行融合,在哪里进行插值都没法进行判断。两个传感器即使采样频率一致,其每帧数据的采样点也一般不一致。

2024-12-12 16:26:54 900

原创 ADAS场景中主流的时间同步方案

有时使用GPS时间同步需要接串口和PPS,如果将GPS模块发出的PPS和串口数据可以给到所有的传感器,并且所有传感器都支持GPS时间同步,那我们就不需要选择主时钟了。具体比如,各个传感器的时钟有偏差,各种传感器的采样频率也不一致,当前激光典型采样频率为10HZ,相机为30fps,高精度组合导航为100HZ。● J5提供PPS驱动程序:./drivers/pps/clients/hobot-pps.c,这个驱动程序的功能为:当PPS中断到来之后,获取系统时间,唤醒应用层程序,将系统时间发给应用层。

2024-12-12 16:26:19 1060

原创 立讯J5激光搭建笔记

1、需要搭建一个路由器进行,网口的扩展,因为板子只有一个网口。需要将PC的以太网IP设置为192.168.1.102/24。6、PC端需要一个数据转换工具,最后使用RVIZ2显示。目地:添加rs_driver和新插件的rootfs。输入:在J5平台接入RM1激光雷达。一定不要更改lidar的IP。2、验证激光硬件是否可用。3、重新烧写新image。效果:在PC上可视化展示。4、更换MSG为IDL。验证激光硬件是否可用。接入J5开发板后使用。重新烧写新image。

2024-12-12 16:22:36 165

原创 立讯J5毫米波搭建笔记

运行。

2024-12-12 16:18:15 618

原创 激光RSM1数据发布优化

在实际调试和验证后,极大化的缩减数据,将float-x float-y float-z分别用int16-x int16-y int8-z替代。而在跨平台进行传输,则是通过网络进行传输,所有延迟陡峭增加。将原有的1.2Mb一包数据缩减为0.4506Mb,即将一个完整大包数据缩减了62.5%的数据量。将原有的1.2Mb一包数据缩减为0.4506Mb,即将一个完整大包数据缩减了62.5%的数据量。由于RSM1激光雷达硬件本身的发布周期是10HZ,所有DDS的发布延迟必须大于10HZ。

2024-12-12 16:07:40 610

原创 毫米波台架搭建指南手册

1 修订历史版本号 修订日期 修订内容 文档状态 作者 审核人 审核日期0.1 2024-01-12 新建 完成 魏鹏 /2 导言2.1 目的适配台架不同硬件平台(比如:立讯J5,长安C3B,X9SP等)的开发环境;台架接入毫米波雷达传感器,DAS对原始数据进行数据抽象化处理,最后将抽象化后的数据输出上层所需要的应用或算法中。2.2 术语定义术语名称 术语定义DSA 数据服务抽象Board 台架上的硬件板子(如立讯J5、长安C3B、X9SP等)

2024-12-12 16:07:08 854

原创 激光台架搭建指南手册

1 修订历史版本号 修订日期 修订内容 文档状态 作者 审核人 审核日期0.1 2024-02-18 新建 完成 魏鹏 /2 导言2.1 需求参考长安车厂在实际分发布传感器的数据,使用的是轻量级cyclonedds分布式发布。因此我们避免使用ROS2这一套庞大而复杂的工具,采用DDS通信的手段,更切合车厂对传感器数据传输的实际应用。2.2 目的适配台架不同硬件平台(比如:立讯J5,长安C3B,X9SP等)的开发环境。

2024-12-12 16:06:34 495

原创 Camera搭建指南手册

如果需要设置9296-9295对应寄存器,则需要查询9295对应的定制。域控本身支持这款相机的驱动,所以只需要直接加载对应的驱动即可。(如果没有对应的相机驱动,则需要基于源码进行设备树驱动进行驱动开发)以上代码,主要处理一帧数据,将其默认的NV12格式转换为RGB8的格式,好被RVIZ2直接识别。3、4在I2C2(为设备2)的0x4a位置。对于不同平台,需要依赖不同的通道,其中寰宇Titan是基于英伟达的硬件,所以如下拼接。环宇域控接口图如下,使用其中HDMI-1对应的Xavier-1主机,

2024-12-12 11:43:49 729

原创 初识U-Boot和Linux内核的设备驱动模型

总的来说,U-Boot的设备驱动模型更侧重于bootloader阶段的硬件初始化和操作,而Linux内核的设备驱动模型则提供了一个全面、动态和模块化的设备管理框架。Linux内核的设备驱动模型则更加复杂和全面,它支持动态加载和卸载驱动,以及设备的热插拔。U-Boot的驱动模型通常不涉及复杂的设备发现和匹配机制,设备的初始化和配置更多是通过静态方式在U-Boot中完成的。Linux内核的设备驱动模型通过总线机制来发现和匹配设备,驱动可以根据设备的ID和其他属性来自动匹配和初始化设备。

2024-11-20 16:09:01 274

原创 systemd最大的误解

自从我们首次提议将systemd 纳入发行版以来,它就经常出现在许多论坛、邮件列表和会议上。在这些讨论中,人们经常会听到一些关于 systemd 的谣言,这些谣言被一遍又一遍地重复,但不断重复肯定不会带来任何真相。让我们花点时间来揭穿其中的一些谣言:误解:systemd 是整体式的。如果您在启用所有配置选项的情况下构建 systemd,您将构建 69 个单独的二进制文件。这些二进制文件都用于不同的任务,并且由于多种原因而被整齐地分开。例如,我们在设计 systemd 时考虑到了安全性,因此大多数守护进程

2024-11-05 16:08:50 434

原创 linux的errno返回值含义

4)errno是线程安全的,在一个线程中设置它,不会影响别的线程对它的使用。这一点很重要,不知道有没有像我之前有过这样的问题:看起来errno像是一个全局的变量,应该不是线程安全的吧?看了这个之后,就有答案了,errno是thread-local的,也就是每个线程都有一个。2)errno的有效值都是非零的。(这个manpage有个悖论,第二段中说,errno从来不能被设为0,而在第三段又说有些接口会将其设置为0)3)errno在ISO C标准中定义的,它可能是一个宏并且不能被显示声明(也就是重新定义)。

2024-10-14 11:06:38 818

原创 Linux设备树

如果节点没有“reg”属性值,可以直接省略“@unit-address”, 不过要注意这时要求同级别的设备树下(相同级别的子节点)节点名唯一,从这个侧面也可以了解到, 同级别的子节点的节点名可以相同,但是要求“单元地址”不同,node-name@unit-address 的整体要求同级唯一。例如本地总线为树的“主干”在设备树里面称为“根节点”, 挂载到本地总线的IIC总线、SPI总线、UART总线为树的“枝干”在设备树里称为“根节点的子节点”, IIC 总线下的IIC设备不止一个,这些“枝干”又可以再分。

2024-09-29 15:59:43 1203 1

原创 Linux DTS(Device Tree Source)设备树详解之三(高通MSM8953实例分析篇)

iqs263节点中的pinctrl-0 属性指向了表明其io口属性的节点为iqs263_irq_config,相关代码也在2.3.1指示的msm8953-pinctrl.dtsi文件中。i2c_8节点中的pinctrl-0指向了定义其io口的节点i2c_8_active和i2c_8_sleep,代码如下可见该i2c的IO口为Gpio98和Gpio99。在前两篇中我们了解了DTS的背景基础知识以及发挥作用的流程,这篇文章我们以高通的MSM8953平台为例来添加一个基础的i2c设备(包含一个gpio中断)。

2024-09-29 15:02:07 660

原创 Linux DTS(Device Tree Source)设备树详解之二(dts匹配及发挥作用的流程篇)

目录Linux DTS(Device Tree Source)设备树详解之二(dts匹配及发挥作用的流程篇)Dts中相关符号的含义DTS中几个难理解的属性的解释地址中断其他DTS设备树描述文件中什么代表总线,什么代表设备由DTS到device_register的过程查看挂载上的所有设备请尊重原创版权,转载注明出处。Linux DTS(Device Tree Source)设备树详解之二(dts匹配及发挥作用的流程篇)

2024-09-29 15:00:49 998

原创 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)

目录什么是DTS?为什么要引入DTS?二.DTS基本知识DTS的加载过程DTS的描述信息DTS的组成结构dts引起BSP和driver的变更常见的DTS 函数DTC (device tree compiler)请尊重原创版权,转载注明出处。什么是DTS?为什么要引入DTS?    DTS即Device Tree Source 设备树源码, Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF)。 在Linux 2.6中,ARM架构的板极硬件细节过多

2024-09-29 15:00:04 1339

原创 uboot编译之编译过程二

Makefile核心是依赖和命令;对于每个目标,会先检查依赖,如果依赖存在则执行命令更新目标;如果依赖不存在,则会以依赖为目标,先生成依赖,依赖生成后,则执行命令。

2024-05-17 17:57:04 287 1

原创 U-boot编译make配置过程

u-boot从v2014.10版本后引入kBuild系统,使得其Makefile变的更加复杂;整个Makefile中,嵌套其他不同用途的Makefile,本文将进行简单的分析.

2024-05-17 17:55:05 331

原创 U-boot管脚复用

While the GPIO direction is set to input (GPIO_GDIR = 0), a read access to GPIO_DR does not return GPIO_DR data. Instead, it returns the GPIO_PSR data, which is the corresponding input signal value.实际上PSR才是读到的值。GPIO1_IO02代表GPIO1组寄存器的第02个寄存器,也就是第3位。

2024-05-17 17:49:43 699

原创 U-boot移植步骤

【代码】U-boot移植步骤。

2024-05-17 17:22:45 225

原创 U-boot启动内核之二bootm启动内核

整理自[uboot] uboot启动kernel篇(二)——bootm跳转到kernel的流程](bootm根据参数指向的镜像填充此结构体,然后使用结构体的内容填充kernel的启动信息,进行跳转。do_bootm_states根据states来判断要执行的操作。

2024-05-17 17:21:19 797

原创 U-boot启动内核

因此u-boot提供mkimage工具,用以生成u-boot可以识别的格式,称为uImage。c) **mkimage:**负责dtc的角色,通过解析its生成itb d) **image data file:**实际使用到的镜像文件。a) **its(image source file)文件:**类似于dts,负责描述image的信息,需要自行构造。b) **itb文件: **最终得到的image文件,类似于dtb文件,u-boot直接对其识别和解析。长度较大,需要额外信息较长。实现简单,长度较小;

2024-05-17 17:19:44 1186

原创 第4章-U-boot驱动模型之四实例

id = UCLASS_SERIAL, // 这里的uclass_id和 uclass_driver中的一致.of_match = s5p_serial_ids, // 设备树种的compatible属性{ .compatible = "samsung,exynos4210-uart" }, //注意这里的compatible要和设备树中的一致{ }

2024-05-16 15:53:09 637

原创 第4章-U-boot驱动模型之三流程

根设备其实是一个虚拟设备,主要为其他设备提供一个挂载点。

2024-05-16 15:47:42 900

原创 第4章-U-boot驱动模型之二数据结构

有对应uclass driver并且下面挂有udevice的uclass才会被uboot自动生成。所有生成的都会挂接到gd->uclass_root链表上。不应该是dtb解析获得的吗?的确是通过dtb解析获得。uboot解析dtb以后动态生成。

2024-05-16 11:45:56 550

原创 第4章-U-boot驱动模型之一基本内容

在U-boot中引入驱动模型(driver model),为驱动的定义和范文接口提供统一的方法,提高驱动间的兼容性以及访问的标准性,u-boot中的驱动模型(DM)和kernel中的设备驱动模型类似,但是也有所区别。简单来说,u-boot把GD放在RAM区,使用它来存储全局数据, 以解决上述场景中无法使用全局变量的问题。根据上面可得GD的基地址存放在r9中,需要GD的时候,直接从r9寄存器中取的其地址即可。可以理解为具有相同属性的device对外操作的接口, 它与上层接口直接通讯,其驱动为。

2024-05-16 10:27:27 343

原创 第3章-U-boot命令行

uboot命令行

2024-05-15 17:59:30 291

原创 uboot设备树

uboot设备树

2024-05-15 17:57:58 1333

原创 第1章:u-boot启动流程

ROM中的代码是固化的,无法修改。

2024-05-15 17:55:50 1019

原创 U-boot基础

uboot基础

2024-05-15 17:52:33 186

原创 u-boot 和 rootfs/initramfs 启动 Raspberry Pi 4B

这篇文章的目的是了解嵌入式Linux的四个组成部分 —— 工具链、引导加载程序、内核、根文件系统 —— 通过使用最少的代码从头开始启动 Raspberry Pi 4 的命令。

2024-04-09 20:11:09 1371

原创 一文了解fastboot

【代码】一文了解fastboot。

2024-04-09 16:08:11 5333 1

原创 地平线J5生成镜像

board_id 是J5 dts中根节点下属性board_type 的值;board_type 属性顾名思义,它是为了区分不同J5板级差异的标记。当需要增加内核DTS与产品Boardid映射关系时,需要做后面小节的修改,以保证启动时能根据读取到的Boardid找到期望的DTB文件。程序中根据board_type决定使用哪一份dts 文件,各个dts 文件描述板级之间存在差异的J5 board。board_type 节点在J5 分为uboot 的部分与kernel 的部分。

2024-04-09 11:36:07 987

原创 RPC之rpclib

rpclib 是一个用于 C++ 的 RPC(远程过程调用)库,提供了客户端和服务器的实现。它使用现代 C++14 构建,因此需要较新的编译器。

2024-03-30 12:41:28 795

原创 汽车芯片市场集中度最高的领域:SerDes

显示屏领域,德州仪器大约占70%的市场,ADI的份额很低。CDR,即时钟数据恢复,对于高速的串行总线来说,一般情况下都是通过数据编码把时钟信息嵌入到传输的数据流里,然后在接收端通过时钟恢复将时钟信息提取出来,并用这个恢复出来的时钟对数据进行采样,因此时钟恢复电路对于高速串行信号的传输和接收至关重要。随着信号速率的增加,信号在传输过程中受损很大,为了在接收终端能得到比较好的信号波形,就需要对受损的信号进行补偿,预加重技术的思想就是在传输线的始端增强信号的高频成分,以补偿高频分量在传输过程中的过大衰减。

2024-03-30 11:24:12 1493

原创 make menuconfig

文件进行更改时要小心,因为这些文件通常被用作某个硬件平台的默认配置。如果你的更改是针对一个具体的产品或板卡,建议使用一个具有描述性的名称,反映出配置文件的用途或目标平台。文件的内容确实反映了你的更改。如果你是在团队或社区环境中工作,并且需要将这些更改纳入版本控制系统,现在就可以准备提交你的更改。中的非默认配置选项保存到一个简化的配置文件,通常这会生成。确保使用的名称没有与现有的。文件,该文件仅包含不同于内核默认设置的选项。所做的修改同步到指定的配置文件,比如。文件,它位于你的源代码目录的顶层。

2024-03-28 20:20:59 840

原创 嵌入式Linux系统的启动流程

接下来就是完成 flash 和 ddr 初始化,为后面从 flash 加载 bin 文件,在 DDR 中运行程序提供基本环境,一般情况下都是从flash为0的位置,将flash中的bootloader 镜像文件加载到 RAM 或 DDR 中,该引导程序最终将uboot从flash 复制到 DDR 中,然后交接给 uboot 进行下一步处理。这一阶段主要对各类 app 应用进行初始化,如文中以通信设备为例,此处主要完成对转发芯片的初始化,会涉及一些基础转发表项的初始配置,端口和各种通信总线的初始化。

2024-03-22 10:09:10 428

空空如也

空空如也

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

TA关注的人

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