自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wahahaguolinaiyou的博客

学习之路永无止境

  • 博客(44)
  • 收藏
  • 关注

原创 十一:mini2440上面使用SPI控制器实现OLED显示

此次的SPI协议是基于mini2440开发板上SPI控制器,比较上一篇的区别就是使用了控制器,OLED的复位脚一定也要接在2440的复位脚上面,而不用定义一个复位脚给高低电平。上一篇文章已经介绍了OLED的一些数据信息,和SPI协议的分析。这里的区别就是控制器的使用,2440上面的SPI控制器也给出了很详细的使用说明。我们要做的事情如下所示:1. 第一步修改GPIO的设置,上一章节是GPIO...

2019-11-27 15:19:17 332

原创 十:mini2440使用GPIO模拟SPI总线协议实现OLED的显示

此次的SPI协议是基于mini2440开发板上的GPIO,并未使用SPI控制器,所以跟单片机一致,但是这里有个问题就是OLED的复位脚一定要接在2440的复位脚上面,而不用定义一个复位脚给高低电平。1. 介绍一下SPI协议的OLED。市面上的开发板很少接有SPI设备,但是SPI协议在工作中经常用到。我们开发了SPI模块,上面有SPI Flash和SPI OLED。OLED就是一块显示器。此次...

2019-11-26 13:26:14 491

转载 八:mini2440 nand flash和nor flash启动的区别

mini2440及其他类型的开发板一般都有从nand flash和nor flash启动两种方式,那么这两种启动方式有什么区别呢,初学者一般都会一头雾水。下面就讲讲这两种启动方式的区别。mini2440的nand flash128M,而nor flash只有2M,系统的bootloader一般很小,只有200多KB,而作为一个完整的系统,需要bootloader(200KB),kernel(2M...

2019-11-15 15:22:32 345

原创 九.mini2440实现I2C协议裸机程序(完成)

**I2C协议的mini2440裸机程序实现**上篇博客说道了I2C的理论知识,但是实际应用的时候,遇到很多的问题,加上程序的庞大,一直在调试。这几天重新看了一下,最终解决问题。首先的问题是程序超过4K之后一直卡住不运行,我之前的猜想是程序既然大于4K不能运行,那么为了能调试,先把其他的实验的代码进行裁剪,能不能满足要求,但是发现光是I2C的代码已经超过4K,所以一定是不行的;接着为什么...

2019-11-13 21:58:14 283

转载 七:mini2440实现I2C裸机程序

文章链接:https://blog.csdn.net/thisway_diy/article/details/79398696我们可以很清楚的了解到I2C的时序,利用I2C设备控制器,大大减轻了GPIO引脚模拟I2C的SCLK和SDAT的复杂性,我们直接往控制器里面写入地址,数据;从控制器里面读出数据就可以了,跟着2440的手册看I2C的流程,可以很清晰的理解I2C协议。...

2019-10-30 20:42:20 158

转载 六.透彻分析星座图与IQ调制

...

2019-09-17 12:04:23 1875

原创 八:mini2440挂载initramfs文件系统mount网络文件系统

参考链接:https://blog.csdn.net/David_xtd/article/details/25275251这几天在移植Linux系统,挂接文件系统时选了initramfs,但是这个文件系统的缺点就是掉电后的数据不会保存,所以尝试着在该根文件系统上面用mount命令,挂载别的文件系统。尝试NFS文件系统。1.在虚拟机上面搭建NFS服务器。首先在Ubuntu下面,搭建nfs服务器...

2019-07-24 11:18:00 354

转载 六:mini2440的uboot启动内核过程分析

注:原文转自[原文链接](http://www.360doc.com/content/15/1106/07/6828497_511101262.shtml)注:原文转自http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html。 1.1       U-Boo...

2019-07-16 11:11:51 121

原创 (十)嵌入式:使用TCP协议实现图传

这段时间做了通信相关的项目,需要用到无线图传,因此想到了用TCP协议实现。废话不多说,直接上代码:服务器端:#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <sys/types.h>#include &lt...

2019-07-03 21:46:57 1497

原创 六:mini2440实现自己写bootloader

自己实现Uboot启动:前言:想想 uboot 的代码量,我们说自己写一个 bootloader 是不是口出狂言了?然而并没有,bootloader 的唯一目的只有一个,那便是启动内核。内核就是一大段可执行程序,我们只要跳转到它的入口地址去执行不就OK? 所以,写一个简单的 bootloader 并不困难。现在来思考一下,目的是启动内核,那么内核在哪里?刚上电的时候,内核肯定是位于 nand...

2019-07-02 18:37:52 330

原创 一:BPI R2开箱体验

2019-4-18收到香蕉派R2板子,开始体验。板子出厂已经烧好了安卓系统,所以可以很直观的看到。首先来看一下板子上的资源:BPI-R2集成MTK7623N 四核 ARM Cortex-A7 MP 支持主频1.3 ghz,BPI-R2 路由器提供丰富各种外设接口,包括 HDMI TX 高清接口, MIPI DSI 屏接口, PCIe2.0 接口, USB2.0 OTG 端口, USB3....

2019-04-18 21:09:27 917

原创 C语言的简单总结

一.基础知识1.printf…输出打印 scanf.输入 #define 宏定义2.一个字节(1BYTE)= 8位(8bit)3.八进制(0开头 015=13)十进制(直接整)十六进制(0X或0x开头 0X15=21)4.基本数据结构(整形,浮点型,字符型和枚举型)构造数据类型(数组,指针,联合体)5.printf(“”);%d十进制输出/%c字符输出,定义一个int数据时,如果pri...

2019-04-13 10:02:11 230

原创 C++总结

C++学习总结(清华大学教材)第四章4.1内联成员函数使用内联函数可以减小开销。声明有两种方式:隐式和显式。将函数体放在类中—隐式;用online关键字—显式。4.2构造函数和复制构造函数既可以在定义的时候实现,也可以在在类的定义外实现。均可以使用:来给私有数据成员赋值。eg: class Point{public:Point(int a, int b);Point(Point...

2019-04-13 10:02:03 207

原创 五.mini2440实现串口打印

001uart硬件知识 通用异步收发打印调试信息,外解各种模块等。使用串口时:1.串口波特率 2.格式:数据位,停止位,校验位和流量控制等。发送一字节数据的流程:1.双方约定好波特率,即每一位占据的时间-设1S。2.原来逻辑电平是高,ARM拉低,保持一个波特率的时间 -1s;3.PC在低电平开始处计时4.ARM根据数据驱动引脚发送数据,一个波特率时间发送一位。5.最后是校验位和...

2019-04-12 10:09:58 290

原创 四.mini2440时钟初始化

时钟初始化CPU工作于FCLK,AHB总线工作于HCLK ,APB总线工作于PCLK。不设置时钟就工作在晶振频率12M。设置之后可以工作在400M 使用锁相环来生产时钟,一个MPLL生产时钟给CPU用,一个UPLL生产时钟给USB用。时钟信号来自于12M的晶振或者外部时钟信号。选择器OM决定时钟源。有这三个参数决定主频FCLKHDIVN决定HCLK的值,PDIVN决定PCLK的...

2019-04-12 10:03:02 212

原创 三.mini2440按键控制LED

在上一篇LED博客上面进行添加程序。首先看原理图知道KEY的引脚:那么我们知道了按键的引脚,根据上一篇的led的引脚,可以理清楚,按键按下会修改某寄存器的值,CPU检测到按键修改,则输出电平到LED数据寄存器,进而控制LED的亮灭。那么来修改程序。/*LED.c*/#define GPBCON ((volatile unsigned int *)0x56000010)/*led控...

2019-04-12 09:55:11 517

原创 二.mini2440点亮流水灯

6.开始写第一个裸机程序—LED程序编写led_on.c程序,还需要编写一段汇编程序start.s来调用C程序。Start.s做了什么工作?设置堆栈,调用C函数并保存返回地址。ldmia ,stmdb批量操作数据。7.C程序内部机制调用者传参给被调用者或者返回参数都是用寄存器r0-r3,用到谁就保存谁.传参直接在汇编中调用函数前面写数据使用volatile拒绝编译器优化这...

2019-04-12 09:29:43 596

原创 一.mini2440的课前准备

韦老师视频–嵌入式学习0.首先下载资料,百问官网上去下载。(韦老师的是JZ2440)1.然后买一个烧写器(100块)–EOP-100块,接着安装驱动,插上EOP之后,更新驱动程序,三遍之后可以安装成功。然后安装oflash的烧写程序,openOCD with GUI setup,安装好了在cmd里面运行oflash。如果运行失败,则需要将安装目录添加到环境变量里面去。(Windows的环境...

2019-04-11 16:39:34 181

转载 五.GDB保存断点

今天使用gdb调试了一整天,在好多关键的地方添加了断点,快要下班的时候,因为要关闭远程连接,为了便于明天继续测试,我想把所有的断点都 保存下来。但是因为断点太多了,使用“info b”虽然可以查看到断点,但是,断点的位置得自己找出来,然后保存,感觉有点麻烦。(gdb) info bNum Type Disp Enb Address What1...

2019-03-29 16:11:14 698

转载 四. 安装Ubuntu16.04,界面不全的坑解决方法

转载内容:前几天手贱把之前的Linux系统搞崩溃了,估计是因为移除了一个以为没有用的磁盘,结果Linux没法开机,寻思着干脆一边把原系统的代码导出,一边直接重新安装新系统。在安装Ubuntu16.04时,没有采用简易安装,而是先创新空白硬盘,再安装系统,这样可以自己控制分区。实际安装时发现进行到分区这个步骤时,看不到下一步的按钮,百度后得知有此遭遇的不在少数,是因为系统默认分辨率与电脑分辨率...

2019-02-19 14:48:07 1885 1

原创 (九)嵌入式:怎样配置Ubuntu的网络问题--心路历程

写这篇文档的目的是总结这几次配置网络的过程和自己的一些体会(不是专业的搞网络的,遇到这些问题很是苦恼)这几天需要用到64位的Ubuntu,之前使用的是32的ubuntu12.04系统,于是在官网上下载了14.04的64位的Ubuntu。开始搭建。搭建流程参考文章(写的很详细也很好)搭建Ubuntu流程然后搭建完成后我们需要的是各种配置:配置root用户登录,网络等。这次重点就是分享自己的网络...

2019-02-18 15:27:32 356

原创 (十一)Zedboard编译Linux内核

制作Linux内核,一定要找对源码,我使用的板子是Zedboard,就一定要下载对源码。找对了,可以一下子就实现了,因为很简单。找不对,就会出现各种各样的问题。下载地址:https://github.com/Digilent/linux-digilent/releases/tag/v3.3.0-digilent-12.07-zed-beta参考文章:https://blog.csdn.ne...

2019-01-16 16:38:02 288

原创 (九)Zedboard编译uboot

最近需要在Zedboard加上AD9361的板子做无线电的收发模型,先解决板子上系统的问题,做一个Linux系统需要三个部分—BootLoader,kernel,rootfs。在Zedboard上面需要加一个东西–device tree。可以在后面的文章查看。现在首先来编译uboot。官网提供了很多资料,加上参照博客:https://blog.csdn.net/congduan/article...

2019-01-16 14:59:26 650

原创 (十)Zedboard移植设备树

移植Zedboard设备树参考博客:https://blog.csdn.net/congduan/article/details/41787951http://www.openhw.org/module/forum/forum.php?mod=viewthread&amp;amp;amp;amp;tid=597436&amp;amp;amp;amp;fromuid=2010422具体的步骤都是参照着来的,我只写了其中我不一样的地方。我...

2019-01-16 14:36:01 495

转载 三:Linux内核结构

本文转自http://www.jb51.net/LINUXjishu/214104.html首先来看一张图(这是Linux操作系统的大致层次结构):最内层是硬件,最外层是用户常用的应用,比如说firefox浏览器,evolution查看邮件,一个计算流体模型等等。硬件是物质基础,而应用提供服务。但在两者之间,还要经过一番周折。&nb...

2019-01-07 18:41:11 455

原创 (八)嵌入式:Linux驱动程序的设计方法以及测试

本次实验我们开始学习驱动,首先了解什么是驱动,驱动程序全称设备驱动程序,是添加到操作系统中的特殊程序,其中包含有关硬件设备的信息。此信息能够使计算机与相应的设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。那么驱动就是联系硬件也操作系统的关键所在。本次实验要体会新增一个字符设备驱动的流程,添加驱动有两种方式,一种是在内核代码里面静态添加,随...

2018-12-27 14:48:57 1983

原创 (七)嵌入式:linux下实现嵌入式web服务器BOA的配置

此次试验要做的是嵌入式服务器boa的配置。因为boa服务器已经移植好了,所以我们要做的就是配置。简单介绍一下boa服务器:boa 服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。我的内核已经移植好了boa,剩下的就是配置的操作。1.首先配置支持显示编写好的网页进入并修改文件/uClinux...

2018-12-20 22:02:06 1874

原创 (六)嵌入式:Linux下新增系统调用的实现

开发环境见前面声明!!!!1.知识扩展1.1 Linux内核中设置了一组用于实现系统功能的子程序,称为系统调用。系统调用和普通库函数调用非常相似,只是系统调用由操作系统核心提供,运行于内核态,而普通的函数调用由函数库或用户自己提供,运行于用户态。用户空间的程序无法直接执行内核代码。它们不能直接调用内核空间中的函数,因为内核驻留在受保护的地址空间上。如果进程可以直接在内核的地址空间上读写的话,...

2018-12-12 22:29:23 505

原创 写在前面的话

嵌入式实验使用开发板均是美国Marvell公司生产的SOHO级网络通信微处理器芯片88E6218。开发环境是Ubuntu12.04,内核是UCLinux。

2018-12-11 21:58:01 174

转载 二:如何转载别人的博客内容

  对于喜欢逛博客的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现  因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转...

2018-12-10 20:12:35 113

原创 (八)Zedboard上面的GPIO分析

本文为转载链接,不是原创!!!注:由于没有联系原创博主,所以只分享原文链接,请点击查看:https://blog.csdn.net/husipeng86/article/details/52123465

2018-12-10 20:09:25 161

原创 (五)嵌入式:设置UART波特率并实现转变字符串大小,实现人机交互

本次实验使用开发板是美国Marvell公司生产的SOHO级网络通信微处理器芯片88E6218。开发环境是Ubuntu12.04,内核是UCLinux。1.使用串口本次课程主要是了解uart的使用,UART: Universal Asynchronous Receiver/Transmitter ,如图1-1所示:图1-1 串口展示实验是CPU往串口输入一个数据,然后串口会自动把该数据输...

2018-12-08 11:36:03 825

原创 (七)Zedboard上面实现PL-VGA实验

1.本实验是用Zedboard实现VGA接口的使用,通过PL端的资源,根据对应引脚连接信号线,完成VGA的使用。实验分为几个小节,首先介绍VGA的引脚,然后了解VGA的时序,再根据硬件电路图,完成Verilog程序的设计,接着烧写bit流到开发板,测试。2.介绍参考:米联------- ZYNQ VGA 硬件驱动设计VGA 是 Video Graphics Array 的简称, 也叫 D-...

2018-12-07 14:16:20 1039

原创 (六)Zedboard上面实现DDR3的读写操作和BRAM的使用

1.首先介绍一下Zedboard的存储资源在Zedboard板子上面有三个存储器,分别是DDR3、QSPI和SD卡,另外在PL端有Block RAM存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫块RAM。ZYNQ的每一个BRAM 36KB,7020的BRAM有140个(4.9M),7030有265个(9.3M),7045有545个(19.2M)。每一个BRAM都有两个共享数据的独立端口...

2018-12-04 22:33:54 3139

原创 (五)Zedboard的AXI总线协议和接口的分析

参考链接:1.http://www.itkeyword.com/doc/3294023981952946377/sdk-fpga-design2.https://blog.csdn.net/lyfwill/article/details/81152829学习AXI是学习ZYNQ的必备知识,所以从以下几个方向了解和学习AXI总线的接口以及协议。自定义IP核是Zynq学习与开发中的难点,AXI I...

2018-11-30 11:27:51 986

原创 (三)嵌入式:交叉编译应用程序并为内核添加APP配置

一.交叉编译应用程序首先在uCLinux-dist目录里面进入user目录,创建文件夹scu,接着在scu文件夹里面创建文件hello.c和Makefile,并编辑这两个文件。如图1-1所示:图1-1 编辑hello.c和Makefile编写好后,现在Ubuntu下面编译hello.c,并运行,如图1-2所示:图1-2 ubuntu运行hello退回上级目录user,编辑Ma...

2018-11-28 19:44:26 646

原创 (四)嵌入式:GPIO点亮LED,实现按键控制(操作寄存器)

1.使能LED灯本次课程主要是了解GPIO的使用,我们查阅了相应的手册资料之后,可以知道板子上的GPIO0连接到的是按键S2,GPIO1连接到的是LED5。如图1-1所示:图1-1 GPIO的引脚关系然后查阅手册知道了GPIO的使用流程,GPIO的基地址,寄存器偏移地址,如图1-2和1-3所示:图1-2 GPIO的基地址图1-3 GPIO的寄存器偏移量使用GPIO,首先要配置GP...

2018-11-28 14:53:57 13731 1

原创 (四)Zedboard上面实现按键中断

本次实验的流程是在PL断产生按键中断,然后在PS端进行处理将按键的纸传给LED实现按下按键点亮LED灯的目的。实验大致分为四个环节:1.首先了解中断;2.本实验的中断分析;3.实际操作;4.源码分析。

2018-11-27 22:26:55 851

原创 (三)Zedboard程序的固化

由于之前基于zedboard的开发都是在调试模式下进行的,是通过 JTAG 先下载 bit 流文件,再下载 elf 文件,然后后点击Run As 来运行的程序。但是这样叧要一断电,程序就没了。那举今天我们就来试试如何让程序断电不消失。之前,JTAG 的方法是通过 TCL 脚本来初始化 PS,然后用 JTAG 收发信息,可用于在线调试。这次我们得想办法把程序放到一个非易失的存储器件里。那我们先要稍微...

2018-11-27 16:53:29 918

原创 (二)zedboard点亮LED流水灯(纯PL)

上篇文章写到了使用PS+PL的方法,构建了一个soc的最小系统,并在SDK中,编写C程序,点亮了流水灯。这次对于LED 的操作,只是用PL端的资源,而不适用任何PS的资源,实现流水灯。1.建立工程,led_pl,然后添加源文件led_pl.v接着添加约束文件led_l.xdc查看zedboard的硬件手册,可以看见LED的八个引脚都标记出来了,直接使用就行了,对于FPGA的开发,最重要的时...

2018-11-23 13:30:03 1175

空空如也

空空如也

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

TA关注的人

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