自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 PRU pruss, rproc_pru和prueth uboot源码分析

首先看一下PRU_ICSSG的功能框图,对于AM64来说,包含两个PRU_ICSSG模块。每个PRU_ICSSG共包含两个slice。每个PRU core自己Local Instruction RAM, 容量不同。PRU 内核执行任何指令之前,需要由外部 PRU_ICSSG 主机处理器对其进行初始化。关于IRAM跟详细的信息,可以参考TRM除了IRAM外,还有DRAM, 需要注意的是,从 PRU0 能直接访问数据 DRAM 1 以及 PRU1 能直接访问数据 DRAM 0, Shared RAM。

2024-01-16 16:25:56 876

原创 测试AM64x PRU模块的以太网接口

SDK版本:0806开发板:AM64GPEVM自行编译U-Boot和内核,使用官方的default文件系统,并更新了root/boot下的Image和设备树文件。U-Boot使用的上一个实验编译的结果。

2023-06-28 07:56:26 275

原创 system.map文件

system.map文件记录了所有符号(函数名和变量)的运行地址,帮助我们理解内核编译。每次编译内核都会生成新的system.map文件。

2023-05-07 16:04:07 1565 1

原创 U-Boot(TFTP下载,NFS挂载调试)

在ubuntu上安装tftp服务器,并配置。

2023-05-03 19:44:24 902

原创 嵌入式Linux底层系统开发 +系统移植+内核文件系统(基础)

window10系统,虚拟机下安装Ubuntu,windows通过wifi上网,网口与开发板直连。虚拟机配置成双网卡模式,通过NAT上网,通过桥接模式和开发板通信。如何编译—>如何添加命令和功能—>如何定义自己的开发板。

2023-05-03 11:22:23 1294

原创 ramfs, rootfs&initramfs

ramfs是一个非常简单的文件系统,它将Linux的磁盘缓存机制(页面缓存和dentry缓存)导出为一个动态可调整大小的基于ram的文件系统。Linux通常将所有文件缓存在内存中。从后备存储(通常是挂载文件系统的块设备)读取的数据页被保留下来,以防再次需要,但标记为干净(可自由),以防虚拟内存系统需要内存做其他事情。类似地,写入文件的数据一旦写入后备存储,就会被标记为干净,但会保留下来用于缓存,直到VM重新分配内存。类似的机制(dentry缓存)大大加快了对目录的访问速度。

2023-04-29 20:56:29 1572

原创 IPC Notify&IPC RPMessage

低延时,但是受到一定的限制(需用户自行检查错误,将message和client ID 放入一个单独的32b,因此是不能使用指针来传值),底层实现将使用HW机制来中断接收核心,它还将使用HW fifo(可用时)或基于快速内部RAM中的SW fifo的共享内存来传输消息值。Notify意为通知,作为消息的Send方,因此是Cilent。需要在Client完成。

2023-04-28 15:23:10 199

原创 AM64X EVM 使用CCS 启动问题记录

在OSPI BOOT MODE下,开发板上电后会自动执行NULL Bootloader,在这种情况下能成功Debug非A53核上的程序。在NO BOOT模式下,使用CCS Scripting初始化SOC。在这种情况下初始化SOC,debug A53不会报错。

2023-04-28 15:21:52 247

原创 bootloaders

一般来说,bootloader是一种软件/固件,它在SoC上电后立即运行。bootloader的主要职责是启动软件的后续部分,例如操作系统、baremetal应用程序或在某些情况下另一个bootloader。当涉及到嵌入式时,bootloader通常与底层SoC体系结构密切相关。bootloader通常存储在一个受保护的、非易失性的片上存储器中。通常bootloader执行各种硬件检查,初始化处理器和配置SoC寄存器等。由于bootloader的主要目的是加载下一个软件,因此它。

2023-04-28 15:19:18 1040

原创 顶层Makefile学习记录

make xxx_defconfig 的过程make am64x_evm_r5_defconfig O=./testbuild V=1make -C /home/wzx/ti-processor-sdk-linux-am64xx-evm-08.06.00.42/board-support/u-boot-2021.01/testbuild KBUILD_SRC=/home/wzx/ti-processor-sdk-linux-am64xx-evm-08.06.00.42/board-support/u-b

2023-04-28 15:08:37 194

原创 U-Boot命令

U-Boot的本质工作是引导Linux,常用bootz、bootm和boot来启动Linux。md:用于显示内存值,注意U-Boot中的命令都是十六进制,10=>0x10 是十进制的16。mm:也用于修改指定地址内存值,修改内存值的时候地址会自增。fstype:用于查看MMC设备某个分区的文件系统格式。内存操作:md nm mm mw cp cmp。fatload:将指定的文件读取到DRAM中。mw:用于使用一个指定的数据填充一段内存。cmp:比较两个内存的数据是否相等。nm:用于修改指定地址的内存值。

2023-04-28 14:56:52 664

原创 Step Port U-Boot(AM64x)

TI AM64x soc通常由通过I2C接口连接的外部电源管理IC (PMIC)提供。PMIC在满足数据表要求的电压下为SoC供电。一般情况下,最小设备树应包含串口、直接参与引导过程的外设(如GPMC、DDR、MMC、SPI等)和用于PMIC连接的I2C模块。

2023-04-24 20:44:00 378

原创 How to use CCS to debug a running M4F core that was started by Linux?

在CCS中构建remote core project(ipc_rpmsg_echo_linux_am64x-evm_m4fss0-0_freertos_ti-arm-clang)启动AM64 Target Configuration. Connect to the core BLAZAR_Cortex_M4F_0, Load Symbols。接下来在CCS端进行Debug,选择hello_world_am64x-evm_m4fss0-0_nortos_ti-arm-clang例程。

2023-04-12 21:38:29 476

原创 Flash Linux to eMMC

实验目的:从eMMC启动Linux系统。

2023-04-09 11:11:43 1049

原创 Memory Map

主要介绍AM64x的MSRAM和DDR的内存分布:MSRAM:总共2MB,被分成8个banks,每个256KB。首先了解一下,两种Domain:微控制器单元域(MCU域)是一个“chip-in-a-chip”的概念,它使用操作。这使得MCU域可以,而,包括设备其余部分处于复位或下电状态的时间。MCU Island集成了通信外设,如SPI, I2C和UART,这些外设预计用于安全关键通信,因此如果主SoC出现故障,MCU Island可以将此信息通信到系统的其余部分。

2023-04-07 10:34:43 467

原创 板子具体型号查看

【代码】板子具体型号查看。

2023-04-06 14:45:32 305

原创 GDB远程调试

Host端GDB加载需要调试的程序,注意 -g参数。Host 进入GDB程序,启动远程连接到开发板。在开发板上启动gdbserver。

2023-02-25 11:24:59 199

原创 Sitara™处理器的产品开发路线图

一般情况下,会存在四个主要的发展阶段,其中TI EVM为我们提供了良好的软硬件基础,可以在不同的阶段进行参考和验证。

2023-02-15 21:38:43 356

原创 CSS使用过程中遇到的问题

问题记录

2023-01-21 08:27:21 107

原创 boot

boot

2022-12-11 19:57:13 130

原创 IPC for AM64x

AM64x处理器有两个双核Cortex-R5F子系统(R5FSS)和一个Cortex-M4F子系统,此外还有一个双核Cortex-A53子系统。正常情况下,引导加载程序(U-Boot/SPL)引导A53并使用HLOS(Linux/Android)加载。然后A53引导R5和M4F核心。本文适用于在Cortex A53内核上运行Linux的AM64x用户。目标是帮助用户了解如何与R5F和M4F核心建立通信。这个任务有很多方面:构建、加载、调试、内存共享等。本文打算采取循序渐进的步骤来理解所有这些部分。

2022-12-01 20:58:58 557

原创 System Firmware

系统固件是一个集合术语,用于描述TI基础安全(TIFS)和资源管理(RM)/电源管理(PM)服务。系统固件在AM64x上的安全管理器和设备管理器核心(DMSC)上执行。

2022-11-29 12:38:17 1645

原创 Kernel Performance

preformance

2022-11-27 19:36:09 79

原创 GP to HS-FS Migration Guide(TI AM64 GP EVM)

GP to HS-FS Migration Guide(TI AM64 GP EVM)

2022-11-26 20:50:27 129

原创 Build U-Boot(基于TI AM64)

Build U-Boot(基于TI AM64)

2022-11-26 17:12:08 1147 1

原创 DDRSS ECC(含bw_mem test ,ecc_enable and ecc_disable)

DDR subsystem(DDRSS)是由DDR controller、DDR PHY 和wrapper logic构成。为了保证SDRAM数据的完整性,DDRSS桥支持对写入或从SDRAM读取的数据进行内联ECC。ECC对所有在ECC保护地址范围内的访问进行计算。1位错误可通过ECC纠正,2位错误不可纠正,将被软件视为不可恢复错误并触发异常。

2022-11-25 21:29:15 663

原创 Texas Instruments 处理器资料导航(TI AM64x)

导航资料

2022-11-22 20:19:38 835

原创 ARM启动过程中的spl

spl是一个十分小的bin文件,主要用来引导主u-boot。

2022-11-21 19:28:07 463

原创 用户态和内核态相关问题

用户态和内核态相关问题

2022-07-11 15:43:33 238

原创 C利用宏求结构体成员的偏移/根据成员的地址求得结构体的地址

利用成员变量的地址求结构体的地址

2022-07-11 15:21:47 262

原创 python文件字符串操作

使用多个分隔符分割字符串import re a='Beautiful,is;better*than\nugly' re.split(';|,|\*|\n',a)按行读取文件,如何去掉换行符"\n"for line in file.readlines(): line=line.strip('\n')

2021-12-01 10:37:34 88

原创 学习记录-Linux图形栈:基于DRM和Wayland

基本概念1.Wayland:显示服务器,是一种协议2.Weston:是Wayland协议的的实现3.drm又包括:drm framebuffer: 它是一块内存区域,我把它理解为一块画布,驱动和应用层都能访问它plane: 图层crtc: 读取当前扫描缓冲区的像素数据,生成视频模式定时信号.它对内连接 Framebuffer 地址, 对外连接 Encoder。它会扫描你画布(Framebuffer)上的内容,叠加上 Planes 的内容,传给 Encoder。encoder: 将内存

2021-11-21 21:38:16 1342

原创 学习记录-std::shared_ptr

概述std::shared_ptr<T>提供一种多个栈对象协作管理同一个堆对象的机制。以便在堆对象没有被引用的情况下将其free。std::shared_ptr<T>的重要字段:_Ty *_Ptr; //被管理的动态内存指针_Ref_count_base *_Rep; //计数器基类指针,用于指示有几个shared_ptr共享_Ptr指向的对象shared_ptr是一种智能指针(smart pointer),作用有如同指

2021-11-21 21:37:41 933

原创 调试记录-<command-line>: error: unable to find numeric literal operator ‘operator““x‘

/home/jing/wzx/XRT/src/runtime_src/ert/scheduler/scheduler.cpp: In function 'bool ert::cu_stat(ert::size_type)':<command-line>: error: unable to find numeric literal operator 'operator""x'/home/jing/wzx/XRT/src/runtime_src/ert/scheduler/scheduler.c

2021-11-18 11:10:06 489

原创 学习记录-Linux内核模块查看命令

概述内核模块是Linux提供的一种机制,允许在内核运行时动态加载进内核中,具有两个特点:内核模块本身不编译入内核映像,有效控制缩减内核镜像的大小内核模块一旦被加载,就和内核中的其他部分完全一样内核模块的作用:设备驱动是以独立的modules的形式存在的,设计的驱动需要包含在Module内部。Module编译完成后,会生成ko文件,可安装可卸载。ldd:显示应用程序(二进制程序)所依赖的库文件ldd /bin/lsxilinx 开发版显示:root@xilinx-zcu104-20

2021-11-15 15:21:22 1288

原创 学习总结-编写自己的CMakeLists.txt

cmake_minimum_required(VERSION 3.3)get_filename_component(COMPONENT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME)project(${COMPONENT_NAME})find_package(OpenCV COMPONENTS opencv_core opencv_video opencv_videoio opencv_imgproc opencv_imgcodecs opencv_highgui)i

2021-11-14 19:48:06 2658

原创 学习记录-class与namespace的区别

在C++中,structure和class几乎是完全相同的,区别在于structure默认是public,而class默认是privatenamespace则与上面两种完全不同,namespace仅仅是一块有名字的逻辑区域,其内部有变量和函数等namespacenamepace的作用是避免程序中的命名冲突,传统的C++程序是只有一个namespace,现在的程序越来越复杂,为了防止程序员在合并不同程序时出现函数、类、结构体等命名的重复,所以用到命名空间。名字空间包含类、函数、常量和模板声明等名字空间

2021-11-14 11:42:54 1223

原创 学习记录-static,inline修饰函数的作用

staticstatic修饰的函数叫静态函数,根据其出现的地方可以分为以下两类:1.静态成员函数:出现在类内,作用是调用这个函数不会访问或者修改任何对象数据成员2.全局静态函数:用static修饰的函数,限定在本源码文件中,不能被本源码文件以外的代码文件调用因此定义静态函数有以下好处:其他文件中可以定义相同名字的函数,不会发生冲突。静态函数不能被其他文件所用inline内联函数,即在线函数或编译时期展开函数。程序中使用inline关键字修饰的函数,编译阶段时在函数的调用点把inlin

2021-11-14 11:20:34 645

原创 学习记录-交叉编译环境的设置

# Check for LD_LIBRARY_PATH being set, which can break SDK and generally is a bad practice# http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN80# http://xahlee.info/UnixResource_dir/_/ldpath.html# Only disable this check if you are ab

2021-11-10 22:31:12 1565

原创 学习记录-CmakeLists.txt

## Copyright 2020 Xilinx Inc.## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2

2021-11-10 22:30:54 2767

二进制文件查看的利器

Binary Viewer是二进制的Windows实用工具允许你打开任何文件位置(在您的计算机上任何格式文件)。它能显示数据以十进制,八进制,十六进制和文本(ASCII码或统一的字符编码标准)的格式。支持交替数据流,同时在文件中也提供搜索功能,保存文件复制/粘贴/文件至剪贴板。二进制友好用户界面,支持大型文件(4 GB),又有一个小的内存。

2020-12-01

卷积神经网络资料,供学习参考

包含alexnet.pdf batchnorm.pdf CNN.pdf resnet.pdf resnet2.pdf visualzing.pdf yolo4.pdf等7个PDF文件,仅供学习参考

2020-11-30

空空如也

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

TA关注的人

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