【Linux hardware】
种瓜大爷
Graphics Stack:Linux Openharmony Android
PKS体系深度耕耘者,为国产化奉献一份力量!
展开
-
学会看原理图-GPIO和门电路
学会看原理图GPIO和门电路 gpio 三极管 门电路原创 2017-06-03 18:39:25 · 2626 阅读 · 0 评论 -
NandFlash 控制器操作实例:读Flash
摘要: 本文以S3C2440为例来讲解NAND FLASH控制器的使用方法. 例程中故意将一部分代码放置到 nand 的4k 字节之后, 因无法自动拷贝到steppingstone, 所以需要读取nand中的内容到sdram。代码执行示意图: nand.ldsSECTIONS { firtst 0x00000000 : { head.o init.o nand.o} /*hea原创 2017-07-13 19:43:18 · 6826 阅读 · 0 评论 -
JZ2440的中断控制器
[点此回顾上课学习内容] S3C2440的中断分为两大类: 外部中断 和 内部中断.一 外部中断EXTINT[x]: 用来配置各个引脚的中断触发方式 (高电平触发、低电平触发、下降沿触发、上升沿触发), 注意该寄存器与中断源的对应关系EINTPEND[x]: xxxPEND的寄存器都是状态寄存器, 初始化时先清除标志, 在清除中断的时候将寄存器的值赋值给本身即可EINTMASK[x]: 1原创 2017-07-19 10:41:57 · 917 阅读 · 0 评论 -
JZ2440系统时钟和定时器
系统时钟 首先看下各个模块与时钟总线的关系:芯片刚开始上电时, 运行的时钟就等于晶振的时钟Fin, 通过设置MPLL和UPLL可以提升运行频率.MPLL计算方法: 例: Fout = (2 * (MDIV + 8) * Fin) / ((PDIV + 2) * (2^SDIV)) Fout = 200MHz = (2 * (92 + 8) * 12) / (1 + 2) * (2原创 2017-07-19 18:50:18 · 6412 阅读 · 0 评论 -
系统时钟MPLL和定时器操作实例
操作流程:首先启动MPLL提高系统时钟,初始化存储控制器使SDRAM工作在新的HCLK下,然后将定时器0设为2.5s产生一次中断,在中断程序里改变LED的状态。 timer.ldsSECTIONS { . = 0x30000000;/*设置当前运行地址为0x30000000*/ .text : { *(.text) }/*所有输入文件的代码段*/原创 2017-07-19 19:40:51 · 1753 阅读 · 0 评论 -
Uart串口实验
[点此回顾上课学习内容] 目的:在串口上输入一个字符,单板结合接收到后将它的ASCII值+1后,从串口输出。首先设置MPLL,提高系统时钟,令PCLK=50MHz,Uart选择PCLK为时钟源。然后代码复制到SDRAM中之后,调用main函数。 uart.ldsSECTIONS { . = 0x30000000;/*设置当前运行地址为0x30000000*/ .text原创 2017-07-25 19:28:13 · 8568 阅读 · 2 评论 -
uart_stdio实验
目的:在串口0上实现printf、scanf等函数,它使用scanf、sscanf、printf等函数从串口接收一个十进制数字序列,然后将它转化为十六进制输出。大致内容和uart实验类似,这里只分析两个文件。 stdio.ldsSECTIONS { . = 0x00000000; .init : AT(0){ head.o init.o nand.o}/*将上面文件对应的运原创 2017-07-25 20:46:19 · 581 阅读 · 0 评论 -
LCD控制器
[点此回顾上课学习内容](http://blog.csdn.net/pz0605/article/details/53246715) 2440的lcd控制器可以驱动 STN LCD 和 TFT LCD 本文以较为常见的 TFT LCD 来讲解使用方法:基础知识:首先, 我们来看下2440的 lcd controller 组成框图: REGBANK: LCD控制器的寄存器组, 含有17个寄存器及原创 2017-07-26 19:32:18 · 7463 阅读 · 0 评论 -
环境和工具介绍
用JZ2440为模版来学习ARM的裸机编程、uboot和内核移植、以及初步驱动的学习。以下所用所有的工具如未特别标注则在韦东山网盘里都有下载:网盘链接请点我! 详细的介绍请点我!虚拟机: VMwareLinux版本: Unbuntu 9.10代码编辑工具: Notepad++ (需要自己下载)串口工具: SecureCRT远程登录工具: FileZilla代码阅读原创 2017-06-11 12:27:05 · 623 阅读 · 0 评论 -
JZ2440的NandFlash控制器
芯片的型号:K9F2G08U0C摘要: 本文以S3C2440为例来讲解NAND FLASH控制器的使用方法. 例程中故意将一部分代码放置到 nand 的4k 字节之后, 因无法自动拷贝到steppingstone, 所以需要读取nand中的内容到sdram, 本例程重点关注nand的初始化和读取.1. 硬件部分:1.1 简介:芯片大小:256原创 2017-07-13 11:20:24 · 1447 阅读 · 0 评论 -
JZ2440MMU段映射代码实现
实现流程:JZ2440V3的SDRAM物理地址范围处于0x30000000~0x33FFFFFF,S3C2440的寄存器地址范围都处于0x48000000~0x5FFFFFFF。在前面,通过往GPBCON和GPBDAT这两个寄存器的物理地址0x56000010、0x56000014写入特定的数据来驱动4个LED开启MMU,并将虚拟地址空间0xA0000000~0xA0100000映射到物理地址空原创 2017-07-11 18:31:05 · 784 阅读 · 0 评论 -
学前班_学会看原理图-协议类
协议类 uart I2C SPI Nand Flash LCD原创 2017-06-03 18:45:37 · 998 阅读 · 0 评论 -
学前班_学会看原理图-RAM-like
RAM-like 总结原创 2017-06-03 19:34:36 · 1169 阅读 · 0 评论 -
刚接触开发板之体验
接口、接线、装驱动、装软件烧写裸版重烧系统:uboot、内核文件系统虚拟机环境配置、安装软件uboot、内核、打补丁及建source insight工程根本件系统及初试驱动TQ2440、MINI2440环境搭建dnw下载替代方法原创 2017-06-03 20:02:11 · 613 阅读 · 0 评论 -
裸机_GPIO实验_汇编
无论是什么开发板,实现LED灯的点亮都应该作为学习的第一步。汇编点亮LED灯查看原理图 查看数据手册设置相应的寄存器,配置引脚 学会运用pdf文档的查询功能! 3.汇编实现代码@******************************************************************************@ File:led_on.S@ 功能:LED点灯程序,点原创 2017-06-11 12:53:46 · 923 阅读 · 0 评论 -
裸机_GPIO实验_C语言
引入:我们执行C语言程序时候,Main函数是被谁调用?执行完要返回给谁?答:编译器编译代码 = 启动文件(标准库文件) + hello.c;由启动文件来调用main,最后main返回给启动文件。 标准库文件是编译器自动在代码前添加的,用来设置C程序的堆栈(无对战空间没法运行C程序)等,然后调用main函数。所以我们执行裸板的时候,需要自己写启动文件,来得以调用C代码。启动文件@*******原创 2017-06-12 12:58:49 · 938 阅读 · 0 评论 -
JZ2440存储管理器代码实现(使用SDRAM)
启动文件初始化代码:@*************************************************************************@ File:head.S@ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行@ 代码流程:@1> 关看门狗@2> 设置存储控制寄存器(配置)@3> 复制代码到SDRAM中@4> 设置堆栈@5>原创 2017-06-14 19:27:47 · 1092 阅读 · 0 评论 -
JZ2440存储管理器学习
为什么存在存储器管理器:答:CPU不会管太多,CPU只会发出指令从某个地址读数据,此时存储器管理器会根据地址判断是什么设备,并负责数据操作,把CPU想操作的数据反馈给CPUS3C2440的地址空间:27位地址线,32位数据线,8个片选信号。共8个存储器(BANK0-7)1GB,系统上电将从bank0开始执行。S3C2440对外引出27根地址线ADDR0-ADDR26,访问范围只有128MB,CPU对外还引出8根片选信号nGCS0-nGCS7,对应BANK0-BANK7,当访问BANKx的地址空间原创 2017-07-09 11:22:37 · 1147 阅读 · 0 评论 -
JZ2440的MMU内存管理单元
学习于此一、有MMU参与的寻址过程简介 首先需要了解3个总线地址概念:虚拟地址(VA,Virtual Address)、转换后的虚拟地址(MVA,Modified Virtual Address)、物理地址(PA,Physical Address)。 JZ2440v3使用2片16bit位宽、32MB容量的SDRAM组合成“一片”32bit位宽、6原创 2017-07-11 15:55:01 · 1169 阅读 · 0 评论 -
【基础】.text .global _start和_start
学习于simanstar的博客! ① .text.text部分是处理器开始执行代码的地方,指定了后续编译出来的内容放在代码段【可执行】 arm-linux-gcc编译器的关键词② .global.global关键字用来让一个符号对链接器可见,可以供其他链接对象模块使用;告诉编译器后续跟的是一个全局可见的名字【变量/函数名】.global _start让_...原创 2018-06-26 17:10:36 · 5900 阅读 · 0 评论