S3C2440学习笔记
学习S3C2440开发板的笔记
Aspirant-GQ
这个作者很懒,什么都没留下…
展开
-
CSND搬家到------->博客园(在博客园写作&&技术交流)
后续就在博客园整理笔记和技术交流啦~~~已经把CSDN相关的文章全部整理发布到博客园点击去康康博主的新家之前很多人通过qq与博主联系,由于各种原因在QQ上不能够及时解答疑惑,现在大家可以通过如下方式在博客园与博主交流哦(我会经常去看博客园消息的):...原创 2021-07-18 23:37:13 · 1305 阅读 · 1 评论 -
S3C2440—12.按键中断
文章目录一. 总体二. CPSR设置三. 中断源设置四. 中断控制器设置五. C中断处理函数六. 汇编IRQ异常处理程序七. 源码一. 总体要驱动按键中断控制LED亮灭,程序要进行如下几部分操作:在start.S中对CPSR寄存器中清除I位,使能IRQ,这是大前提根据原理图找出按键对应的外部中断,对外部中断对应引脚做相应配置,使能相应的外部中断:EINTMASK开启中断使能:INTMSK要设置编写C中断处理函数,通过INTOFFSET、EINTPEND确定哪个中断触发,并做相应处理,还要清除中原创 2020-08-19 16:29:00 · 675 阅读 · 0 评论 -
S3C2440—11.und异常
文章目录1 未定义指令2 中断向量表3 设置一个未定义指令4 调用C函数5 UND异常处理程序6 注意点lr与pc保存现场中断向量表的跳转程序执行顺序1 未定义指令先看一下ARM中指令的格式:注意:这个表的最上面的对应的位是从高到低的,所以0Xdeadc0de 就是一条未定义指令(方便易懂)2 中断向量表未定义异常,首先要产看中断向量表:在板子上电之后,CPU从0地址开始执行,首先执行复位Reset操作,而且触发异常之后会跳转至相应的地址去进入异常处理程序,所以我们要在0地址开始按照中断向原创 2020-08-17 18:28:56 · 393 阅读 · 0 评论 -
ARM—异常中断处理
文章目录一. ARM程序执行流程二. ARM工作模式三. ARM中异常中断的种类四. 异常中断向量表及优先级五. 异常中断用到的寄存器六. ARM进入处理异常中断时的操作七. ARM退出处理异常中断时的操作一. ARM程序执行流程在ARM体系中,程序执行的流程有三种:顺序执行程序,在正常顺序执行代码的时候,每次执行一条ARM指令,PC=PC+4(Byte)。(THUMB状态下PC=PC+2)跳转执行程序,利用跳转指令,程序可以跳转到指定的地址处执行程序,或者跳转到特定的子程序处执行。异常中断发生原创 2020-07-16 23:02:53 · 2344 阅读 · 3 评论 -
S3C2440—10.代码重定位
文章目录一.启动方式1.1 NAND FLASH 启动1.2 NOR FLASH 启动二. 段的概念2.1 重定位数据段2.2 加载地址的引出三.链接脚本3.1 链接脚本的引入3.2 链接脚本的正确打开方法3.3 链接脚本测试3.4 elf文件3.5 bin文件四.重定位4.1 start.S 重定位数据段4.2 start.S 清零.bss段4.3 链接脚本改进4.4 C语言实现重定位4.5 C语言实现清零.bss段4.6 符号表五.位置无关码(相对跳转与绝对跳转)本文主要介绍ARM裸机代码重定位的相关原创 2020-06-02 22:51:16 · 633 阅读 · 1 评论 -
S3C2440—9.复制程序到SDRAM中执行
文章目录一.S3C2440的启动方式一.S3C2440的启动方式S3C2440的MMU有一种“steppingstone”.技术,是协助MCU从无法执行程序的NAND FLASH执行启动程序的一种方法,其启动步骤如下:1、系统上电后,首先自动判断是否是autoboot模式,如果使用 s3c2440是带有nandflash的,并且被设置成autoboot,从nandflash开始启动.2、在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(原创 2020-05-27 20:22:09 · 462 阅读 · 0 评论 -
S3C2440—8.读写SDRAM
文章目录一.内部结构二.相关寄存器BWSCONBANKCON6REFRESHBANKSIZEMRSR三.读写SDRAMSDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写一.内部结构原理图如下:存储逻辑结构:可以看出SDRAM的内部是一个阵列,就像表格一原创 2020-05-20 20:31:07 · 407 阅读 · 0 评论 -
S3C2440—7.存储控制器访问外设
文章目录一.内存接口的概念二.存储控制器(内存控制器)2.1 什么是存储控制器?2.2 S3C2440存储控制器介绍2.3 存储控制器如何处理不同位宽的外设2.4 怎么确定芯片的访问地址?三.时序问题一.内存接口的概念S3C2440是SOC,所以会有很多外设,一般驱动外设的方法可以分为:通过CPU访问相应的的寄存器,然后通过控制器驱动外设CPU直接访问外设地址,驱动外设后一种访问方式是CPU直接对内存地址的访问,即通过内存接口访问外设,CPU通过片选线选定外设,通过地址线先选定地址,通过数据线原创 2020-05-14 00:49:12 · 650 阅读 · 0 评论 -
S3C2440—6.串口的printf实现
文章目录一.框架二.printf函数原理2.1 printf的声明2.2 参数解读2.3 如何得到可变参数的值2.4 解决变参的宏定义2.5 完成printf函数的封装三.结合UART实现一.框架在之前STM32的学习中,我在串口输出调试信息的时候,经常采用printf()函数作为串口输出函数,这样不仅方便调试而且代码易读。在S3C2440的学习中,对于UART同样需要对串口输出信息进行调试...原创 2020-05-07 22:21:24 · 457 阅读 · 0 评论 -
S3C2440—5.UART的使用
文章目录一.S3C2440中的UART介绍1.1 电平匹配1.2 UART数据帧与波特率1.3UART框图二.UART的配置2.1 UART引脚的配置2.2 波特率的配置2.3 数据帧的配置2.4 收发模式配置2.5 收发数据寄存器三.代码一.S3C2440中的UART介绍UART(universal asynchronous receive transmitter)通用异步收发器,用来收发串...原创 2020-05-02 21:09:19 · 734 阅读 · 1 评论 -
S3C2440—1.熟悉裸机开发板
文章目录一.板载资源介绍二.安装驱动及上位机1.USB的驱动及上位机2.eop驱动安装3.安装烧录软件oflash三.烧写开发板1.预备知识2.烧写裸板3.使用u-boot烧写程序四.恢复出厂设置一.板载资源介绍开发板使用了三星的JZ2440,网上有丰富的资源,有助于学习,板载资源如图所示:需要特别注意以下几点:一般使用JTAG烧写口来烧写程序,用eop即可有俩个USB接口,其中U...原创 2020-03-17 23:53:39 · 1569 阅读 · 0 评论 -
S3C2440—2.裸机开发步骤及工具使用
文章目录一.裸机开发步骤简介1.在X86架构的Windows系统中2.在X86架构的Ubuntu系统中3.ARM裸机开发二.soucre insight使用1.sourec insight介绍2.操作流程Ⅰ.增加文件类型Ⅱ.创建工程Ⅲ.编译工程Ⅳ.设置中文字体Ⅴ.界面说明Ⅵ.小技巧一.裸机开发步骤简介1.在X86架构的Windows系统中1.建立工程2.编辑源代码3.编译(VC6.0)...原创 2020-03-18 19:22:20 · 544 阅读 · 0 评论 -
S3C2440—3.用点亮LED来熟悉裸机开发的详细流程
文章目录一.硬件知识1.LED原理图2.芯片手册Ⅰ.找LED原理图Ⅱ.找对应引脚Ⅲ.在芯片手册中查找引脚信息Ⅳ.查看寄存器说明Ⅴ.配置寄存器二.S3C2440框架与启动过程三.要用到的软件1.远程登陆工具 MobaXterm2.FTP传输工具FileZilla3.交叉编译工具arm-linux-gcc四.编写点亮LED的程序1.汇编语言版2.C语言版2020.3.18-19裸机点亮LED可以分...原创 2020-03-22 15:09:53 · 899 阅读 · 0 评论 -
S3C2440—4.时钟系统
文章目录一.S3C2440时钟体系介绍1.总线与时钟2.时钟来源3.选择时钟4.产生时钟5.流程二.如何配置时钟源1.设置FCLK频率寄存器 MPLLCON2.设置分频HDIV、PDIV寄存器 CLKDIVN3.时钟开关控制寄存器 CLKCON一.S3C2440时钟体系介绍1.总线与时钟S3C2440有俩个总线:AHB高速总线、APB外围总线。对应三个时钟源:ARM芯片CPU的FCL...原创 2020-04-27 21:21:41 · 387 阅读 · 0 评论 -
三分钟了解ARM运行C程序的内部机制
文章目录一.代码二.知识储备1.ARM汇编指令2.寄存器知识三.代码解析1.指令分析第一条指令:第二条指令:第三条指令:第四条指令:第五、六条指令:第七条指令:第八、九、十条指令:第十一条指令:第十二条指令:第十三条指令:第十四、十五、十六条指令:第十七、十八条指令:第十九条指令:第二十条指令:2.总体分析一.代码之前学习了ARM裸机的LED点亮C语言实现,了解了ARM程序中,main函数需要...原创 2020-03-25 22:46:02 · 1202 阅读 · 3 评论 -
嵌入式ARM汇编详解(持续更新)
文章目录零.预备知识1.ARM与X862.ARM中指令的执行3.ARM的九种寻址方式立即数寻址寄存器寻址寄存器间接寻址寄存器偏移寻址寄存器基址变址寻址批量寄存器寻址相对寻址堆栈寻址块拷贝寻址一.移位操作二.寄存器装载和存储指令1.LDR:装载单一数据2.LDMIA:先减少,后装载3.STR:存储单一数据4.STMDB:先存储,后增加三.算术和逻辑指令1.MOV:传送2.ADD:加法3.SUB:减法...原创 2020-03-24 19:54:46 · 2816 阅读 · 2 评论 -
ARM的九种寻址方式
文章目录1.立即数寻址2.寄存器寻址3.寄存器间接寻址4.寄存器偏移寻址5.寄存器基址变址寻址6.批量寄存器寻址7.相对寻址8.堆栈寻址9.块拷贝寻址寻址方式就是CPU根据指令中的地址信息,找出物理地址也就是内存地址的方式,通俗理解就是ARM指出内存地址的方式。寻址的目的就是找出操作数,比如ARM要做一个除法运算,就需要除数和被除数,除数和被除数都是除法指令的操作数,要找到这些操作数,可以有多...原创 2020-03-23 20:40:26 · 9683 阅读 · 2 评论 -
内存地址、机器码与汇编指令的三角恋关系
虽然机器码和内存地址领证在一起了,但是俩个人都和汇编指令有着说不清的关系,机器码的前任是汇编指令,而汇编指令又与内存地址暗地相通,这究竟是道德的沦丧还是人性的扭曲,今天就让我来领大家细细分解这三者的前世今生!!!文章目录一.原汇编代码二.反汇编代码三.三角恋关系1.汇编指令与内存地址的关系2.机器码与汇编指令3.内存地址与机器码之前我们使用汇编语言编写了点亮LED程序,.S文件通过FTP传到...原创 2020-03-22 18:12:51 · 2919 阅读 · 1 评论 -
Ubuntu安装arm-linux-gcc 详细步骤
文章目录1.获取压缩包2.解压 压缩包到指定路径3.新建目录,解放目录权限4.复制到新目录5.配置环境变量和库变量6.使用source命令重新加载生效该配置文件7.验证gcc编译的只能在Linux中使用,要在ARM中使用,还要使用交叉编译工具:arm-linux-gcc1.获取压缩包首先尝试使用命令行安装,结果如下:但是此方法需要翻墙获取(我听别人说的…),一般情况不会成功的。所以在...原创 2020-03-21 19:33:54 · 7784 阅读 · 1 评论 -
U-Boot详解
转自:http://www.elecfans.com/d/617674.html文章目录一.为什么要有uboot1.1、[计算机](http://www.hqchip.com/app/873)系统的主要部件1.2、PC机的启动过程1.3、典型嵌入式[linux](http://www.elecfans.com/tags/linux/)系统启动过程1.4、[android](http://www....转载 2020-03-18 10:48:36 · 501 阅读 · 0 评论