linuxweiyh
码龄9年
关注
提问 私信
  • 博客:621,084
    社区:719
    621,803
    总访问量
  • 152
    原创
  • 1,598,276
    排名
  • 169
    粉丝
  • 2
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2016-01-29
博客简介:

linuxweiyh的博客

查看详细资料
个人成就
  • 获得326次点赞
  • 内容获得65次评论
  • 获得1,300次收藏
  • 代码片获得993次分享
创作历程
  • 1篇
    2022年
  • 14篇
    2021年
  • 19篇
    2020年
  • 22篇
    2019年
  • 56篇
    2018年
  • 55篇
    2017年
  • 17篇
    2016年
成就勋章
TA的专栏
  • Python
    4篇
  • 软件工程
    2篇
  • C/C++
    1篇
  • Linux MMC 驱动
    1篇
  • 常见问题
    1篇
  • Linux内核深度解析
    4篇
  • printf
    1篇
  • ARMv8
  • Eclipse
    1篇
  • STM32MP157
    1篇
  • 操作系统Linux
    16篇
  • ARM
    1篇
  • Java
    1篇
  • Android
    3篇
  • GSM/GPRS
    1篇
  • C语言
    9篇
  • 硬件
    4篇
  • 存储
    1篇
  • uC/OS-III
    21篇
  • 编程
    1篇
  • Qt
    8篇
  • 总线
    2篇
  • FreeRTOS
    7篇
  • 嵌入式Linux
    35篇
  • Ubuntu
    3篇
  • Zephyr
    2篇
  • busybox
    2篇
  • USB
    1篇
  • STM32
    3篇
  • Keil
    2篇
  • 面试题
    2篇
  • rootfs
    2篇
  • uboot
    7篇
  • Makefile
    3篇
  • IAR
    1篇
  • Linux驱动
    4篇
  • u-boot
    15篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Python open 默认编码修改

如果在 Windows 平台使用 Python,很多时候 open 函数的默认编码方式是 gbk,如果是自行编码,可以通过 encoding 参数来修改为 utf-8,但当与他们合作开发或引用第三方库时,修改每一个open 的参数成本参数过高。当前有以下几种解决办法:1. 更改默认的编码方式>>> import _locale>>> _locale._getdefaultlocale = (lambda *args: ['en_US', 'utf8'])
原创
发布博客 2022.05.02 ·
4686 阅读 ·
0 点赞 ·
2 评论 ·
1 收藏

17 需求分析是什么?怎么分析?

什么是需求分析? 需求分析就是一个将用户需求变成产品需求的过程。怎么做需求分析? 软件项目的用户需求分析过程不是一成不变的,是迭代进行的,如下所示:收集需求:对用户需求进行进行收集整理 分析需求:对需求进行分析,挖掘用户真实需求 需求评估:筛选过滤掉不可行的需求 需求设计:针对用户需求提出解决方案,设计成产品方案 验证需求:验证方案是否可行分析用户需求的三个层次:表层需求、深层需求、底层需求。...
原创
发布博客 2021.12.09 ·
1529 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

怎样才能写好项目文档

怎样才能写好项目文档
原创
发布博客 2021.12.09 ·
1707 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

标准C函数库和POSIX函数库的关系

转载地址:标准C函数库和POSIX函数库的关系_smstong的成长轨迹-CSDN博客The C POSIX library is a specification of a C standard library for POSIX systems. It was developed at the same time as the ANSI C standard. Some effort was made to make POSIX compatible with standard C; POSIX in
转载
发布博客 2021.10.25 ·
918 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

sdhci.h

struct sdhci_host { /* Data set by hardware interface driver */ const char *hw_name; /* Hardware bus name */ unsigned int quirks; /* Deviations from spec. *//* 在复位前需要设置时钟 *//* Controller doesn't honor resets unless we touch the clock register */#d.
原创
发布博客 2021.05.25 ·
584 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Ubuntu安装vmtools后,Window无法向其复制文件

问题描述Window10安装VMware 15,VMware中安装了Ubuntu 18.04(或者Ubuntu 20.04),在Ubuntu中安装完vmtool后,发现从Windows向Ubuntu中复制文件或内容。解决办法不使用官方提供的vmtool,使用开源的vmtool。sudo apt install open-vm-tools-desktop fuse...
原创
发布博客 2021.03.28 ·
2129 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

内存管理之内存映射——概述

内存映射是在进程的虚拟地址空间中创建一个映射,分为以下两种:文件映射:文件支持的内存映射,把文件的一个区间映射到进程的虚拟地址空间,数据源是存储设备上的文件。 匿名映射:没有文件支持的内存映射,把物理内存映射到进程的虚拟地址空间,没有数据源。通常把文件映射的物理页称为文件页,把匿名映射的物理页称为匿名页。根据修改是否对其他进程可见和是否传递到底层文件,内存映射分为共享映射和私有映射:共享映射:修改数据时映射相同区域的其他进程可以看见,如果是文件支持的映射,修改会传递到底层文件。 私有.
原创
发布博客 2021.02.18 ·
1550 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

内存管理之物理地址空间

物理地址是处理器在系统总线上看到的地址。使用精简指令集(Reduced Instruction Set Computer,RISC)的处理器通常只实现一个物理地址空间,外围设备和物理内存使用统一的物理地址空间。程序只能通过虚拟地址访问外设寄存器,内核提供了以下函数来把外设寄存器的物理地址映射到虚拟地址空间:函数ioremap()把外设寄存器的物理地址映射到内核虚拟地址空间void *__ioremap(phys_addr_t offset, size_t size, unsigned lo.
原创
发布博客 2021.02.18 ·
974 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

内存管理之虚拟地址空间布局——用户虚拟地址空间布局

进程的用户虚拟地址空间的起始地址是0,长度是TASK_SIZE,由每种处理器架构自定义实现。ARM64架构定义的宏如下:32位用户空间程序:TASK_SIZE的值是TASK_SIZE_32,即0x100000000,等于4GB; 64位用户空间程序:TASK_SIZE的值是TASK_SIZE_64,即2的VA_BITS次幂字节(VA_BITS是编译内核时选择的虚拟地址位数)。arch/arm64/include/asm/memory.h#define VA_BITS (CONFIG_ARM6
原创
发布博客 2021.02.16 ·
341 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

内存管理之虚拟地址空间布局——虚拟地址空间划分

因为目前应用程序没有那么大的内存需求,所以ARM64处理器不支持完全的64位虚拟地址,实际支持情况如下:虚拟地址的最大宽度是48位:内核虚拟地址在64位地址空间的顶部,高16位是全1,范围是[0xFFFF_0000_0000_0000, 0xFFFF_FFFF_FFFF_FFFF]; 用户虚拟地址在64位地址空间的底部,高16位全是0,范围是[0x0000_0000_0000_0000, 0x0000_FFFF_FFFF_FFFF];高16位是全1或全0的地址称为规范的地址,两者之间是不规范的地
原创
发布博客 2021.02.16 ·
1431 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

CAN总线远程帧问题

最近被问到了CAN总线远程帧的问题,在网上搜索了很多资料,发现很多资料比较误导人,开始也误导我了,这里更正一下:1、所谓“远程帧”是一个传统翻译上的误区,Remote Frame实际上它的意义是“遥控帧”,发起方发起特定ID的远程帧(这里的远程帧是一个完整的帧,不仅包含帧ID,还有帧开始、帧结束、CRC等部分),那么与其ID相符的终端设备接收到该帧后,需要立即回复一个数据帧(这里是一个完整的数据帧,不是只有数据)。2、很多芯片厂商为了实现接收方能够快速回复远程帧,会在CAN总线发送、接收功能外,单独
原创
发布博客 2021.02.01 ·
1495 阅读 ·
1 点赞 ·
1 评论 ·
3 收藏

Ubuntu18.04 Python3报错:ModuleNotFoundError: No module named ‘Cryptodome‘的解决办法

在网上搜索了很多有关该问题的解决方案,基本上大同小异,但是试一个一个不行,个人觉得可能是跟系统的环境有关系,我的系统环境:Ubuntu 18.04 系统环境中既有Python2又有Python3 pip3(系统安装时是没有这个的,后来自己单独安装的:sudo apt-get install python3-pip)解决这个问题时只安装了pycryptodome包就可以了,命令如下:pip3 install -i https://mirrors.aliyun.com/pypi/simple p
原创
发布博客 2021.01.26 ·
6873 阅读 ·
1 点赞 ·
3 评论 ·
7 收藏

pip或pip3下载速度慢的问题

有时候在使用pip或pip3安装包时,下载速度很慢,解决办法如下:采用国内的源加载下载软件包;常用的源:豆瓣:https://pypi.douban.com/simple 阿里:https://mirrors.aliyun.com/pypi/simple安装命令:pip3 install -i https://mirrors.aliyun.com/pypi/simple 模块名...
原创
发布博客 2021.01.26 ·
1436 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Python中pip和pip3的区别

pip和pip3都是python中的包管理工具,他们的区别如下:如果系统中只安装了Python2,那么就只能使用pip。 如果系统中只安装了Python3,那么既可以使用pip也可以使用pip3,二者是等价的。 如果系统中同时安装了Python2和Python3,则pip默认给Python2用,pip3指定给Python3用。...
原创
发布博客 2021.01.26 ·
7382 阅读 ·
6 点赞 ·
0 评论 ·
5 收藏

printf() 中的 format 格式 %zu

printf()的语法格式为:%[parameter][flags][width][.precision][length]type%zu对照过来,z 属于 length 字段,u 属于 type 字段。该表达式用来表明输出格式是长度型(size_t)的无符号整型值。其中 size_t 在不同的位数操作系统中定义是不同的:/* 32位 */typedef unsigned int size_t;typedef int ssite_t;/* 64..
原创
发布博客 2021.01.22 ·
18007 阅读 ·
13 点赞 ·
0 评论 ·
26 收藏

Eclipse 设置行长度提示线

设置步骤(文字):Window --> Preferences --> General --> Editors --> Text Editors设置步骤(图):图1图2
原创
发布博客 2020.12.11 ·
470 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

第一个STM32MP157裸机程序

折腾了差不多3天时间,我的第一个STM32MP157裸机程序总算点亮了LED。环境:(1)PanGu开发板(2)Window10 + VMware(Linux,我这里使用的是Deepin 20,也可以使用Ubuntu 20)软件:(1)Windows:JDK(64bit)+ STM32CubeProgrammer(v2.5.0)(2)Linux:i2som-image-qt-openstlinux-eglfs-pangu-x86_64-toolchain-2.6-snapshot.s
原创
发布博客 2020.11.13 ·
1653 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

proc文件系统简介及/proc目录介绍

1.proc文件系统简介proc文件系统是由内核创建的虚拟文件系统,被内核用来向用户导出信息,通过它可以在Linux内核空间和用户空间之间进行通信。2./proc目录介绍/proc目录下有很多目录、文件,下面对一些常见的进行介绍:/proc/buddyinfo -- 每个内存区中的每个order有多少块可用,和内存碎片问题有关 /proc/cmdline -- 启动时传递给kernel的参数信息 /proc/cpuinfo -- cpu的信息 /proc/crypto...
原创
发布博客 2020.06.30 ·
1782 阅读 ·
1 点赞 ·
0 评论 ·
19 收藏

Linux内核深度解析之内核互斥技术——读写自旋锁

读写自旋锁读写自旋锁(通常简称读写锁)是对自旋锁的改进,区分读者和写者,允许多个读者同时进入临界区,读者和写者互斥,写者和写者互斥。如果读者占有读锁,写者申请写锁的时候自旋等待。如果写者占有写锁,读者申请读锁的时候自旋等待。读写自旋锁的定义:include/linux/rwlock_types.htypedef struct { arch_rwlock_t raw_lock; ...} rwlock_t;各种处理器架构需要自定义数据类型arch_rwlock_t,ARM6
原创
发布博客 2020.06.27 ·
1082 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

Linux内核深度解析之内核互斥技术——自旋锁

自旋锁自旋锁用于处理器之间的互斥,适合保护很短的临界区,并且不允许在临界区睡眠。申请自旋锁的时候,如果自旋锁被其他处理器占有,本处理器自旋等待(也称为忙等待)。进程、软中断和硬中断都可以使用自旋锁。目前内核的自旋锁是排队自旋锁(queued spinlock,也称为“FIFOticketspinlock”),算法类似于银行柜台的排队叫号。自旋锁的定义:include/linux/spinlock_types.htypedef struct raw_spinlock { arch..
原创
发布博客 2020.06.26 ·
441 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏
加载更多