自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 FPGA时序约束

FPGA时序设计概述时序约束相关概念发起沿和捕获沿时序路径常规时钟路径数据到达时间时钟到达时间数据需求时间(建立情况下)数据需求时间(保持情况下)建立时间的裕量保持时间的裕量时序分类时序约束语法创建时钟周期约束设置输入延时约束设置输出延时约束FPGA内部组合逻辑从输入端口到输出端口虚拟时钟设置多周期约束两倍时钟周期使能信号相同的时钟周期,目的时钟正向偏移相同的时钟周期,目的时钟负向偏移发端慢速,收端快速发端快速,收端慢速设置伪路径约束1. 组合逻辑中的伪路径2. 时序路径中的伪路径3. 跨时钟域中的伪路径

2021-07-03 22:29:40 5155 1

原创 【USB学习总结】抓包工具使用

USB协议在常见的外部总线协议中是比较复杂的存在。对于USB协议的理解,借助于抓包工具来抓取常见的USB外设,会起到事半功倍的效果。常见的USB抓包工具分为两类:纯软件的抓包工具和带硬件协议分析设备的软件。纯软件的抓包工具无论是安装在Windows或者linux下,由于软件只能调用计算机上USB host驱动,这些USB host设备一般都是由具体的芯片来实现,这些芯片的特点是,硬件实现了 transaction 的过程。软件控制硬件的时候只需要控制到 transaction的层面。所以,这类抓包工具的

2020-11-29 22:13:05 1273

原创 程序运行时好时坏问题记录

最近的工作中,遇到多次这样的情况,硬件模块使用的时候,有的时候正常,有的时候异常,时好时坏。其中,一个是射频模块,总是在初始化的时候失败。这个模块在多个硬件平台上使用,都遇到类似的情况。另外一个是网口模块(W5500)上电初始化之后,接收数据是正常的,但是,发送数据有的时候正常,有的时候异常。而且。异常发生比较多的时候是上电的时候发不了,过了一会时间(可能有几分钟)又能正常工作了。遇到上面两个问题。解决的方式都是在上电后,初始化这些模块之前加一些延时。原因就是,系统上电后,模块部分上电比较缓慢或者内部初

2020-10-20 14:10:54 558

原创 基于xilinx平台Linux开发----使用petalinux创建系统镜像

1.注意点写在前面的原因:我在创建工程的FPGA工程和linux工程的时候,使用的vivado版本和petalinux的版本不同,导致编译出来的boot无法启动。后来,有使用了相同版本的vivado和petalinux,可以正常启动uboot和linux2.创建vivado工程生成HDF文件我创建的vivado工程是一个zynq7010 + axi-gpio,工程名称linux_led...

2020-01-01 22:07:54 772

原创 基于xilinx平台Linux开发----petalinux环境搭建

1.安装依赖库sudo apt-get install tofrodos gawk xvfb git libncurses5-dev tftpd zlib1g-dev zlib1g-dev:i386 \ libssl-dev flex bison chrpath socat autoconf libtool texinfo gcc-multilib \ libsdl1.2-dev ...

2019-11-16 13:49:55 877 1

原创 安装Ubuntu以及嵌入式Linux的开发环境

Ubuntu启动工具的安装及镜像下载1、U盘启动工具在线安装http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/2、ubuntu镜像直接上官网下载,注意,点击对应版本的release note后可以找到该版本的所有镜像安装常用的工具和server1、安装vim:sudo apt-get ins...

2019-09-12 10:09:29 455

原创 lua study -- how to call lua function use C language

一个运行的lua脚本对应一个lua state。C语言调用lua 脚本时就是要创建一个lua state,然后将标准的lua库加载到lua state,将自定义的lua 函数注册到lua state。lua 脚本在lua state上运行前要将脚本或函数以及他们的参数压入到lua state的栈中。lua state将回到栈中调用对应的函数以及传递相应的参数。当lua 脚本执行完以后,lua state将运行的结果压入到lua state的栈中。用户要将结果取出并释放掉lua state。

2017-06-27 14:39:09 272

原创 Minitool安装出现的问题

环境:win10 64bit问题:minitool安装失败。原因:win10下面安装程序是要检查数字签名,当数字签名检查失败时,安装就会被停止。一方面数字签名保证可软件的安全性;另一方面数字签名要想微软购买,对于小的公司未必承受;这种情况就是MINItool这个软件没有数字签名。解决办法:禁用驱动强制签名,具体做法百度“第三方 INF不包含数字签名信息”;

2017-06-03 19:02:37 1729 1

原创 USB转串口驱动的安装(PL2303)

问题描述:公司新买的thinkpad 64bit win10当有usb转串口线接到usb接口上的时候,串口无法使用,并且在设备管理器可以看到对应的com口存在。但是,上面显示一个感叹号,查看属性显示设备不可用。于是我在网上下载并安装了多次PL2303驱动,可最终还是不可用。最后在一个博友的文章中发现他也遇到过相同的问题,并且找出了原因。安装的驱动是没问题的,但是驱动会自动更新,更新后就会存

2017-06-03 14:11:46 2516

原创 Regulator framework

Regulator framework1 General descriptionVoltage Regulator & current regulator 电压调节器和电流调节器在Linux中,regulator framework提供标准的API区控制regulator设备。这样做的目的是动态的调节电源的使用,以达到节能。1.1 Regulator:电压或电流调节器,分类

2016-11-05 15:37:33 459

原创 enjoy the beautiful linux kernel code

接触到Linux已经有一段时间了,期间学习过Linux的许多东西,但是捡了芝麻丢了西瓜,以前学习过的东西都不记得了,感觉到写博客还是很重要的,所以从现在起要养成写博客的习惯,记录学习的知识以备温故,同时,希望给初学者一些引导。

2016-11-05 14:33:07 273

原创 问题记录

今天遇到一个编译错误 expected ')' before * token竟然是别忘记加了头文件,无语啊,找死我了

2016-02-18 16:50:32 227

原创 ELF文件学习

ELF(Executable and Linkable Format)是Linux中可执行文件格式。它包括:可重定位文件、可执行文件、共享目标文件1、可重定位文件:用于和其他目标文件一起创建可执行文件或者共享目标文件,例如lib*.a文件。*.o文件2、可执行文件:用于生成进程映像,载入内存执行,例如编译好的可执行文件a.out。3、共享目标文件:用于和其他共享目标文件或者可重

2016-02-15 20:02:33 368

原创 u-boot bootm命令分析

cmd_bootm函数的执行流程1、镜像头部校验、镜像数据校验2、根据内核类型记录3、根据压缩类型解压缩  1>未压缩,如果addr等于hdr_ih_load不移动:这一种比较特殊            否则,把镜像数据拷贝到hdr_ih_load  2>压缩,将数据解压缩到hdr_ih_load4、根据镜像类型调用后续的启动函数,Linux的为do_linux_boo

2015-12-17 13:33:08 470

原创 uboot 中 env相关问题

根据uboot 2011,env的初始化主要是用env_relocate来实现。它的实现主要有:1、如果gd->env_valid等于1,那么,从dataflash中读出数据,调用env_relocate_spec。2、如果gd->env_valid等于0,那么,直接使用default的env,这是直接编进code中的,调用set_default_env。3、获得数据要先创建env的h

2015-11-30 20:06:56 1228

原创 u-boot2011网络驱动模型

1、认识一些函数:eth_initialize和设备实例的成员函数    eth_initialize 主要做两件事,一是配置设备的寄存器,二是初始化一个eth_device结构体,这个结构体包含设备的init,send,recv等成员函数,这些操作函数也是网络设备最底层的实现。    eth_init,根据bd设备当前设备的mac地址,回调init成员,而一些init成员实现的功能就是使

2015-11-25 14:56:18 692

原创 u-boot2011中初始化函数实现的巧妙方法

下面这段函数出现在在u-boot启动的流程中sw_patch_t **sw_patch = &LS_sw_patch_start;while (sw_patch!=&LS_bootm_stack) {   (*sw_patch)();   ++sw_patch;}LS_sw_patch_start 出现在u-boot.lds中. = ALIGN(4);   

2015-11-18 19:55:20 650

转载 uboot命令的实现

http://www.doc88.com/p-899110574676.html

2015-11-16 15:18:07 344

原创 makefile

1、编译 .c 生成 .o 高级语言生成可识别的机器指令,不能被执行   链接 将.o文件和库文件链接成可执行文件     库文件包括静态库和动态库。     静态库是多个.o文件的集合,链接时被加载,使用ar工具维护;     动态库也是多个.o文件的集合,又叫共享库,运行时被加载,多个进程共享其代码段,不共享数据段。2、gcc -c :生成.o文件3、使

2015-11-13 15:36:49 256

原创 shell study

echocatreadtee  显示并保存>:重定向标准输出>>:附加/dev/nulldeclare -x:相当于 export,声明一个环境变量declare +x:将环境变量编程自定义变量使用diff和patch命令来做补丁脚本的运行:./ 在子shell中运行source 在当前shell中运行shel

2015-11-04 13:26:05 259

原创 变量与环境变量

变量与环境变量变量仅可以被当前进程使用,环境变量可以被当前用户的所有子进程使用使用export可以把变量变成环境变量,在makefile中用了很多这样的方法

2015-11-03 19:39:23 313

原创 问题记录

1、iperf运行过程中遇到的问题     ping不通,原因是没有关闭防火墙,防火墙这个东西真是太重要了,可以通过配置它来设置哪些端口可以被访问,哪些不可以。     Windows下运行iperf出现OpenSCManager failed,解决的办法是设置程序的属性,设为兼容模式、管理员权限运行

2015-11-03 19:21:03 963

原创 shell 脚本 一步一步 前进

shell 命令的执行&& 和 ||命令1  && 命令 2 :如果命令 1 成功,继续执行命令 2;                                   如果命令 1 失败,不执行命令 2.命令3 || 命令 4:如果命令 3 成功,不执行命令4;                              如果命令 3失败,执行命令4.() 和 { }

2015-11-03 17:25:32 662

原创 awk sed grep

1、awk的基本格式awk '条件 {操作} 条件 {操作}.....'例如:cat /etc/passwd | awk -F ":" '$3     BEGIN ENDBEGIN 执行初始化操作,仅在其它操作执行前执行一次END   执行收尾工作,所有操作执行结束后执行例如:cat /etc/passwd | awk  'BEGIN {FS = ":"}$3 ca

2015-11-03 17:05:36 316

原创 memory-map i/o和port-map i/o

根据CPU架构的不同,其外设的映射分为两种:memory-map i/o和port-map i/o这两种映射方式的主要区别:  memory-map i/o:RAM和设备寄存器统一编址,使用同样的访问方式,嵌入式多使用  port-map i/o:RAM和设备寄存器独立编制,使用不同的访问方式,并且对于外设的访问,使用的指令周期要多些,X86比较多设备驱动程序调用接口:  me

2015-10-13 14:32:09 1034

原创 struct 和 union的妙用

最近看了一些开源的代码,看到了一些关于struct 和 union 的妙用,记下来,以备学习之用1、struct 使用比较多的地方实在寄存器定义,很多寄存器都有相同的结构,举例来说:假如有GPIOA~GPIOG,它们都有控制寄存器CON、状态寄存器STAT、数据寄存器DAT,那么在定义它们的时候就可以这样写  typedef struct {    u32_t  CON;u32

2015-09-07 19:07:42 509

原创 catche技术的优势

最近学习了flash的知识,期间接触了一些缓存的知识,发现缓存技术技术有好多优点,于是再次总结一下:1、缓存提高了文件读写的速度 缓存的读:首先,将一个erasesize的数据从flash中读到catche中,那么在下次读flash数据的时候就先判断当前缓存中的块号是否等于要读的flash的块号,如果是就直接从缓存中读取,否则从新加载数据到缓存。这里要明确一点,一个块的大小是很大的通常是1

2015-08-30 16:04:17 475

原创 bootm命令解析

bootm命令的完成的任务:1. 读取头部,把内核拷贝到合适的地方2. 把参数给内核准备好,并告诉内核参数的首地址3. 引导内核启动int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ulong iflag;ulong addr;ulong data, len, checksum

2015-08-13 16:49:03 2288

原创 uboot学习笔记

学习uboot也有一段时间了,今天就对uboot做一个总结简而言之,uboot是用来引导系统启动的。所以,uboot的功能首先是启动系统。但是,我们使用的uboot功能除了启动系统,还可以进行很多操作:操作存储设备、烧写文件系统、烧写操作系统、操作板子上的硬件设备等等。所以学习uboot的过程中就要按照uboot的功能分布进行。1、首先是启动系统,那么,我们启动的Linux的要求是

2015-08-13 16:21:13 601

原创 uboot中控制台输入输出的实现

在uboot初始化中,start_armboot函数可以有一个device_init函数,它的功能初始化一个设备链表,该表中的设备都是输入输出设备,开发者根据板子的硬件和的配置文件来初始化相应的输入输出设备并实现每个设备的put和get系列函数并把它注册到该设备链表中。console的初始化目的是选出一组标准的输入输出函数,该函数根据环境变量环境变量stdin、stdout、stder

2015-08-08 15:49:30 3902

原创 samba service on ubuntu 14.10

1.安装samba$sudo apt-get install samba2.编辑配置表$vim  /etc/samba/smb.conf 在最后增加以下SECTION:[ home ]comment = workplacebrowseable = yeswriteable = yespath = /home/valid users = smb3.创建

2015-08-07 23:27:26 244

原创 uboot 学习笔记 stage 2

u-boot执行的stage1最后一步是跳转到start_armboot,我们就从这个函数开始分析stage2.先来上代码:lib_arm/board.cvoid start_armboot (void){DECLARE_GLOBAL_DATA_PTR; 这个宏的定义在incude/asm-arm/gobal_data #define DECLARE_GLOBAL_

2015-07-28 18:27:47 787

USB Packet Viewer

USB协议分析工具软件USB Packet Viewer和抓包示例,通过抓取的数据包可以帮助USB学习者快速掌握USB协议

2020-11-29

空空如也

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

TA关注的人

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