口袋物联
作者: 口袋物联
主要从事Linux系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统
展开
-
am62x芯片安全类型确认(HS-SE, HS-FS or GP)
如下是从sk-am62x参考板上获取到的真实数据,值的一提的是,数据的第1个0没有打印出来,这个可以从后面的打印看出,它应该是每隔一定的时间,重新打印一次,中间打印C字符。但在获取SOC的类型时,需要从UART启动获取数据,需要将启动模式设置为UART启动。在开发过程中,一般设置启动方法为SD卡启动,如下设置。• HS-FS:高安全性 - 现场安全型。• HS-SE:高安全性 - 强制安全型。在SD卡启动文件中,可以查看到,我们可以通过给定的示例获取,如。但板上的芯片,到底是那种呢?有没有方法可以确认?原创 2024-06-20 12:08:10 · 225 阅读 · 0 评论 -
github安全问题token和sshkeys
一般在系统的~/.ssh/id_rsa.pub目录,如果没有,可能通过命令ssh-keygen生成,其中t表示加密类型,支持dsa | ecdsa | ed25519 | rsa | rsa1,最后通过cat ~/.ssh/id_rsa.pub或cat ~/.ssh/id_ecdsa.pub获取真正的密钥。在菜单中,选择点击“Personal access tokens”–>或“Tokens(classic)”按钮。依次输入Title、Key,最后点击点击“Add SSH key”按钮完成添加。原创 2024-06-19 18:38:08 · 318 阅读 · 0 评论 -
arm系统中双网卡共存问题
参考Linux C 获取主机网卡名及 IP 的几种方法。原创 2024-06-05 10:25:55 · 219 阅读 · 0 评论 -
Win10下CodeBlock实现socket TCP server/client
文章目录1 安装codeblock2 适配libws2_32.a库3 TCP socket工作原理4 代码实现服务端客户端5 运行效果1 安装codeblock官方免费下载值得一提的是,安装时,指定安装路径,其他默认安装即可2 适配libws2_32.a库默认安装,只有3个库,如果编译socket,需要专门的库libws2_32.a,可下载同时需要在项目中设置3 TCP socket工作原理4 代码实现服务端//server.c#include <stdio.h>原创 2024-06-05 09:51:30 · 200 阅读 · 0 评论 -
ubuntu系统下安装samba服务器
1 安装Samba服务 sudo apt-get install samba samba-common2 配置samba服务 vi /etc/samba/smb.conf security =user [myshare] comment = my share directory path = /home/skyworth/work browseable = yes wr...原创 2018-04-20 17:19:06 · 463 阅读 · 1 评论 -
systemd之journalctl
默认情况下(当 Storage= 在文件 /etc/systemd/journald.conf 中被设置为 auto),日志记录将被写入 /var/log/journal/。该目录是 systemd 软件包的一部分。如果该目录缺失,systemd 会将日志记录写入 /run/systemd/journal。Systemd是Linux发行版的初始化系统,负责启动系统后的所有服务,并监视它们在系统运行期间的状态。journalctl是Journal的主要接口,提供丰富的功能来检索和显示日志条目。原创 2024-02-04 16:25:18 · 24 阅读 · 0 评论 -
am62x edp屏调试
1 dtbo文件格式的了解2 pwm的类型及使用3 gpio配置的准确。原创 2024-05-09 15:51:10 · 70 阅读 · 0 评论 -
am62x A53与M4F通信
而在ipc_rpmsg_echo.c中,主要实现ipc_rpmsg_echo_main,该函数中,首先等待linux启动,然后注册一个回调函数,用来处理IPC_NOTIFY_CLIENT_ID_RP_MBOX信息 ,然后创建接收任务ipc_rpmsg_create_recv_tasks,用来处理RPMESSAGE_CHAR_PING和RPMESSAGE_PING。在/lib/firmware的真实固件名:,而我们生成的固件名如下所示,没有直接对应的,经确认,.out文件就是我们需要的,重命名后即可。原创 2024-04-30 11:02:04 · 580 阅读 · 0 评论 -
am62x A53与R5F通信
AM62x是Ti的一款异构多核芯片。remoteproc驱动,硬编码(写死)了R5F/M4F固件的名字,这样驱动启动时,就会找硬件编码的固件,下面是其对应关系。值得注意的是,linux内核中的M4F remoteproc驱动启动M4F,而linux内核中的R5F remoreteproc驱动不启动R5F,相反,它attach到已经在boot阶段启动的R5F固件上。在/lib/firmware的真实固件名:,而我们生成的固件名如下所示,没有直接对应的,经确认,.out文件就是我们需要的,重命名后即可。原创 2024-04-30 10:04:26 · 152 阅读 · 0 评论 -
am62x uboot启动流程及镜像组成(tiboot3.bin tispl.bin u-boot.img)
[1]AM62 Platforms[2]TIFS - TI Foundational Security Firmware - Consists of purely firmware meant to run on the security enclave.DM - Device Management firmware also called TI System Control Interface server (TISCI Server) - This component purely plays the原创 2024-04-28 18:03:19 · 192 阅读 · 0 评论 -
am62x MCU SDK编译环境搭建
选择MCU SDK下载。原创 2024-04-28 17:39:05 · 190 阅读 · 0 评论 -
am62x linux sdk环境搭建
PLATFORM 代表SDK支持设备的机器名称,此名称与Arago项目编译系统直接 相关ARCH代表机器的架构UBOOT_MACHINE当编译uboot时,配置正确的uboot源码TI_SDK_PATH,指向SDK目录DESTDIR指向应用或驱动存放的目录LINUX_DEVKIT_PATH 即linux-devkit目录,存放交叉编译器目录CROSS_COMPILE指定交叉编译器ENV_SETUP 指向linux-devkit目录下环境setup脚本。原创 2024-04-28 17:36:20 · 227 阅读 · 0 评论 -
am62x SD卡启动
下载镜像后,解压成wic格式文件,使用balenaEtcher工具制作SD启动卡。由原理图可知,经FT4232芯片,将CPU的4个串口引出。(2)连接USB power和USB uart。原创 2024-04-30 02:45:00 · 60 阅读 · 0 评论 -
am62x Ti官方资源一览
打开主页,最左侧显示如下,当前分为7大类Arm@-based microcontrollers Arm系列微控制器Arm@-based processors ARM系列处理器C2000 real-time microcontrollers C2000系列实时微控制器Delelopment Tools 开发工具mmWave radar sensors 雷达传感器MSP430 microcontrollers MSP430系列单片机Wireless connectivity 无线模块。原创 2024-04-29 00:00:00 · 62 阅读 · 0 评论 -
am62x yocto编译环境搭建
下载meta-qt5失败,经确认,meta-qt5是从github上下载,由于网络的限制,导致下载失败后,直接退出,1)尝试暂时注释掉meta-qt5(configs/processor-sdk/processor-sdk-09.0。processor-sdk-09.00.00-am62xxsip-config.txt),先下载其他的,成功。2)打开meta-qt5,重新尝试,直到下载成功。machine可以为。原创 2024-01-17 16:53:35 · 64 阅读 · 0 评论 -
3.3.17内核基数树radix_tree源码解析与示例分析
union {原创 2023-11-27 17:21:52 · 85 阅读 · 0 评论 -
3.3.5内核idr(ida)管理id大解密
IDR 提供将 ID 映射到指针的功能,常内嵌到数据结构中使用。IDA 只提供 ID 分配,因此内存效率更高。原创 2023-11-27 15:41:12 · 84 阅读 · 0 评论 -
3.3.4打开cpu初始化大门之cpumask
即为typedef struct cpumask {。原创 2023-11-25 23:18:20 · 304 阅读 · 0 评论 -
3.3.3 linux内核位图bit操作知多少( bitmap, bitops, bitmask, bit find)
/即set_bit(bit, addr)表示将addr的第bit位置1clear_bit(bit, addr) 表示将addr的第bit位置0change_bit(bit, addr) 表示将addr的bit位的翻转,即bit位为0时被置位,为1时则被清零test_bit(bit, addr) 表示返回addr第bit位的值test_and_set_bit(bit, addr)表示将addr的第bit位置1,并返回原始addr第bit位的值。原创 2023-11-25 21:04:02 · 242 阅读 · 0 评论 -
3.3.2 深度理解BITS_TO_LONGS函数
BITS_TO_LONGS定义在include/linux/bitops.h中,具体如下8sizeoflongsizeofsizeof而DIV_ROUND_UP的定义可以追溯到如下1即DIV_ROUND_UP意为向上取整,具体的数学解释可见参考【1】,此宏多用在存储数据的应用场景,如:n表示申请的存储空间的大小,d表示 存储空间增长的步长,通过此宏,可以得到正好容纳存放n的合适大小,不会有太多的冗余,即使申请的多了,也不会超过d,比如。原创 2023-11-25 16:25:31 · 127 阅读 · 0 评论 -
ubuntu环境删除qtcreator方法
不同的安装方法,对应不同的删除方法。apt-get或者dpkg。原创 2023-11-24 09:31:41 · 589 阅读 · 0 评论 -
3.3.1详解linux内核链表list_head及其接口应用
在一般的链表学习过程中,链表的数据结构组成,如下所示,通过增加next结点指针来实现数据的相连。void *data;但这样的缺点就是,实现链表与数据宿主耦合到一起,链表的数据组织(增删修改)不能重用,不同的数据,需要重复的造轮子。而将用户数据结构定义成如下形式,void *data;这样,sk_custom通过list_head的接口,进行链表的增删查,避免重复造轮子。// 定义一个链表// 用INIT_LIST_HEAD函数初始化链表。原创 2023-11-23 19:07:50 · 688 阅读 · 0 评论 -
13.3 uboot显示logo
【代码】13.3 uboot显示logo。原创 2023-11-23 16:02:01 · 431 阅读 · 0 评论 -
13.2 uboot适配ite6161驱动
文章目录1 ite6161工作原理2 ite6161适配驱动3 ite6161 dts适配4 uboot显示框架1 ite6161工作原理2 ite6161适配驱动3 ite6161 dts适配4 uboot显示框架原创 2023-11-23 15:54:59 · 54 阅读 · 0 评论 -
13.1 uboot适配pca9545
文章目录1 认识PCA95452 uboot驱动模型中的PCA95453 Uboot中识别PCA95451 认识PCA95452 uboot驱动模型中的PCA95453 Uboot中识别PCA9545原创 2023-11-23 15:50:15 · 84 阅读 · 0 评论 -
1.5.1 git/svn日志格式规范
规则1》小步提交,每个功能模块分别提交。modify 修改内容概述,一定要全面。scope 本次修改影响范围或重大改变。《规则2》源文件与修改文件,分别提交。修改内容全面,如背景、关联信息等。备注,如bug连接等。原创 2023-11-23 15:41:07 · 404 阅读 · 0 评论 -
15.1 自动化黑屏监测系统
python+opencv实现显示摄像头,截取相关图片,录取相关视频https://blog.csdn.net/weixin_51883798/article/details/132030733。python图像质量检测(一):黑屏检测。python识别视频黑屏或者低清晰度。原创 2023-11-23 15:35:53 · 97 阅读 · 0 评论 -
3.1 Linux时间子系统
从驱动层,给出timer和hrtimer的使用示例。分别从介绍各个模块初始化做了些什么工作。从应用层,分析其使用方法。timer驱动代码分析。原创 2023-11-23 15:24:41 · 36 阅读 · 0 评论 -
3.1.1 Linux时间子系统 timer示例使用
检查timer 状态是否为空,为真不为空。原创 2023-11-23 15:13:24 · 39 阅读 · 0 评论 -
3.1.2 Linux时间子系统 hrtimer示例使用
常用的结构体定义,有2种形式,一种是关键字struct 结构体形式,如下struct tag其中struct是关键字,tag是结构体名,member-list是结构体成员列表,variable-list是定义的变量列表tag、member-list、variable-list这3部分至少要出现2个,其实常用定义为如下形式struct 结构体名 {成员类型 成员名;//成员间用分号隔开 };//最后分号不能省略一种是关键字typedef形式,如下,tag可有可无成员类型 成员名;原创 2023-11-23 14:45:09 · 450 阅读 · 0 评论 -
1.2.1 C语言结构体初始化方法总结
常用的结构体定义,有2种形式,一种是关键字struct 结构体形式,如下struct tag其中struct是关键字,tag是结构体名,member-list是结构体成员列表,variable-list是定义的变量列表tag、member-list、variable-list这3部分至少要出现2个,其实常用定义为如下形式struct 结构体名 {成员类型 成员名;//成员间用分号隔开 };//最后分号不能省略一种是关键字typedef形式,如下,tag可有可无成员类型 成员名;原创 2023-11-23 14:35:15 · 589 阅读 · 0 评论 -
2yocto 自启动程序(服务)
单独为主程序创建服务,且设置如果启动失败,则2s后重新启动[Unit][Service][Install]可以配置为 inherit, null, tty, journal, syslog, kmsg, journal+console, syslog+console, kmsg+console, file:path, append:path, socket, fd:name。运行结果如下,从信息来看,确认第一次失败了,第二次成功了。原创 2023-11-09 18:28:50 · 296 阅读 · 1 评论 -
pca954x系列芯片对比(pca9543,pca9544,pca9545,pca9546,pca9547,pca9548)
pca954x系列芯片对比本文主要内容:1 pca9543 通用描述,原理框架,PDF下载连接2 pca9544 通用描述,原理框架,PDF下载连接3 pca9545 通用描述,原理框架,PDF下载连接4 pca9546 通用描述,原理框架,PDF下载连接5 pca9547 通用描述,原理框架,PDF下载连接6 pca9548 通用描述,原理框架,PDF下载连接7 pca954x 对比总结,PDF下载连接。原创 2023-11-03 10:09:15 · 483 阅读 · 0 评论 -
13.1 linux命令行查看控制串口(uart)全攻略
本文主要内容:1 串口启动驱动打印2 sys目录下的串口信息3 proc目录下的串口信息4 etc目录下的串口信息5 dev目录下的串口信息6 stty控制具体的串口7 命令行控制串口读写8 串口数据解析。原创 2023-11-01 17:29:00 · 1332 阅读 · 1 评论 -
3.3.8 linux控制内核打印printk demsg DEBUG
本文主要内容:1 列出内核打印级别2 修改内核打印级别方法1 编译时方法2 uboot时方法3 启动后3 DEBUG宏控制妙用4 内存中各种打印函数封装5 测试示例代码2 修改打印级别3 打印0 查看打印信息原创 2023-11-01 14:16:47 · 191 阅读 · 1 评论 -
12.2 一文读懂i2c-tools工具(i2cdetect、i2cdump、i2ctransfer)
i2c-tools,主要用来在应用层,实现对i2c设备的扫描、读取、写入等操作,常用于对i2c设备进行交互、调试、测试等。此工具集当前最新版本为4.3,主要包括i2cdetect 用于扫描I2C总线上的设备,并列出已连接的设备i2cget 用于从指定I2C设备的寄存器读取数据,只支持8位地址i2cset 用于从指定I2C设备的寄存器写入数据,只支持8位地址i2cdump 用于显示指定I2C设备的寄存器内容i2ctransfer,用于执行复杂的I2C传输操作,如多指定的读写。原创 2023-10-31 18:24:27 · 1939 阅读 · 1 评论 -
10.2 一文读懂SPI与DSPI、QSPI、OSPI关系与异同
1)标准SPI通过说的SPI,称为标准SPI,是一种串行外设接口,通过有4根线控制,CLK、CS、MISO、MOSI,可工作于4种模式,一般是主机连接外设,工作于主从模式,它经常与UART、I2C等类比。2)扩展SPI针对通过SPI连接的Nor Flash,经常工作在半双工状态,因此将MOSI和MISO扩展,用于加倍数据的传输。对于Dual SPI ,将MISO作为IO0,将MOSI作为IO1,这样一个周期内可以传输2bit的数据,从面加位数据的传输。原创 2023-10-31 17:11:14 · 5163 阅读 · 1 评论 -
12.1 怎样解压或读取wic文件内容
本文主要内容:1 什么是wic2 启动wic命令3 使用wic命令3.1 显示wic镜像内容3.2 取出wic镜像内容wic是OpenEmbedded推出的新的制作带分区的SD卡映像的工具,详细背景介绍:wic不是一个linux命令,它是一个python命令组,主要用于yocto项目打包镜像,故其一般在yocto工程中。如果只是使用wic命令,也可以单独下载。使用它的方法有2种:1)激活方式2)带路径运行使用wic命令帮助信息当前使用0.2.0版本,帮助信息打印如下,它支持list、ls原创 2023-10-31 16:12:37 · 476 阅读 · 1 评论 -
10.1 am62x平台怎么从ospi启动uboot
1)经查证,是因为当前使用的SDK版本是8.0,应该使用SDK9.0版本,下载SDK9.0版本的wic镜像,取出对应的镜像,具体可参考《》Ti的SK-AM62B评估板,通过OSPI接口,连接了一个Nor Flash:S28HS512TGABHM010,如下电路图。2)因为SD卡可以启动,故使用SD卡中的这3个镜像,通过如下命令,烧录镜像。其实也可以通过命令设置临时启动,如下所示,重启后,提示错误。1)Ti的AM62X芯片,uboot由3个镜像组成。3)重复上面2.3的步骤,启动成功。原创 2023-10-31 15:57:55 · 369 阅读 · 1 评论 -
什么是yocto(理清yocto poky openembedded bitbake间关系)
meta-openembedded 是从原来的 OpenEmbedded 中的 Recipes 中拆分出来的 Recipes 的一个集合。从与 Yocto Project 合作开始,OpenEmbedded 便以 OpenEmbedded-Core 项目作为项目发展的名称(简称 OE-Core),之前的称为 OpenEmbedded-Classic(简称 OE-Classic 或 oe-dev),OpenEmbedded 这个名字就用来代指整个 OpenEmbedded 项目。原创 2023-10-06 15:55:54 · 194 阅读 · 1 评论