自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 USB通信学习-基础概念理解

1、USB是轮询总线,USB主机发起所有数据交换。数据往返于USB设备中的端点。USB主机输出使用OUT端点,USB主机输入使用IN端点。USB主机中没有端点,数据存储于缓冲区中。从主机的FIFO到设备的端点,中间是Pipes。全速USB传输中,固定的1帧时间为1ms,在高速USB中有将一帧分为了8个微帧,每个125us。USB数据层次从小到大分为域(field),包(packet),事务(transaction),传输(transfer),管道(pipes)。域是USB数据的最小单位,其实域就像我们CAN

2023-08-30 21:22:09 2329

原创 HDFS基础

而在运行的时候,随时间的推移会产生非常多的edit log,那么一旦Namenode重新启动,那么会花费非常多的时间来进行合并操作,而SecondaryNamenode就是用来帮助Namenode在其运行的时候替其合并edit log和fsimage 的。当Namenode启动时,它从硬盘中读取edit log和fsImage,将所有edit log中的事务作用在内存中的fsImage上,并将这个新版本的fsImage从内存中保存到本地磁盘上,然后删除旧的edit log。副本的存储策略:机架感知策略。

2023-06-23 23:33:01 1652

原创 C6678学习-IPC

IPC: Inter-Processor Communication 处理器间通信,指提供多处理器环境中的处理器之间的通信、相同处理器不同线程间的通信。包括数据传递、数据流和链表。在同一处理器上的其他线程在其他处理器上运行的SYS/BIOS线程GPP处理器上运行的SysLink的线程(例如Linux)QMSS(队列管理器):发送任务和内核之间的数据SRIO IPC:发送任务、内核和芯片之间的数据。

2023-05-03 16:02:53 1881

原创 C6678学习-EDMA

基于C66x的内核处理器主要具有两种DMA传输:IDMA、EDMA3。IDMA:只提供核内部(L1P、L1D、L2、CFG)的数据移动服务。C6678处理器中,IDMA具有两个通道。EDMA3:服务外部内存(比如DDR)、服务芯片内的内存(比如:L2 SRAM)、服务外设,比如:串口每一个EDMA3传输数据都是可以看做一个三维的数据,这个数据的大小由ACNT,BCNT,CCNT来描述。第1维或阵列(A):一个传输的第1维是由ACNT个连续字节。

2023-05-03 15:57:24 3715 1

原创 C6678学习-GPIO

C6678中共有16个GPIO,GPIO0~GPIO15。这些引脚的功能如下​ 通用输入输出管脚​ 中断&EDMA事件管脚。

2023-05-03 15:52:14 1319

原创 任务切换理解

举个例子,当你收到了一个串口中断,进入了中断服务函数,你需要尽快的读出串口数据,但是,这个时候来了系统时钟中断,由于它的优先级比串口高,所以需要先去执行它。将当前SP的指针的值赋给FP,这时的FP就是A的栈底了再重新给SP分配一个地址,这样现在的FP和SP就规划出了函数A的栈帧(栈帧A)。FP中保存的就是栈帧M的基地址或者叫栈底,SP保存的就是栈顶的指针。当函数需要进行跳转的时候,可能在其他的函数中会用到通用寄存器,这样在函数返回的时候通用寄存器的值已经不是原先的值了,所以我们要对其进行备份。

2023-04-15 22:21:50 510

原创 Ethercat学习-QT添加SOEM主站

QT版本5.14.2VS版本2017系统Win10。

2023-04-13 22:49:38 4139 25

原创 Ethercat学习-从站FOE固件更新(TwinCAT主站)

FOE(File Access over Ethercat),用于节点之间的文件传输。协议类似于TFTP协议,感觉和TFTP协议没有太大的区别,只是一个是UDP传输,一个是Ethercat传输。从机在通过FOE进行固件更新的时候,作为服务端,主机作为客户端,有主机发起固件的上传和下载。

2023-04-11 23:20:45 6540 28

原创 Ethercat学习-电机调试问题总结

主站硬件:STM32F405+LAN8720A主站软件:SOEM。

2023-03-10 21:41:44 6881 42

原创 C语言回顾(可变参数篇)

它有两个参数,一个参数是va_list类型的,用来存放第一个可选参数的地址。其实在程序的栈中,函数的所有参数都是在内存中连续分布的,所以可以通过强制参数的地址来获取可选参数的地址,然后保存在第一个参数中。该函数有两个参数,第一个参数是当前可变参数的地址,第二个参数是当前可变参数的类型。这个函数调用过后,第一个参数的值会变化,它会指向参数列表中下一个参数。固定参数和可选参数共同构成可变参数函数的参数列表。个可变参数的宏,它使得可以在宏定义中使用可变参数列表,可变参数的个数最少为1,否则编译会出错。......

2022-07-26 11:53:00 911 1

原创 C语言回顾(修饰词篇)

宏定义#define在C程序编译的第一个步骤预处理阶段被编译,其作用就是将宏名替换为替换列表中得内容。#define标识符(也称为宏名)替换列表(替换列表可以是数,字符串字面量,标点符号,运算符,标识符,关键字,字符常量。注意替换列表是可以为空的)//定义常量#defineN100//重定义数据类型#definepin(int*)#defineu32unsignedint//定义一个循环#defineLOOPfor(;;)100(int*)(......

2022-07-26 11:51:45 1316

原创 C语言回顾(字节对齐篇)

如果嵌套了结构体的情况,嵌套的结构体对齐到自己的对齐数的整数倍处,嵌套结构体的对齐数=嵌套结构体中的最大对齐数与当前结构体默认对齐数的较小值。总的结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。其他成员变量要对齐到对齐数的整数倍的地址处。对齐数=编译器默认的一个对齐数与该成员大小的较小值。结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。第一个成员在与结构体变量偏移量为0的地址处。......

2022-07-26 11:50:44 969

原创 C语言回顾(指针篇)

应该在了解数组名即是数组的首地址的同时,也要知道,数组名仅仅是“相当于”指针,而并非真的是指针,数组名是只是个常量(一个值为数组首元素地址的常量),所以不能进行++或者–运算。ptr++,编译器对其增加了sizeof(int),所以ptr此时的值加了4,因为数组a是char类型,每个元素所占的长度为1,且地址连续,所以ptr此时所指的内容就是a[4]指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。...

2022-07-26 11:48:40 420

原创 GD32F407 移植FreeRTOS+Lwip

GD32F407移植freeRTOS和lwip

2022-07-21 14:26:35 6170 1

原创 softmax多分类 梯度推导

2018-08-05 23:12:41 770

原创 对极大似然估计、梯度下降、线性回归、逻辑回归的理解

极大似然我对极大似然估计条件概率(后验概率)和先验概率的的理解:假设一次实验,可能出现两种结果,A或者B总共进行了50次实验,A出现了20次,B出现了30次,那么求A的概率p。问题来了,怎么求一个合理的p值呢L表示A出现的概率为p的情况下,进行50次实验,各种情况的概率。这个很好理解,假如出现20次A,30次B,则x1+x2+...+x50=20,出现为1,不出现为0,所以...

2018-08-02 02:01:25 1733

原创 树莓派WIFI一键连接配置

开启AP模式,将树莓派变为热点这个是在网上搜索的教程通过工具create_ap来进行操作。首先安装create_ap运行 sudo git clone https://github.com/oblique/create_ap.git运行 cd create_ap/运行 sudo make install安装依赖库运行:sudo apt-get install util-li

2017-11-22 18:49:37 3173

原创 树莓派蓝牙调试过程

调试硬件NRF51822树莓派3 软件pyblueZ或者bluepy 蓝牙地址或设备地址是蓝牙芯片制造的全球唯一的48位地址。传输协议:RFCOM+TCPRFCOM和TCP一样,提供大致相同的服务和可靠性保证。它是模仿RS-232设计的,方便制造商将蓝牙功能添加到下游的串口设备中。RFCOMM是射频通信协议,它可以仿真串行电缆接口协议,符合ETSI0710串口仿真协

2017-11-22 18:43:24 27734 9

原创 NRF51822 回顾总结

Nrf51822 回顾:1、工程样本分为4部分,其中:Starup Code中存放的是启动文件,设置NRF51822的启动项和系统时钟。Source codecun存放的是main.c文件。Services中存放的是蓝牙的服务代码。Libraies中放的是nrf51822提供的一些库函数。带有BLE前缀的就是蓝牙相关的函数,带有app前缀的文件是和app应用有关系的

2017-11-22 18:34:46 3380

原创 pytorch安装----CPU版的

Pytorch 安装,pip一直出错,好吧,我选择conda。官方给的简单安装的方式我试了都有问题,然后就采用源码安装。刚开始源码安装用的是ubuntu12,总是出现以下错误:error: command 'gcc' failed with exit status 1关于这个错误,我找了半天,没找到解决的方法。然后我重新安装了ubuntu16来源码安装,没办法,一切为了学习。首先安

2017-11-22 18:16:27 19297

原创 树莓派串口配置

由于树莓派的uart不够使用,所以我们采用的是usb转串口。但是这个就出现了一个问题。当usb设备根据插入的顺序不同时,其设备节点会不同,有时候是ttyUSB0,有时候是ttyUSB1或者其他。根据这个问题,经过百度找到了简单的解决办法。那就是通过udev来静态设置文件节点的名称。关于udev这里不做讨论。我是直接套用的。首先以ttyUSB0 为例:输入udevadm info -a /d

2017-11-20 18:17:54 828

原创 树莓派串口

串口使用例程及说明:http://elinux.org/Serial_port_programminghttp://elinux.org/RPi_Serial_ConnectionPyserial API https://pyserial.readthedocs.io/en/latest/pyserial_api.htmlsudo apt-get install python-se

2017-11-20 18:13:57 598

原创 树莓派QT安装

QT 安装:首先通过apt-get安装Qt Creator工具,同时会自动安装4.8版本的Qt-Lib库。 sudo apt-get install qtcreator通过桌面Menu -> Programming -> QtCreator 启动图形界面。由于Qt Creator不能自动识别树莓派上的工具链,因此需要手动添加。点击Tools -> Options打开配置对话框,在B

2017-11-20 18:06:03 854

原创 树莓派GPIO

首先需要安装python-dev。执行命令: sudo apt-get install python-dev然后安装RPI.GPIO下载地址https://sourceforge.net/projects/raspberry-gpio-python/解压tar xvzf RPi.GPIO-0.6.3a.tar.gz进入文件夹:cd RPi.GPIO-0.6.3/安装: su

2017-11-20 18:00:23 654

原创 ubuntu下nfs系统搭建

首先安装:apt-get install nfs-kernel-server配置/etc/exportsvi /etc/exports在最下面加入/home/topeet/linux/ *(rw,sync,no_root_squash)其中/home/topeet/linux/是我的共享文件夹*:代表允许所有的网络段访问;rw:是可读写权限;sync:是资料同步

2017-04-22 19:24:23 410

原创 在嵌入式linux下搭建java运行环境

交叉编译环境:arm-none-linux-gnueabi-运行java的虚拟机是jamvm  它需要配合classpath共同使用。GNU Classpath下载 http://www.gnu.org/software/classpath/downloads/downloads.html在/usr文件夹下面新建文件夹classpath和jamvm(为了方面移植)配置:

2017-04-20 11:43:54 10232 2

原创 基于嵌入式linux下的libcurl开发

1、ubuntu 交叉编译环境搭建:源码:curl-7.5.31.tar.gz (https://curl.haxx.se/download.html)交叉编译环境:arm-none-linux-gnueabi-root@ubuntu:/home/topeet/source# tar -zxvf curl-7.49.0.tar.gzroot@ubuntu

2017-03-09 10:00:57 759

原创 关于apt 数据源错误与smb服务器的安装

今天在ubuntu上通过apt-get install 安装smb服务器时,出现了这样的错误:Failed to fetch http://mirrors.163.com/ubuntu/pool/main/b/bind9/bind9-host_9.8.1.dfsg.P1-4ubuntu0.8_amd64.deb  404  Not Found [IP: 123.58.173.185 80]

2017-02-14 16:07:31 532

原创 虚拟机于开发板ping通问题

如果开发板是通过网线和电脑连接的,则在虚拟机的网络编辑中应该选择有线网卡,这样就可以ping通了。如果是通过网线和路由连接的,则虚拟机应选择无线网卡。同样的,本地是通过无线网来上网的,则虚拟机需要上网的话就选择无线网卡,如果本地是通过有线上网的,则虚拟机上网需要选择有线网卡。如图

2017-02-13 19:58:23 262

原创 摄像头驱动

摄像头要点:1、 摄像头是怎么把数据传给2440通过IO接口->BCCB(串行摄像控制总线)传给2440 的。2、 硬件是以什么样的形式采集数据的OV9650数据输出标准:1、数据一次性输出10bit 2、每次输出8bit3、 摄像头采集数据后是怎么传递给驱动程序的在驱动中申请一个内存块,如fb(帧缓冲)。读写方式为IO或者mmp4、 摄像头输出数据格式Yuv或RG

2016-09-22 22:33:08 323

原创 DM9000网卡驱动

Linux 网络子系统 网络接口层:网络接口层把数据链路层和物理层合并在了一起,提供访问物理设备的驱动程序,对应的网络协议主要是以太网协议。网络层:协议管理离散的计算机间的数据传输,如IP协议为用户和远程计算机提供了信息包的传输方法,确保信息包能正确地到达目的机器。重要的网络层协议包括ARP(地址解析协议)、ICMP(Internet控制消息协议)和IP协议(网际协议)等。传输层:

2016-09-22 22:31:38 354

原创 内存管理

Linux系统提供了4GB虚拟地址。在linux系统中不使用物理地址,使用的是虚拟地址,所以物理地址需要映射成虚拟地址。 0-3G为用户空间,3-4G为内核空间。在内核空间中,0-896M为物理内存映射区(直接映射区),映射方式简单,他们与物理地址只有一个固定的偏移量。32位的虚拟地址与物理地址的转换如图:1、cr3寄存器中的基地址加上虚拟地址的高10位得到页目录中页表的基

2016-09-22 22:29:14 320

原创 触摸屏驱动

触摸屏在LCD上层。 S3C2440 的触摸屏接口模式1. 普通转换模式单转换模式是最合适的通用ADC 转换。此模式可以通过设置 ADCCON(ADC 控制寄存器)初始化并且通过读写ADCDAT0(ADC 数据寄存器 0)就能够完成。2. 分离的 X/Y 方向转换模式触摸屏控制器可以工作在两个转换模式之一。方向转换模式如下方法操作。X 方向模式写 X 方向转换数据到

2016-09-22 22:27:19 875

原创 LCD驱动

LCD 帧缓冲设备(fb) fb是什么?fb是linux系统为显示设备提供的统一的接口。 LCD显示原理:fb缓存后,用户程序通过mmp内存的映射,映射一个虚拟的用户空间,将要显示的数据放进去,然后LCD显示。选用mmp的优势是读写速度快,避免延时。 驱动程序分配系统内存作为显存。fop接口:1、应用程序服务2、控制LCD的控制器。 fb的作用:fb的驱动程序会分配

2016-09-22 22:25:58 304

原创 input子系统

触摸屏驱动分为两部分:1、输入子系统;TP。 数据通过内核上报到app的方式:1、copy_to_user2、input 3、uevent 按键、触摸屏、鼠标等输入型设备都可以用input函数来实现设备驱动。 输入子系统由驱动层、输入子系统核心、事件处理层三部分组成。一个输入事件,如鼠标移动、键盘按下等通过Driver->inputcore->Event handler -

2016-09-22 22:22:23 581

原创 板级信息

U-boot 起来后是如何选中平台的。通过Uboot中的机器码和mach-type进行选中开发板。其中 mini2440的机器码为1999,type为MINI2440。  u-boot启动后进入main.c 中。进入start_kernel。在start_kernel中setup_arch(&command_line)安装架构。传入参数command_line是从uboot中传

2016-09-22 22:18:28 412

原创 平台总线、设备、驱动的学习

设备和驱动的绑定是通过总线实现的。总线通过查找总线下的设备列表和驱动列表,名字相同的进行匹配。总线代码的实现:struct bus_type {       constchar             *name;     //总线名字       structbus_attribute      *bus_attrs;  //总线属性       structdevice_a

2016-08-17 21:39:18 1729

原创 基于mini2440外部中断的按键驱动

看了好长时间的中断,终于动手写了个基于中断的按键驱动。本次驱动不是十分成功,中断都进去了,但是打印出的信息有些问题。现在还没有找到原因。这个中断编写时参照内核中的按键驱动进行编写的。关于内核的中断例程刚开始看,有许多疑问:怎么不见它配置寄存器呢?我在网上查的资料说是在request_irq中进行了底层硬件的配置?还有就是我看到网上有的6410的按键中断驱动和2440的按键中断驱动几乎一

2016-08-03 22:29:29 747

原创 初次动手编写驱动——LED在linux中的驱动。

今天第一次自己尝试编写驱动,看了这么长时间视频,第一次动手,编写的是简单的LED的程序。从简单到复杂一个一个来。编写驱动的顺序是先从注册函数和卸载函数起始:static int led_init(){cdev_init(&cdev, &led_fops);alloc_chrdev_region(&devno, 0, 1,"led");cdev_add(&cdev, devn

2016-07-12 23:20:33 3321

原创 linux驱动之LED驱动体验

LED驱动算是简单的驱动,第一次真正意义上的动手做驱动。硬件平台是mini2440.用的到的命令:1、tftp下载命令:tftp  -r  led.ko  -g  192.168.0.1032、模块安装:首先,insmod  led.ko  由于初学,不知道安装命令后面打印的是什么,所以先暂时忽略。如图然后通过cat /proc/devices查看设备号,如图最后通过设备号

2016-07-11 22:57:14 349

空空如也

空空如也

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

TA关注的人

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