Cortex-M3学习日志(一)-- GPIO实验】的更多相关文章

1.stm32综述 2.寄存器组 3.操作模式和特权级别 4.存储器映射 5.中断和异常 6.其他 Stm32综述 这可以说是我第一款认真学习的单片机了,学完这个就要开启我通往arm9的大门了,接下来把我学到的东西做一个系统的概述: 上图是stm32的系统结构. 使用哈弗体系结构,取指和取数据分离, ICODE指令总线连接到flash闪存指令存储区,这个存储区的地址在0x00000000-0x1FFFFFFF之间,负责取指操作. DCODE数据总线负责在0x00000000-0x1FFFFFFF…
GPIO Beaglebone Back开发板引出了92个引脚,其中只有65个GPIO口可通过配置使用,由于引脚具有“复用”的特性,大约每个引脚有8种工作模式(Beagle System Reference Manual),默认情况下,设为Mode7.由于P8扩展部分的引脚功能相对简单,复用不多,故项目功能复杂时,最好选择P8上的GPIO口. 对GPIO口的操作,主要有三个步骤 1 选择GPIO口根据以下两表,确定使用那个GPIO口,该表也可以在BBB_SRM文件中找到. (1)拉电流最大只有8…
因为项目所需,所以不得不开始研究M3,我用的是NXP公司的LPC1768这个芯片,它是具有三级流水线的哈佛结构,带独立的本地指令和数据总线以及用于外设的稍微低性能的第三条总线,还包含一个支持随机跳转的内部预取指单元.好了,今天只是初步测试一下它的GPIO功能,所谓的GPIO也就是通用输入/输出口(General Purpose Input Output),万丈高楼平地起,慢慢来吧.实验的原理图很简单,就是几个LED灯,关于灯的电流及电压参数,这里不作详细介绍,有兴趣的可以到网上或供应商那里要一份…
一.Cortex M3的GPIO口特性    在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图     从图中可以看出,GPIO口都是接在APB总线上的,而且M3具有两个AHB到APB桥,GPIO则直接接在AHB矩阵上,这样可以减少CPU和DMA控制器之间的竞争冲入,获得较高性能.APB总线桥配置为写缓冲区,使得CPU或DMA控制器可直接操作APB外设,而无需等待总线写操作完成. M3数字I/O功能:高速GPIO口…
上一次简单的总结了一下DAC方面的知识,好吧,这次再来总结一下ADC方面的东东.ADC即Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器.现实世界是由模拟信号组成的,关于为什么要用模数转换器,这大概与现在数字存储技术有关吧,例如温度.压力.声音或者图像等只有转换成数字量才能方便的存储在硬盘.U盘等数码存储介质中,或许某天我们的技术发展了,数字存储可以用某些模拟量存储,也许我们就用不着这么麻烦的转来换去了.好了,闲话不多扯,来简单总结一下ADC的原理…
终于逮了个忙里偷闲的机会,就再学一下LPC1768的外围功能吧,循序渐进是学习的基本规则,也许LPC1768的DAC与8位单片机16位单片机里面集成的DAC操作类似,但是既然这是懒猫的学习日志,就顺便把DAC再好好复习一下了,或许能品出个什么味来^_^DAC是Digital to Analog Converter的缩写,中文名就是数模转换器,D/A转换器一般由数码寄存器.模拟电子开关电路.解码网络.求和电路及基准电压等几部分组成.如下图所示: 图1-1 DAC原理框图 数字量以串行或并行方式输入…
STM32学习之路入门篇之指令集及cortex——m3的存储系统 一.汇编语言基础 一).汇编语言:基本语法 1.汇编指令最典型的书写模式: 标号 操作码        操作数1, 操作数2,... :注释 1).标号是可选的,如果有,它必须顶格写.标号的作用是让汇编器来计算程序转移的地址. 2).操作码是指令的助记符,它的前面必须有至少一个空白符,通常使用提个Tab键来产生. 3).操作码后面往往跟若干个操作数,而第一个操作数,通常都给出本指令执行结果的存储地.不同指令需要不同数目的操作数,并…
ARM架构:  由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类. ARM7:       一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核. ARM9:       一类采用ARMv4或ARMv5架构的,使用哈佛结构的内核. Cortex M3: 采用了ARMv7架构的,使用哈佛结构的内核. Cortex M4: 采用了ARMv7架构的,使用哈佛结构的内核.(较前者最大区:别增加了一个DSP处理功能,SIMD单指令多数据功能.其他区别请自…
Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors The goal of the project was to use the Serial Wire JTAG protocol implemented in the ARM cortex processors for programming the flash memory of it. JTAG was actually imple…
目录 前言 posix 标准接口层设计 模拟器的系统心跳 模拟器的task底层实质 模拟器的任务切换原理 cortex M3/M4异常处理 双堆栈指针 双操作模式 栈帧 EXC_RETURN 前言 如果对硬件任务内核切换不感兴趣的同学可以跳过. 由于任务源码分析开始涉及到接口层,所以在学习源码前,先了解下posix接口层的设计. 本系列接口层会讲解两个: posix标准接口.因为本教程demo在linux上跑freertos时实际使用的就是这个接口. cortex m3/m4架构接口.因为这才是…
发现开博客园真的很有督促作用,今天也顺便开个GRE学习日志吧 2015-02-09:单词 2015-02-10:单词 2015-02-11:单词 2015-03-02:阅读 2015-03-04:阅读,填空,作文 2015-03-05: 阅读 2015-03-18:到现在每天都是刷题…
Cortex-m3启动代码分析笔记 启动代码文件名是STM32F10X.S,它的作用先总结下,然后再分析. 启动代码作用一般是: 1)堆和栈的初始化: 2)中断向量表定义: 3)地址重映射及中断向量表的转移: 4)设置系统时钟频率: 5)中断寄存器的初始化: 6)进入C应用程序. (1)按启动代码的次序,先看堆和栈的初始化: Stack_Size EQU 0x00000200 ;定义Stack_Size为0x00000200 AREA STACK, NOINIT, READWRITE, ALIG…
webpack说容易也容易,说难也难,主要还是看个人,想学到什么样的程度,很多公司可能要求仅仅是会用就行,但是也有一些公司要求比较高,要懂一些底层的原理,所以还是要花一些时间的,看个人需求.这篇仅仅是做了一些总结,都是来自官网,便于复习. 一,先理解webpack的概念: 官网上:webpack 是一个现代 JavaScript 应用程序的模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用…
javascript学习日志系列的所有博客,主要理论依据是<javascript权威指南>(犀牛书第6版)以及<javascript高级程序设计第三版>(红色书),目前js行业内公认的两本权威圣经,无奈有些地方两本书会有一些说辞不一致,那我加入了一些自我理解,尽量将两者融会贯通,通读之后发现,js确实魅力无限,每次看一遍都会有新的理解和感悟,所以这系列我会持续更新,一旦有新的理解我会立即写下来,不断的推翻重建再推翻再重建,我很享受这个自我认知不断更新的过程. 我知道学习js的路很漫…
今天继续Smobiler开发APP的学习日志,这次是做一个title.toolbar.侧边栏三种效果 样式一 一.          Toolbar 1.       目标样式 我们要实现上图中的效果,需要如下的操作: 2.       修改属性 a.         修改Mobile Form的Toolbar属性 获取窗体底部工具栏,打开集合编辑器,并点击“添加”,分别填写数据,如图 1.图 2: 图 1设置界面1 图 2设置界面2 b.         修改Mobile Form的Toolb…
我的游戏学习日志3——三国志GBA 三国志GBA由日本光荣公司1991~1995所推出<三国志>系列游戏,该作是光荣在GBA上推出的<三国志>系列作品的第一款.本游戏登场武将总数约450人,当然每个人的特性与专长都不尽相同.而在战争方面,分为野战.攻城战.以及城内决战等三大类.与其它平台一样的,玩家可以自己创造新君主.新武将.游戏共有6个舞台,最大支持8人联机对战.有多样化的兵种与武装登场,包括剑.枪.戟.弩.军马.冲车.井阑.木兽.投石车.走舸.楼船.斗舰等,每种兵科都会具备独特…
接着统计学习中knn算法实验(1)的内容 Problem: Explore the data before classification using summary statistics or visualization Pre-process the data (such as denoising, normalization, feature selection, …) Try other distance metrics or distance-based voting Try other…
[转]Cocos2d-x 3.1.1 学习日志6--30分钟了解C++11新特性 Cocos2d-x 3.1.1 学习日志6--30分钟了解C++11新特性…
如果你做为一个phper,没有用过composer,那你真的不是一个合格的开发者.那么就来记录一下composer的学习日志 下面分享几个学习源头: composer中文网站:https://www.phpcomposer.com/ composer中文文档地址:https://docs.phpcomposer.com/ packagist中国全镜像网站:https://pkg.phpcomposer.com/ 1.composer是什么呢? Composer 是 PHP5.3.2+以上 的一个…
昨天的学习日志没有写,乱忙了一整天,政治电脑. 好奇心重,想要给电脑装上传说中LInux操作系统,各种小问题折腾到半夜,今天又折腾到晚上才真正的装上系统. 可是装上系统后又发现各种的不好用.虽然界面比win7要好看很多,很舒服,下个软件却要设置java的环境变量,而我连java是什么玩意都不知道.思维导图不能用了,又得想别的办法,对我来说这是非常重要的工具啊.简直没有它无法从事脑力活动. 因为前天晚上也是折腾电脑到大半夜,昨天早晨昏昏沉沉的起来看书.昨天早晨看的是<Head First HTML…
原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---先让程序跑起来(一) 写下此文章只为了记录Surging微服务学习过程,并且分享给广大想学习surging的基友,方便广大基友快速入门,让程序跑起来. 本篇文章只记录让Surging跑起来,暂时不涉及部署方面,本文参考了其他几位大佬的文章,精简整理的 一.准备工作: 1.先把surging搞下来https://github.com/dotnetcore/surging 2.Win10 Hyper-v开启来,我们本篇中使…
原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图: 以上可以看出项目结构可以划分为4大块,1是surging的核心底层,2,3,4都可以算是业务模块,这里的2,3,4就是作者给出的一个demo,也就是说,可以将2,3,4分离出来作为自己的项目解决方案. 1.Surging.Core这层为surging底层核心,咱暂时不说这个,毕竟水平有限,正在艰难地啃.. 2.Surging.IModuleServices这层其实就是业务接口层,作…
ARM7 ARM9 ARM Cortex M3 M4 区别 arm7 arm9 可以类比386和奔腾, 不同代,arm9相比arm7指令集和性能都有所增强,arm7和arm9都有带mmu和无mmu的版本,不过大多的arm7都不带,而大多的arm9的都带.所以一般是arm7跑实时操作系统像ucos做简单的控制应用,而arm9跑linux,cortex是更新一代,分高端的A系列和和低端的M系列,来接arm9和arm7的班 一般情况下ARM7 Cortex-M3 Cortex-M4可以认为是一类,M3…
S02_CH10_ User GPIO实验 在之前的第四章课程中,我们详细的讲解了如何在VIVADO软件下封装一个简单的流水灯程序.在ZYNQ开发过程中,有时候我们可能会需要与ARM硬核进行通信,在这种情况之下,可能就需要用到更高速的接口与ARM通信.本章就将讲解如何创建一个基于高速的AXI总线的IP.本章将带领大家创建一个带AXI总线接口的自定义GPIO模拟的流水灯实验.通过这种方法,我们可以在GPIO资源缺乏的情况下,利用PL的资源来扩充GPIO资源. 10.1 创建IP Step1:打开V…
------------恢复内容开始------------ 基于Flask框架搭建视频网站的学习日志(一)2020/02/01 一.Flask环境搭建 创建虚拟环境 初次搭建虚拟环境 搭建完虚拟环境以后,安装flask(每次都要在虚拟环境下运行flask,也就是说,如果关键或者在cmd中exit了,就要重新进入虚拟环境) 安装flask:pip install flask 如果网速不够快,cmd就会报错(他经常干这种破事),这时候就要用镜像来加速 清华源加速看这里 安装完以后,在cmd输入 p…
基于Flask框架搭建视频网站的学习日志(二)2020/02/02 一.初始化 所有的Flask程序都必须创建一个程序实例,程序实例是Flask类的对象 from flask import Flask app = Flask(__name__) Flask 类的构造函数Flask()只有一个必须指定的参数,即程序主模块或包的名字.在大多数程序中,python的__name__变量就是所需的值.(Flask这个参数决定程序的根目录,以便稍后能够找到相对与程序根目录的资源文件位置)--<Flask…
基于Flask框架搭建视频网站的学习日志(三)1.原始Web 表单 本节主要用于体验一下前端后端直接数据的交互,样例不是太完善,下一节会加入Flash处理,稍微完善一下页面 (备注:建议先阅读廖雪峰老师的博客,MVC:Model-View-Controller,中文名"模型-视图-控制器") 负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器.(Flask-WTF扩展封装了WTForms,并且有验证表单数据的功能,这样就可以少写很多验证输入数据的代码,比如判断两次输入的密码…
QoS学习日志 参考:ROS2API 及 https://index.ros.org/doc/ros2/Concepts/About-Quality-of-Service-Settings 1.概述 ROS2提供了一套非常丰富的服务质量(Quality of Service, QoS)策略用于调整节点之间的通信.众所周知,在TCP与UDP之间存在着无数的折中设置,QoS既可以设置成像TCP一样可靠(reliable),也可以设置成像UDP一样高效(best effort).不同于ROS1,它主要…
文章目录 Linux学习日志--基本指令② 前言 touch cp (copy) mv (move) rm vim 输出重定向(> 或 >>) cat df(disk free) free head tail less wc(word count) date cal clear(快捷键ctrl+L) 管道"|" hostname id whoami ps top du -sh 结语 Linux学习日志--基本指令② 前言 今天又进一步学习了Linux指令,分别是:to…
有输出总会有输入,今天测试一下按键的功能,第一节已经说过了与GPIO端口相关的寄存器,这里不在重复,想要从端口读取数据,首先把FIODIR这个寄存器设置为输入,再从FIOPIN寄存器读取数据就可以了,这个寄存器具有读写功能.下面说一下这个实验的电路图,如下所示: 图1-1 Joystick按键连线图 关于按键电路还有一个,不过是接在外部中断0 上的,其电路图如下图所示: 这次实验没有涉及到外部中断,都是做普通的IO输入使用的,所以在这里外部中断就做学习总结了.下面给出这次实验的主程序: /***…