本文是对韦东山嵌入式第一期学习的记录之一,如有您需要查找的信息,可以继续往下阅读. 想要用按键点亮LED灯,就需要知道按键和LED灯的相关信息,这样才可以进行之后的操作.阅读JZ2440的原理图,可以得到以下信息(见下方图片) JZ2440开发板用到了S2,S3,S4三个按键,nLED1,nLED2,nLED4三盏LED灯,它们对应的寄存器位分别是: 按键:S2(EINT0)——GPF0 S3(EINT2)——GPF2 S4(EINT11)——GPG3 LED:  nLED1——GPF4 nLE…
之前一直在玩树莓派,最近实验室买了些NodeMCU就想着玩一玩,没想到挺有意思的.其实树莓派能实现的功能,它大部分也可以,价格比派也便宜不少,舍不得买派的同学可以先买这个开发板玩一玩. 本文主要介绍了一下如何配置NodeMCU的开发环境,开发环境只需配置一次.配置完成后,使用代码实现NodeMCU上自带LED的闪烁.过程很简单,初学者可以通过这几个简单步骤,先了解一下NodeMCU的基本操作. 本文主要包括以下三个模块: 一.NodeMCU介绍及所需设备 二.配置NodeMCU的开发环境 三.点…
平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 一.我们首先来做第一个实验,用汇编语言点亮板子上的LED. 1.1 LED的原理图 从下面的原理图可知LED1是连接到芯片的GPF4                         1.2 相关的GPIO寄存器的配置 我们要点亮LED,就要把相关的端口配置成输出口,并且输出低电平.看看芯片手册,要GPF4输出低电平要配置GPFCON寄存器设置相应的位位01即为输出状态,在配置GPFDAT相应的位为0即可输出低…
想要修改ARM芯片的时钟,需要去查询芯片手册和原理图,获取相关的信息(见下方图片) 首先来看时钟的结构图 根据结构图可以看出,时钟源有两种选择:1. XTIpll和XTOpll所连接的晶振 2. EXTCLK引脚外接一个时钟源 OM[3:2]用来选择到底使用哪个时钟源 再查看原理图,可以发现:OM3和OM2硬件上都是接GND,所以可以知道:采用12MHz晶振作为时钟源 阅读芯片手册,还可以查询到其他寄存器的相关信息,见下图: JZ2440内部使用三种时钟: FCLK: 用于ARM920T芯片,即…
在JZ2440中,点亮LED就是给LED的控制位设置为输出,数据位设置为低电平,而通过按键点亮LED,就需要将按键对应的控制位设置为输出. 下面是JZ2440的3个LED电路图: 下面是JZ2440的3个按键的电路图 通过查找nLED_1,nLED_2,nLED_4对应的引脚,发现它们分别对应GPF4,GPF5,GPF6,如图: 通过查找EINT0,EINT2,EINT11对应的引脚,发现它们分别对应GPF0,GPF2,GPG3,如图: 由此,我们再去看2440的Datasheet,查看它们的控…
一.下载源码:ftp://ftp.denx.de/pub/u-boot/ 二.初始化编译: ①新建一个单板: cd board/samsung/ cp smdk2410 smdk2440 -rf   cd ../../include/configs/ cp smdk2410.h smdk2440.h       修改boadrs.cfg : 复制2410一行,并改为2440 make , 烧写调试. ②make menuconfig      #根据自身需求进一步配置 ③修改Makefile ,…
一.下载U-boot源码:ftp://ftp.denx.de/pub/u-boot/ 二.uboot的启动过程: 部分硬件初始化——>加载完整uboot到RAM——>跳转到第二阶段入口开始执行,整个过程最重要的两个文件: /arch/arm/cpu/arm920t/start.S,涉及到特定硬件设备的读写寄存器操作以及特定体系结构的汇编语言(中断.时钟等). board/samsung/smdk2440/lowlevel_init.S,完成底层的初始化(内存控制器等). 具体流程如下: 1 s…
查看UART在硬件上的信息,阅读JZ2440原理图可以看到: JZ2440开发板的UART0是可以跟USB相接的,用于打印调试,UART1,UART2两个串口用来外接模块.所以本文仅对UART0进行操作. 从上图可以看到,UART0的TXD0和RXD0对应GPH2和GPH3,硬件上获取的信息大概就就是这些,接下来对芯片手册的UART部分进行分析: 首先需要设置UART0的TXD0和RXD0引脚,对应的GPHCON,GPHDAT,GPHUP寄存器见下图: GPHCON: 将GPH2和GPH3分别设…
凡走过必留下痕迹,学点什么都会有用的. 本系列博文总结了自己在学习嵌入式Linux编程过程中的收获,若有错误,恳请指正,谢谢! --参考教材韦东山系列教材 bootloader 是一个用于启动linux内核的C程序,为了达到最终启动内核的目的需要完成以下几个步骤: step1:硬件相关初始化,为启动内核准备硬件平台: step2:将内核从NAND FLASH读取到SDRAM: step3:设置需要传递给内核的启动参数: step4:跳转到SDRAM,运行内核: 下面将详细讲述各个步骤细节: 第一…
title: Jz2440开发板熟悉 tags: ARM date: 2018-10-14 15:05:56 --- 概述 外部晶振为12M Nand Flash 256M,Nor Flash 2M,SDRAM 32*2=64M 分区 内容 Nand flash地址分配 bootloader分区 Uboot分区 0---256k 环境变量分区 环境变量(参数) 256k---256k+128k kernel 分区 Linux内核 256k+128k-256k+128k+2M Rootfs分区 根…