chengwenyang
码龄15年
关注
提问 私信
  • 博客:227,308
    227,308
    总访问量
  • 20
    原创
  • 1,377,646
    排名
  • 74
    粉丝
  • 0
    铁粉

个人简介:fuck the hole

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2009-09-04
博客简介:

chengwenyang的专栏

查看详细资料
个人成就
  • 获得105次点赞
  • 内容获得57次评论
  • 获得502次收藏
  • 代码片获得295次分享
创作历程
  • 4篇
    2021年
  • 9篇
    2017年
  • 5篇
    2016年
  • 1篇
    2015年
  • 1篇
    2014年
  • 2篇
    2013年
成就勋章
TA的专栏
  • Linux kernel
    7篇
  • usb
    1篇
  • stm32
    2篇
  • libusb
    2篇
  • Nuttx
    8篇
  • file-syste
  • 字符设备驱动
    1篇
兴趣领域 设置
  • 网络空间安全
    安全架构
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

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

【无标题】ubuntu添加文件到mkinitramfs命令生成的initramfs中

在qemu下使用gdb可以很方便地debug kernel,但是有时候需要虚拟机系统里面传输可执行文件或者kernel module。可以有很多种方法实现,这里介绍一种最简单是方式,直接将文件打包到initramfs中。本文演示在ubuntu系统上如何将一个文件打包到initramfs中。添加initramfs的钩子文件,该文件说明mkinitramfs命令如何把我们的文件添加到initramfs中。在/usr/share/initramfs-tools/hooks/目录下,添加一个新的文件,比如/u
原创
发布博客 2021.12.28 ·
1680 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

github的token使用方法

github的token使用方法今天从本地向github push代码发,失败了。错误消息如下:remote: Support for password authentication was remove on August 123, 2021. Please use a personal access token instead.原因是github不再使用密码方式验证身份,现在使用个人token。本文记录,如何生成token在命令行下怎样使用tokengithub如何生成token
原创
发布博客 2021.09.02 ·
77234 阅读 ·
33 点赞 ·
8 评论 ·
146 收藏

linux kernel signal机制(X86_64)

1. 概述应用程序注册信号,信号事件发生后,内核将信号置为pending状态,在中断返回或者系统调用返回时,查看pending的信号,内核在应用程序的栈上构建一个信号处理栈帧,然后通过中断返回或者系统调用返回到用户态,执行信号处理函数。执行信号处理函数之后,再次通过sigreturn系统调用返回到内核,在内核中再次返回到应用程序被中断打断的地方或者系统调用返回的地方接着运行。如果应用程序没有注册对应的信号处理函数,那么信号发生后,内核按照内核默认的信号处理方式处理该信号,比如访问非法内存地址,发生SI
原创
发布博客 2021.06.15 ·
2389 阅读 ·
6 点赞 ·
4 评论 ·
29 收藏

X86_64处理器系统调用机制在linux上的实现

syscall (X86)硬件机制X86 64位flat模式提供了快速系统调用硬件机制。使用syscall指令触发系统调用,CPU从用户态(Ring3)切换到特权态(Ring0),使用sysret指令,CPU从内核态切换到用户态。注意:sysret指令和iret指令是CPU从内核态切换到用户态的两种方式syscall 指令执行sysenter指令,发生系统调用时,CPU硬件执行以下动作:把MSR_LSTAR寄存器中的值加载到RIP寄存器,并把当前程序运行的下一条指令(即sysenter
原创
发布博客 2021.06.11 ·
1500 阅读 ·
3 点赞 ·
6 评论 ·
6 收藏

Qemu运行Linux0.01

1. windows模拟器运行Linux0.01三年前尝试过在windows上使用模拟器运行Linux0.01, 简单记录了一下操作过程,参考windows模拟器运行Linux0.01。2. Linux上使用Qemu运行Linux0.01在Linux机器上,使用Qemu运行Linux0.01,这部分工作国外很早就有人做过了,但是在国内,由于互联网管制,百度搜索里几乎没有相关的资料,为了学习者的方便
原创
发布博客 2017.08.19 ·
3003 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

linux0.01 qemu文件

发布资源 2017.08.19 ·
gz

sp racing f3 circuit

发布资源 2017.05.28 ·
pdf

Nuttx romfs与启动脚本rcS

稍等发表
原创
发布博客 2017.05.13 ·
4404 阅读 ·
7 点赞 ·
2 评论 ·
28 收藏

Nuttx 字符设备驱动

Nuttx采用VFS,和linux一样的设计思路,一切设备皆文件。Nuttx系统可以在nsh终端下通过”ls /dev”查看系统已注册的设备。对设备的操作就是对文件的操作。Nuttx下的设备驱动就是实现这种对文件操作的接口,屏蔽了对设备本身的访问的复杂性,呈现简单的接口,如open(), read(), write()等。字符设备是指在I/O传输过程中以字符为单位进行传输的设备,如键盘、鼠标、以及一
原创
发布博客 2017.05.11 ·
4039 阅读 ·
6 点赞 ·
0 评论 ·
25 收藏

Nuttx signal

Signal基本数据结构和信号掩码说明信号相关主要数据结构struct sigactq{ FAR struct sigactq *flink; /* Forward link */ struct sigaction act; /* Sigaction data */ uint8_t signo; /* Signal associ
原创
发布博客 2017.05.10 ·
1716 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

stm32f103实现Pixhawk PPM

发布资源 2017.05.05 ·
rar

Nuttx 工作队列 work queue

在Linux操作系统中,工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。Nuttx操作系统中工作队列的实现和在Linux中类似,Nuttx在内核中创建了内核线程,用于调度执行工作队列中的任务,在工作队列中允许任务睡眠。Nutt
原创
发布博客 2017.04.19 ·
3051 阅读 ·
3 点赞 ·
0 评论 ·
16 收藏

Nuttx watchdog 看门狗

看门狗是Nuttx中实现的一种定时器,该定时器底层基于硬件定时器,通过设置硬件定时器的定时触发来驱动看门狗。看门狗为系统提供了精确定时执行回调任务的机制。注册底层硬件定时器注册硬件定时器系统在启动初始化过程中,通过void up_initialize(void)函数调用void up_initialize(void),在up_initialize()函数中初始化硬件定时器,作为watchdog的底层
原创
发布博客 2017.04.18 ·
1396 阅读 ·
2 点赞 ·
0 评论 ·
6 收藏

Nuttx FS

This article present how the FS in Nuttx works, we will use fat fs as the example to explain it, at the last, this article shows the mount process of MMC block driver.inodeinode is one of the basic dat
原创
发布博客 2017.04.17 ·
1044 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Nuttx操作系统信号量Semaphore

Nuttx 操作系统信号量SemaphoreNuttx系统中采用信号量来同步线程,保护临界资源。与linux系统中对信号的使用方法类似,Nuttx系统中对信号量的操作包括以下几种:sem_initsem_waitsem_postsem_trywaitsem_timedwaitsem_getvaluesem_destory上面的方法是对信号量操作的基本方法。Nuttx系统还提供了对”有名”
原创
发布博客 2017.04.17 ·
2122 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

Nuttx mount SD card

config Nuttx ROTS to support SD card for stm32
原创
发布博客 2017.03.29 ·
1373 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

6410 linux DM9000收包机制

中断接收DM9000网卡注册的中断函数为dm9000_interrupt(),该中断函数调用dm9000_rx()从网卡的buffer中读取接收到的数据,将数据接收到skb中之后,调用netif_rx()处理该数据包,最后的结果是将数据包传递给上层处理。我们看看netif_rx()函数代码主要部分:int netif_rx(struct sk_buff *skb){ int ret;
原创
发布博客 2016.08.11 ·
1063 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

STM32实现Pixhawk PPM

功能: 将遥控器输出并行(8通道)信号转换成 pixhawk 可以识别的串行(1通道)信号主控: stm32f103c8t6输出频率: 50Hz 固件更新方式:串口更新PPM固件。将来升级成USB更新方式。参考网址:https://item.taobao.com/item.htm?spm=686.1000925.0.0.r5TFEg&id=533239444703可在参考网址中和卖家联系获取
转载
发布博客 2016.06.06 ·
5759 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏

windows install libusb driver

下载libusblibusb 可以从 http://libusb-win32.sourceforge.net 处下载,32位系统和64位系统均可以用,例如下载libusb-win32-bin-1.2.6.0。安装下载文件后解压缩,进入libusb-win32-bin-1.2.6.0\bin目录,运行inf-wizard.exe,选择你将要安装驱动的USB的VID和PID,为该USB生成inf(inf
原创
发布博客 2016.06.06 ·
15347 阅读 ·
2 点赞 ·
11 评论 ·
4 收藏

STM32自定义HID设备块传输+libusb上位机程序

发布资源 2016.04.02 ·
zip
加载更多