- 博客(118)
- 收藏
- 关注
原创 ubi文件系统学习记录
UBI文件系统和镜像的制作及分区挂载说明_ubiattach-优快云博客【NAND文件系统】UBI介绍_ubi文件系统-优快云博客
2025-01-10 08:54:16
167
转载 在Linux中如何利用backtrace信息解决问题
在Linux中如何利用backtrace信息解决程序崩溃的问题_the backtrace does not contain enough meaningful f-优快云博客
2024-10-09 12:00:01
62
原创 libcurl、http学习
详解libcurl Easy interface API(C++) - 知乎 (zhihu.com)(转)libcurl库使用方法,好长,好详细。 - _浪潮之巅.☆ - 博客园 (cnblogs.com)详解HTTP四种请求:POST、GET、DELETE、PUT - 掘金 (juejin.cn)
2024-05-22 15:12:59
158
转载 linux 进程锁之文件锁lockf()
操作系统实验三——进程控制Lockf()-优快云博客Linux文件锁学习-flock, lockf, fcntl - blcblc - 博客园 (cnblogs.com)
2023-10-08 19:01:10
379
2
原创 stm32f407 ADC学习记录
采样率:ADC采样的频率,指ADC每秒可以对输入信号进行多少次采样,采样率越高,转换出来的信息将更接近原始信号,但转换时间也会增加。分辨率:ADC转换的数字值的位数,常用的有8位、10位、12位、16位等,分辨率越高,精度越高,但转换速度会受到影响。● 数据对齐以保持内置数据一致性(16位的数据寄存器存放12位的数据)连续转换:完成一次后自动开始下一次转换,不需要再次启动。单次转换:触发转换后转换一次就停下,等待下次触发;注入通道:相当于中断,可打断规则通道的执行。● 可配置 12 位、10。
2023-08-17 09:56:24
261
1
原创 stm32f4 DMA学习记录
DMA功能关键词:数据流;通道号:通过查询 DMA 请求映射表可以找到一个外设传输请求的数据流和通道号;传输方向选择:外设 ==> 存储器,存储器 ==> 外设,存储器 ==> 存储器;外设/存储器数据宽度:8位、16位、32位;单次传输或 4 个、 8 个和 16 个节拍的增量突发传输;传输优先级:低、中、高、非常高;...
2023-08-16 10:47:15
95
转载 【 Linux 】Systemd 使用说明
【 Linux 】Systemd 使用说明(1) - hukey - 博客园 (cnblogs.com)
2023-06-17 17:43:03
92
转载 linux /etc/fstab文件
(179条消息) linux /etc/fstab 文件详细说明(整理版)_小龙王2010的博客-优快云博客
2023-06-08 11:40:38
151
1
原创 Linux 常用shell总结
awk '{print $2}' $fileName : 一行一行的读取指定的文件, 以空格作为分隔符,打印第二个字段。chmod 777 /data -R: 对目前目录下的所有文件与子目录进行相同的权限变更。ln -s /root /home/guest: 为某一个文件在另外一个位置建立一个同步的链接。
2023-05-09 22:23:15
71
转载 NOR flash和NAND flash的区别
nor flash有独立的地址线,可随机读取每个字。nand flash有更快的写、擦除速度。nor flash有更快的读速度;nand flash擦写次数更多。norflash统一编址;nand容量更大,成本更低。nand公用地址线数据线。
2023-04-06 14:45:12
296
2
原创 网卡设备中DMA与Cache的一致性问题
2、DMA传输要注意与cache的一致性问题。必须保证DMA缓冲区中的数据时最新的。有两种方法:cache flush和cache invalidate。1、网卡等外设的DMA传输,要求缓冲区的物理地址必须连续。因为DMA硬件时直接和内存进行数据传输。1、只把更新的cache区标记为dirty,并不同步写入memory。2、只在cache区要更新新的数据时,才会更新memory。
2023-03-07 16:29:56
789
原创 glibc memcpy内部机制学习记录
4、剩余的不能采用word copy的尾部使用one byte by one byte进行拷贝。就为对齐之后的剩余大小了,之后的处理方式直接按照虚拟内存页的大小来加快拷贝效率。判断需要拷贝的字节数是否大于临界值(16或8)。1、先进行内存对齐。假设要拷贝的目的地址如下所示。为拷贝目的地的起始地址 ,为拷贝目的地的结束地址,为内存中的对齐边界。
2023-01-31 18:58:32
412
原创 字符设备驱动之mmap、select
mmap,简而言之就是将内核空间的一段内存区域映射到用户空间。映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,相反,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间与用户空间两者之间需要大量数据传输等操作的话效率是非常高的。当然,也可以将内核空间的一段内存区域同时映射到多个进程,这样还可以实现进程间的共享内存通信。
2023-01-30 17:48:29
619
1
原创 sja1000 CAN驱动学习、调试记录(基于PeliCan Mode)
BasicCAN Mode:仅支持11位的ID。在扩展模式下,允许使用 11 位 ID的标准帧和29位ID的扩展帧(是标准帧还是扩展帧由 TX帧信息的最高位IDE位确定)。二、硬件介绍硬件框图、寄存器地址分配2.1TRANSMITBUFFER(TXB)传输缓冲区是CPU和比特流处理器(BSP)之间的一个接口,它能够存储一个完整的消息,以便通过CAN网络进行传输。该缓冲区有13个字节长,由CPU写入,并由BSP读出。
2022-12-11 22:07:34
4815
1
原创 usb 驱动学习记录
(118条消息) Linux USB驱动开发_zqixiao_09的博客-优快云博客(118条消息) Linux USB 驱动开发(一)—— USB设备基础概念_zqixiao_09的博客-优快云博客_linux usb驱动开发(118条消息) usb中的endpoint(端点)和传输模式_zqixiao_09的博客-优快云博客
2022-09-14 19:47:33
290
转载 nand flash产生坏块
(66条消息) NAND Flash产生坏块原因_broadCE的博客-优快云博客_flash坏块产生的原因(66条消息) nand flash坏块管理OOB,BBT,ECC_zhandoushi1982的博客-优快云博客_oob 坏块管理
2022-04-20 17:04:20
686
转载 linux popen 函数详解
表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设...
2022-04-20 14:58:50
3812
转载 linux串口编程 select
(55条消息) linux串口编程 select_storyteller87的博客-优快云博客_linux 串口select
2022-04-04 11:10:43
621
转载 SylixOS内核打印调试方法
1.增加系统日志消息缓冲最大数量在使用printk的时候,经常会碰到已经加了打印语句,但是终端上却并没有显示出来信息这种情况,原因是系统默认的缓冲大小有限,而打印信息又比较多,从而导致后面的打印信息覆盖了前面的信息,造成打印丢失。解决方法是修改base中的LW_CFG_MAX_LOGMSGS这个宏,系统默认的值是20,其所在的文件路径为“libsylixos/SylixOS/config/system/system_cfg.h”,如下图所示:2.printk输出定向到文件本操作主要用于x86
2022-02-23 16:39:52
230
转载 sylixos pci 驱动踩坑记录
1、关于IO空间 memory空间 配置空间1.1、配置空间:PCI总线规范定义的配置空间总长度为256个字节,配置信息按一定的顺序和大小依次存放。前64个字节的配置空间称为配置头,对于所有的设备都一样,配置头的主要功能是用来识别设备、定义主机访问PCI卡的方式(I/O访问或者存储器访问,还有中断信息)。其余的192个字节称为本地配置空间,主要定义卡上局部总线的特性、本地空间基地址及范围等。一般我们需要关心配置空间中配置头的信息。配置头寄存器信息如下:Base Addr...
2022-02-11 18:47:22
500
原创 sylixos 线程调度最小时间间隔、内核线程简介
TICK的作用操作系统,Tick仿佛是人的脉搏,不停的向各个器官提供血液。 Tick在操作系统中,会进行调度,是分时调度最基础的组成部分。每次Tick中断,进行一次调度,先将计数加一,然后进行任务切换;在SylixOS 中,Tick以系统时钟为时钟源,采用芯片自带的Tick定时器或者通用定时器实现。系统TICK实现SylixOS Tick实现通常是采用通用定时器的周期性中断,一次中断表示一个tick。系统Tick的时钟频率可以通过API_KernelStartParam函数修改内核启动参数进
2022-02-09 12:50:14
534
原创 命令行输入16进制字符串
setchip COMMON_CFG1 0x444224400f13ffb以上是一个写寄存器值的shell命令。十六进制的数值传递到程序中是字符串。如何将这个64位的十六进制数由字符串转为可写入寄存器的数值呢? 答案是使用接口:unsigned long int strtoull(const char *str, char **endptr, int base) 参数说明:str-- 要转换为无符号长整数的字符串。 endptr-- 对类型...
2021-12-27 15:38:11
1373
转载 stm32h743 低功耗学习总结
(17条消息) STM32低功耗(STM32G0+HAL库+STOP模式+中断唤醒)_love421的博客-优快云博客_stm32g0低功耗(17条消息) stm32 HAL 低功耗模式_紫枫洛天的博客-优快云博客1.STM32低功耗一共有三种模式:(1)睡眠模式:功耗高,任意中断,任意事件唤醒(2)停机模式:功耗较低,可以任意外部中断和RTC闹钟唤醒(3)待机模式:功耗最低,但是只可以通过RTC唤醒,WKUP唤醒,NRST引脚复位,IWDG复位2.小白扫盲1)STOP模式下,
2021-12-03 10:26:29
1430
原创 stm32h743 FDCAN驱动踩坑记录
先放一张FDCAN控制框图镇贴:can 使用的是专门的外设时钟,所以要有相应的外设时钟配置和选择。关于波特率计算:代码中把位时序中的 BS1 和 BS2 段分别设置成了 31Tq 和 8Tq,再加上 SYNC_SEG段(固定为1Tq),一个 CAN 数据位就是 40Tq 了,加上 CAN 外设的分频配置为 1 分频, CAN 所使用的总线时钟 fPLL1Q = 40MHz,于是我们可计算出它的波特率:1Tq = 1/(40M) = 1/40 usT1bit = (31+8+1..
2021-10-28 19:52:17
3251
原创 stm32h743 定时器实现PWM功能踩坑记录
先用一张高级定时器框图镇楼定时器输出PWM,先要搞懂两个概念:定时器工作频率与定时器频率定时器工作频率 =外设总线频率/(PSC+1)假设外设总线频率是1MHZ,PSC是9,那么定时器工作频率是100KHZ,也就是启动后1秒计数10万次;定时器频率 = 定时器工作频率/(CNT+1)假设CNT是99,则定时器频率是1KHZ,也就是1秒计数1000次,每1ms(计数每数到100)产生一次溢出中断。PSC:预分频系数CNT:自动重装载值关...
2021-10-28 15:06:52
1204
原创 stm32h743 FM25CL64铁电存储器踩坑记录
调试FRAM经验总结:1、跑完FRAM读写代码之后,逻分仪发现总线上只有简单、短暂的电平变化,明显不是SPI的通信数据。(经提醒发现连片选拉高拉低都没有执行到位)后来发现是因为片选引脚没有初始化,所以直接拉高拉低是无效的。2、引脚成功初始化后发现CLK、MISO、MOSI数据仍不正常。通过加打印的方式发现跑到HAL_SPI_Transmit中之后还没有执行到写SPI数据寄存器的那一步就return了。后来经提醒发现:上图中的指针使用方式错误后来又发现:打印出来发现
2021-10-27 17:55:53
3055
1
原创 四线电阻触摸屏原理(仅作为学习记录)
转载自:http://www.elecfans.com/kongzhijishu/renjijiemian/596589.html四线电阻触摸屏原理_qlexcel的专栏-优快云博客_电阻触摸屏原理linux input子系统、驱动框架学习参考链接:(25条消息) linux驱动中probe函数是怎么调用的_夏天Alex-优快云博客_linux probeLinux Platform驱动模型(二) _驱动方法 - Abnor - 博客园 (cnblogs.com)Linux 获.
2021-09-02 11:28:45
730
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人