JZ2440开发板之中断体系

ARM架构的CPU有7种工作模式:

1. 用户模式--usr

2. 管理模式--svc

3. 系统模式--sys

4. 快中断模式--fiq

5. 中断模式--irq

6. 数据访问终止模式--abt

7. 未定义指令终止模式--und

ARM架构的CPU有2种工作状态:

1. ARM状态--处理器执行32位的字对齐的ARM指令

2. Thumb状态--处理器执行16位的半字对齐的Thumb指令

ARM架构的CPU的寄存器:

1. ARM有31个通用的32位寄存器和6个状态寄存器

2. 每种ARM工作模式下都有16个通用寄存器和一个或两个程序状态寄存器

3. CPSR--程序状态寄存器,当前工作在什么模式下

4. SPSR--程序状态保存寄存器,保存前一个工作模式的CPSR寄存器的值

S3C2410/S3C2440中断控制器

1. 中断方式:发生中断时,会设置相应的寄存器;CPU在每执行完一条指令后就去检查这个寄存器,如果法相寄存器被设置,就去执行相应的中断。

2.

时间: 2024-10-07 02:11:10

JZ2440开发板之中断体系的相关文章

Linux学习 :移植U-boot_2016.09到JZ2440开发板

一.下载源码:ftp://ftp.denx.de/pub/u-boot/ 二.初始化编译: ①make smdk2410_defconfig #首先使用默认配置,减少后续的配置工作 ②make menuconfig      #根据自身需求进一步配置 ③修改Makefile ,开头只能架构和编译器: ARCH=arm CROSS_COMPILE=arm-linux-      ④修改uboot代码:    1. 设置PLL的时钟的函数在_main中的board_init_f中初始化函数列表中的 

JZ2440开发板

2014年12月14日 刚拿到JZ2440开发板,视频第0课第一节: (1) 要给开发板烧系统,就要用到JTAG,(JTAG一般是与电脑的并口相连的),但是现在电脑都没有并口,所以出现了:OpenJTAG和J-Link.我用的是J-Link. 视频上讲的 offlash 程序,用于烧写系统,但是它只适用于 并口的JTAG 和 OpenJTAG ,不可以用于J-Link. 如果是 J-Link ,则只能使用J-Link烧写 Nor Flash .可以向Nor Flash中烧写 u-boot.bin

基于JZ2440开发板编写bootloader总结(一)

凡走过必留下痕迹,学点什么都会有用的. 本系列博文总结了自己在学习嵌入式Linux编程过程中的收获,若有错误,恳请指正,谢谢! --参考教材韦东山系列教材 bootloader 是一个用于启动linux内核的C程序,为了达到最终启动内核的目的需要完成以下几个步骤: step1:硬件相关初始化,为启动内核准备硬件平台: step2:将内核从NAND FLASH读取到SDRAM: step3:设置需要传递给内核的启动参数: step4:跳转到SDRAM,运行内核: 下面将详细讲述各个步骤细节: 第一

JZ2440开发板Uboot烧写

最近买了一块韦东山的JZ2440开发板,在学习的过程中,发现根据书上提供的Jflash烧写Uboot总是失败,最后定位问题原因: 1.文件路径名称含有中文字符 2.在Options->Program Settings->flash中选择正确的flash芯片 两项选择都正确后,即可正确烧写Uboot.

Jz2440开发板熟悉

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分区 根

移植u-boot-2015.10到JZ2440开发板(五)——设置nand分区,环境变量保存地址和其它默认参数

在下载内核或文件系统时,我们可以直接在命令中写明烧到nandflash的具体地址,但较麻烦,我们可以给nandflash分区,这样就可直接写烧到那个分区就行了,较为方便.如何设置呢?首先我们在uboot中输入mtdparts命令,看看默认的分区,结果提示mtdids not defined, no default present.搜索"mtdids not defined",定位到common/cmd_mtdparts.c的mtdparts_init函数中,分析发现是mtdids_de

JZ2440开发板之GPIO实验,遇到的链接语句的问题

自己写的 crt0.s , led.c , Makefile 文件,下到开发板上后始终无法运行,但是将led.c文件拷贝到光盘提供的对应程序中编译,结果可以运行.推测是 crt0.s 或者 Makefile的问题. 通过比对crt0.s发现没有问题.应该是Makefile的问题. 发现自己写的Makefile中的链接语句是: 1 arm-linux-ld -Ttext 0x00000000 -g led.o crt0.o -o led_elf 光盘中对应的语句是: 1 arm-linux-ld

移植u-boot-2015.10到JZ2440开发板(二)——支持norflash

串口打印出信息后,发现打印出Flash: 0 Bytes,很明显没有识别出norflash,因此在代码中搜索“Flash: ”,定位到initr_flash(),一路跟踪下去,flash_init(), flash_detect_legacy()中有以下一段代码: flash_read_jedec_ids(info); debug("JEDEC PROBE: ID %x %x %x\n", info->manufacturer_id, info->device_id, in

JZ2440开发板之LCD

LCD的几个重要的引脚: (1)LED+\LED- 这两个引脚是由升压芯片来提供的,需要将GPB0置为高电平,才能使升压芯片工作,进而点亮屏幕 (2)水平方向和竖直方向的同步信号,时钟信号 垂直方向的 VSPW\VBPD\VFPD\LINEVAL 的单位都是行(说明屏幕的实际扫描范围比屏幕本身大). 水平方向的 HSPW\HBPD\HFPD\HOZVAL 的单位是像素 VDEN 表示像素的开始 (3)如何写LCD程序 1.打开LED背光 2.设置各个时序 3.将图片保存在buffer中,数据保存