自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

巴德鸟

一只巴德鸟。

  • 博客(187)
  • 资源 (3)
  • 收藏
  • 关注

原创 git terminal 代理配置

【代码】git terminal 代理配置。

2023-03-19 18:32:53 228

原创 关闭Windows Defender实时保护,暂时关闭和永久关闭方法

暂时关闭Windows Defender实时保护点击开始→设置→更新和安全→Windows安全中心,打开Windows安全中心;点击主页→病毒和威胁防护或管理设置,关闭实时保护。这样就暂时关闭了实时保护,就算不重启也可能某个时候又自动打开了实时保护。永久关闭实时保护Win+r 输入regedit启动注册表编辑器;定位到以下路径计算机\HKEY_LOCAL_MACHINE\SOFT...

2021-05-15 09:41:44 46030 2

原创 数据结构与算法(C++) 单向循环链表loop_list 需要空节点 head指向它头插和尾插 Makefile 迭代器重载*和++

#include<iostream>using namespace std;template<class T> class LoopList;template<class T>class Node{friend class LoopList<T>;public: ~Node() { data.~T(); };/...

2021-05-15 09:41:30 325

原创 C++ 报错集合

[with T = int]’ is private within this context可能是class定义里忘了写public了。template<class T>class AAA{// public: AAA(const T& dat):data(dat) { } AAA() aaa(); bbb();private: T data;};...

2021-05-15 09:41:10 846

原创 数据结构与算法(C++) 双向链表 不循环 有head和tail节点指针,迭代器,

代码是双向不循环的链表,有head和tail节点指针,迭代器,#include<iostream>using namespace std;// #include<list>// 双向非循环链表// 包含了Node class、iterator class、List class// 节点 包含了 data数据 prev next指针// 迭代器 ...

2021-05-15 09:40:59 329

原创 常见库函数实现

文章目录memcpymemsetstrcpystrcatstrcmpstrlenstrncpymemcpy#include <iostream>#include <cassert>// #include <cstring>#include "test.h"using namespace std;// 返回值的目的是满足链式表达// ============================================================

2021-05-15 09:39:31 119

原创 virtualbox

文章目录virtualbox下载总目录安装virtualbox1 安装主程序(exe)2 安装扩展3 安装显示工具安装虚拟系统(ISO)教程:https://zhuanlan.zhihu.com/p/111567471?%E6%88%91%E6%98%AF%E5%82%BB%E9%80%BC=%E6%88%91%E6%98%AF%E5%82%BB%E9%80%BC&ivk_sa=1024320u一共需要4个文件,其中virtualbox需要下载3个文件、虚拟系统镜像1个。virtualbox下

2021-05-15 09:38:18 608

原创 MathType过期处理+mathpix为所欲为

mathpix下载: https://mathpix.com/

2021-05-15 09:37:42 1643

原创 C C++输入问题 cin.getline(a, 100)

文章目录字符串输入0. 字符串和string相互转化 str.c_str() string(s)1. C`scanf`读取是遇到 `空格` 或 `\0`就结束。`gets()` 输入无长度限制,读取`\n`末尾添加`\0` (`\n\0`)`fgets()` 取代getsgetchar()获取任何单个字符2. C++cin.getline() 和 cin.get()getline(cin, s);处理数字数字和字符相互转换to_string() stoi()1. C++读入一行位置个数的数字2. C字

2021-05-13 17:35:23 1180

原创 linux 命令行分区 文件系统 fdisk 安装QQ

# 查看有哪些盘ls -al /dev/sd*# 列出当前所有的盘 挂载信息 分区信息sudo fdisk -l# 删除分区 或者 新建分区,删除分区根据提示 m --- d ---- 1sudo fdisk /dev/sdb # sdb操作的是这块盘# 格式化 制作文件系统sudo .ext4 /dev/sdb...

2021-05-13 17:34:23 178

原创 GDB调试

linux下如何调试的(用gdb调试)命令行调试gdb基本全裸,在用gcc编译的时候加上 -g ,然后`gdb + 运行文件`,run开始,s (step),n (next),b (break),list 显示10行 list 24 显示第24行的前后5行clear lineNum 删除行号为lineNum处的断点clear function #删除函数名为function处的断点delete 删除所有断点file gdb-test1命令行 + 代码 gdb -tui穿了

2021-05-13 16:25:33 51

原创 烧写程序的多种方法,下载

烧写裸板程序oflash软件烧写通过OpenJTAG直接下载到Nor—Nand—RAMdnw USB下载首先通过zadig-2.3安装USB相关驱动在uboot运行的前提下,通过uboot参数设置下载到哪里,然后用dnw下载到对应存储器,开机选择正确的启动方式即可tftp下载烧写配置tftp服务端需要分享的目录,tftpd32.exe在uboot配置ipaddr和serverip...

2021-05-13 16:19:15 453

原创 WDS2期第32课 1 3.4.2内核下的I2C驱动之框架

文章目录时序,读写流程,总线设备驱动模型,虚拟的IIC驱动框架 分三层 设备驱动 总线驱动(核心层 适配器)IIC 总线设备驱动时序,读写流程,总线设备驱动模型,虚拟的IIC驱动框架 分三层 设备驱动 总线驱动(核心层 适配器)IIC 总线设备驱动左边注册一个设备,i2c_client右边注册一个驱动,i2c_driver比较名字id,相同则probe,在probe函数里为所欲为...

2021-05-13 16:17:44 84

原创 WDS2期第30课2.1 符号表 驱动调试之段错误分析 结合内核打印信息PC值 确定地址范围是属于内核还是加载模块的空间System.map 查看内核或模块反汇编文件

大致流程如下:结合内核打印信息PC值 ,确定地址范围是属于内核还是加载模块的空间 ,查看内核或模块反汇编文件需要详细栈回溯信息(栈里面函数的调用关系) 必须 在编译内核时 打开CONFIG_FRAME_POINTER驱动程序的调试一. 打印: prink, 自制proc文件UBOOT传入console=ttySAC0 console=tty1内核处理UBOOT传入的参数console_setupadd_preferred_console // 我想用名为"ttySAC0"的控制台

2021-05-12 09:28:44 324

原创 WDS2期第31课 2 app调试strace 应用调试gdb,另外的-安装某些库提示未定义找不到时处理 -I没有去编译库里找 根据结果修改头文件

gdb在pc运行,gdb-server在ARM 板子上运行,gdb-server是arm app的父进程。设置 host target编译gdb安装 到 tmp默认安装到pc机,可以改变安装目录,查看vi Makefile,修改默认安装目录的前缀,prefix编译gdb-server,进入server目录,头文件在 -I选项里找,还会在编译工具的库里找,如果提示在-I中找不到,查看系统变量编译工具库在哪里echo $PATH,然后进入编译工具所在的库,查找找不到的东西grep

2021-05-12 09:27:59 86

原创 WDS2期第30课 3 4 内核僵死 无法输入也没反应 当内核卡死时利用内核心脏时钟中断检查连续10s内都是同一个pid则就是这个进程出问题,pt_regs结构体保存R寄存器值,打印PC后回到前分析

在内核时钟中断中加入打印pid和进程名信息。当内核卡死时,利用内核心脏时钟中断处理函数检查连续10s内都是同一个pid则就是这个进程出问题。查看内核中断,30号中断是时钟中断,查找Timer Tick,在这里,中断处理函数,代码在这里卡死,打印出信息,...

2021-05-12 09:26:11 103

原创 WDS2期第30课2.2没什么东西

根据栈信息分析函数调用过程./firstdrvtest onUnable to handle kernel paging request at virtual address 56000050pgd = c3e78000[56000050] *pgd=00000000Internal error: Oops: 5 [#1]Modules linked in: first_drvCPU: 0 Not tainted (2.6.22.6 #48)PC is at first_drv_.

2021-05-12 09:24:26 61

原创 WDS2期第29课 1 2 3 裸板调试方法 点灯 串口 JTAG 重定位前的代码不能用源码级别的调试只能用汇编级别的调试,逐条指令调试。

裸板调试方 需要结合汇编源码点灯串口打印JTAGJTAG(Joint Test Action Group,联合测试工作组),主要用于芯片内部测试。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG位于CPU内部,当cpu与外设的地址信号,数据信号都要经过JTAG。电脑上的应用程序有 keil、ADS、openOCDJTAG调试器有Jlink、并口wigger、openJTAG。可以控制cpu,如,当地址信号 == xxx 时,让

2021-05-12 09:24:18 122

原创 WDS2期第27课 1 2 3 DMA 数据搬运工作 源 目的 长度 搬运完成产生DMA中断

DMA(Direct Memory Access,直接存储器访问)cpu命令DMA控制器,搬运工作由DMA控制器完成。如mic采集到数据存入自己的i2s中buff,满了之后产生DMA请求,DMA根据原地址目的地址长度拷贝数据。

2021-05-12 09:24:08 273

原创 WDS2期第24课 2 IIC Linux下驱动程序 i2c_driver结构体里有attach_adapter 用i2c总线驱动程序的i2c_transfer函数收发数据

1

2021-05-12 09:24:00 391

原创 WDS2期第24课 1 IIC 驱动框架 adapter和drv 最终drv的attach_adapter的i2c_probe中adapter.master_xfer确定设备然后function

APP: open read write-----------------------------------------------------------drv_open drv_read drv_write IIC设备驱动,知道数据含义 drivers\i2c\chip-----------------------------------------------------------I2C总线驱动程序: 1识别 2提供读写函数, 知道怎么收发数据 drivers\i2c\busses

2021-05-12 09:23:53 130

原创 WDS2期第23课 2 IIC 裸板程序

程序假设从nand启动,上电时nand前4k被自动复制到片内4K内存SRAM,head.S@******************************************************************************@ File: head.S@ 功能: 设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行@************************************************************************

2021-05-12 09:23:44 113

原创 WDS2期第23课 1 IIC(Inter-Integrated Circuit) 简单介绍 起始停止ACK

文章目录参考资料`IIC` 即**Inter-Integrated Circuit**(集成电路总线)6个通信信号器件地址寻址过程写数据读数据8bit数据传输完 ACK不一定有参考资料参考 面试总结,Linux中IIC驱动框架等参考 程序代码,传输流程理解IIC 即Inter-Integrated Circuit(集成电路总线)I2C总线是PHLIPS公司推出的一种串行总线。I2C总线只有两根双向信号线。一根是 数据线SDA,另一根是 时钟线SCL。起始信号 SCL为高时,SDA由高变低;

2021-05-12 09:23:34 308

原创 Atlas 200 DKcam 摄像头yolov3 opencv参数

项目github地址 https://github.com/Atlas200dk/sample-ascendcamera修改param_configure.conf内容为remote_host=192.168.0.2,编译完,运行,在Atlas侧的out目录下运行./workspace_mind_studio_sample-ascendcamera-1-3x-0-0 -v -c 0 --fps 20 -w 704 -h 576 -s 192.168.0.103:7002/qqq

2021-05-11 09:14:57 733 2

原创 WDS2期第22课 1 2 3 网卡DM9000C移植 配置基地址、中断、引脚时序时间(默认的可用,更快要调自己设置) 内存控制器 位宽与读取数据字节长度

1

2021-05-11 09:13:23 156

原创 WDS2期第21课 1 2 网卡驱动框架 模拟虚拟网卡接收sk_buff上报 一般网卡厂家都会给驱动程序,修改即可

文章目录比较字符设备 和 块设备网卡驱动网卡驱动框架网卡设备驱动编程步骤:程序一 虚拟网卡 注册设备 没做其他代码测试程序二 加入发送函数比较字符设备 和 块设备比较字符设备和块设备,字符设备。字符设备,首先在user中先open一个 /dev/xxx,块设备,首先挂接一个盘 mount /dev/xxx。主设备号fopsregister入口出口块设备,对普通文件的读写,通过文件系统最终转换成对扇区的读写,分配 gendiskalloc_disk设置,queue = blk

2021-05-11 09:12:49 195

原创 WDS2期第20课 3 nor驱动程序 只需硬件相关操作

文章目录第一个程序 简单框架 内核识别nor第一个程序代码简单测试第一个程序,插入能否识别nor第二个程序 添加了分区add_mtd_partitions第二个程序代码测试第二个程序 格式化 往nor分区写文件用内存模拟MTD flash 只是介绍无实验解析内核识别nor的过程cfi模式jedec模式参考drivers\mtd\maps\physmap.c。最后分析出我们配置硬件相关需要做:分配map_info结构体设置 物理基地址(phys)、大小(size)、位宽(bankwidth) 虚拟

2021-05-11 09:12:40 151

原创 WDS2期第20课 2 NOR FLASH 驱动框架 差异最小-基地址和位宽

文章目录nor flash驱动框架 分析配置内核支持nor flashnor flash驱动框架 分析协议层已经做好,需要配置的是硬件相关的设置,基地址和位宽。字符设备就找字符设备驱动程序,普通文件就找文件系统 找到块设备驱动,文件系统把对文件的读写转换成对块设备的读写。RAMblock,硬盘,MTD(nand(jedec cfi) nor)。nor 和 nand 的差异最小到基地址和位宽,所以可以通过配置使得通用,在drivers\mtd\maps\physmap.c中,入口函数 注册平

2021-05-11 09:12:31 182

原创 WDS2期第20课 1 NOR FLASH原理及硬件操作 nand nor比较 uboot测试norflash 读和内存一样 写需要进入program模式

搜索

2021-05-11 09:12:22 412

原创 WDS2期第19课 3 NAND驱动程序编写 cpu与nand的引脚电平时序对应,add_mtd_partitions,nfs启动-加载nand驱动-格式化nand-挂接

文章目录设置电平维持时间的寄存器,需要将cpu和nand对应看代码2 代码1是need_sth这里没有实验2 nand识别 没有add_mtd_partitions函数nand位反转 解决办法ECC码解决反转代码3 完善add_mtd_partitions函数测试代码3参考:drivers\mtd\nand\s3c2410.cdrivers\mtd\nand\at91_nand.c设置电平...

2021-05-11 09:12:12 241

原创 WDS2期第19课 2 NAND驱动框架

每一层专注自己的一小块,命令层关注 具体怎么收发,协议层关注 收发什么实现控制(识别 读写 擦除),块设备关注 优化工作(合并 调序等),字符设备直接调取mtd_info的read write就行。查看内核启动信息,从这里开始分析,drivers\mtd\nand\s3c2410.c"S3C24XX NAND Driver, (c) 2004 Simtec Electronics"...

2021-05-11 09:08:25 68

原创 WDS2期第19课 1 NAND原理及硬件操作 通过命令在uboot中操作NAND 连续发送5个周期的地址值

1

2021-05-11 09:08:18 278

原创 WDS2期第18课 3 块设备驱动程序 用内存模拟磁盘 电梯算法 读取写入 分区 格式化

文章目录程序1 用内存模拟磁盘 简单处理请求do_ramblock_request测试程序1 简单查看块设备信息程序2 分配内存作为模拟磁盘 磁盘和req->buffer之间拷贝数据测试程序2程序3 在读写时加了打印程序3测试程序3接着测试总结参考drivers\block\xd.c和drivers\block\z2ram.cls /dev/sd* -l 查看所有磁盘设备,次设备号为0的...

2021-05-11 09:08:08 158

原创 WDS2期第18课 1 2 块设备驱动程序 分析ll_rw_block底层读写块 文件系统将对文件的读写转化成对扇区的读写

文章目录总结字符设备驱动程序块设备驱动程序块设备驱动程序框架从ll_rw_block 开始分析 low level read-write block底层读写块怎么写块设备驱动程序总结字符设备驱动程序查询方式:在读函数中返回引脚状态,比较前后值。(cpu占用太高)休眠唤醒:用户读驱动读,没有数据休眠,有数据被中断服务程序唤醒然后copy_to_user。(没有数据则一直休眠)poll机制...

2021-05-10 22:29:09 145

原创 WDS2期第17课 3 4 USB设备驱动程序1简单编写 鼠标按键lse usb request block struct urb 总线驱动设备模型提供数据 设备驱动程序处理数据

如何写驱动程序USB总线驱动程序 在我们接入USB设备时会自动构建一个USBdevice并注册到bus的dev中。我们需要做的是构建driver驱动程序,将程序注册到bus中。如何写USB设备驱动程序:分配/设置usb_driver结构体.id_table 支持哪些设备.probe USB总线驱动程序发现设备后比较id,如果支持则probe.disconnect注册参考USB...

2021-05-10 22:28:28 103

原创 WDS2期第17课 2 USB总线驱动程序 接设备-测电平-生中断-分配编号-告知设备-取描述符-注册dev-放入bus的dev链表-读出drv-比较匹配-调用drv的probe

1

2021-05-10 22:28:17 76

原创 WDS2期第17课 1 USB驱动程序之概念介绍 电平 传输类型 USB驱动框架图 app->USB设备驱动程序->USB总线驱动程序->USB主机控制器->USB设备

1

2021-05-10 22:28:07 127

原创 WDS2期第16课 1 2 3 触摸屏 TS 打开ADC时钟 设置ADC的寄存器 采集电压 处理异常值 filter 上报事件 LCD和触摸对应 需要tslib库 校准触摸屏

文章目录打开ADC时钟 设置寄存器`CLKCON` bit15为1adc的分辨率,1bit刻度表示3.3/(2^10-1)=0.003v=3mv设置ADC的ADC/TS的寄存器,ADCCON寄存器ADCTSC寄存器 等待中断模式ADCDAT0寄存器程序一 实现按下松开测试触摸 按下和松开 (程序一)触摸屏ADC自动的ADC转换模式程序二 测量x y电压打印出来问题,返回值不连续,也无法滑动长按...

2021-05-10 22:27:57 354

原创 WDS2期第15课 2 3 4 LCD驱动程序之硬件操作 固定 可变参数 配置LCD控制器 LCD液晶时序和s3c的LCD时序,划内存做显存 调色板 输入子系统按键和LCD测试

文章目录第一个程序,不能用,只有步骤注释第二个程序,不能用,完成了一些步骤配置硬件相关设置LCDCON1:设置LCDCON2:设置LCDCON3/4:设置 LCDCON3,4设置 LCDCON5分配显存 用SDRAM代替第三个程序,调色板没有设置调色板第四个程序,基本完成但是我找不到s3c_lcd_fbinfo->fix.smem_start显存的物理地址测试1. make menuconf...

2021-05-10 22:27:47 204

原创 WDS2期第15课 1 内核LCD驱动层次分析 fbmem.c -- register_framebuffer -- 硬件 抽象出来的fbmem.c依赖底层硬件相关的数组registered_fb

内核自带的LCD驱动程序,在drivers\video\fbmem.c中,fbmem.c提供的都是抽象的,具体的实现依赖里边的数组registered_fb[iminor(inode)],fb帧缓冲区(Frame Buffer),可以看到以下步骤:majorfopsregister_chrdevclass_create没有 class_device_create...static...

2021-05-10 22:27:39 408 4

xv6-labs-2020.tar

MIT-6.S081的课程源代码xv6-labs-2020

2021-04-28

adb_安卓手机调试工具.zip

可以用于开启和关闭安卓手机系统更新提示

2021-03-02

NM-A271 REV-1.0 BIOS 和 烧写工具驱动.zip

解决联想G50-70开机不显示,不进bios,不显示Lenovo标志,屏幕背光微亮闪烁,电源亮 对应主板ACLU1/ACLU2 NM-A271 REV-1.0 。

2020-05-30

空空如也

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

TA关注的人

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