arm: 使用结构体操作寄存器

发布时间:2023-09-01  

使用结构体操作寄存器:


//寄存器赋值和取值的时候,要注意寄存器的长度,有的寄存器的值只有8位。

//还要注意,使用volatile修饰寄存器变量。volatile 参考http://www.cnblogs.com/mylinux/p/4630749.html


//addr.h

typedef unsigned int S3C24X0_REG32;


/* NAND FLASH (see S3C2410 manual chapter 6) */

typedef struct {

    S3C24X0_REG32 NFCONF;

    S3C24X0_REG32 NFCMD;

    S3C24X0_REG32 NFADDR;

    S3C24X0_REG32 NFDATA;

    S3C24X0_REG32 NFSTAT;

    S3C24X0_REG32 NFECC;

} S3C2410_NAND;


//nand.c

static S3C2410_NAND* s3c2410nand = (S3C2410_NAND *)0x4e000000;

//如此,s3c2410nand 表示寄存器组的起始地址 。

//&s3c2410nand->NFCMD 表示NFCMD寄存器的地址 。

//s3c2410nand->NFCMD 表示NFCMD寄存器的值 。

//寄存器赋值和取值的时候,要注意寄存器的长度,有的寄存器的值只有8位。

//还要注意,使用volatile修饰寄存器变量。


/* 读取数据 */

static unsigned char s3c2410_read_data(void)

{

    volatile unsigned char *p = (volatile unsigned char *)&s3c2410nand->NFDATA;

    return *p;

}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    三、ARM 寄存器及异常处理;3.1 ARM 内部寄存器 ARM920T 总共有 37 个寄存器,其中 31 通用 32 位寄存器和 6 个状态寄存器,但不能在同一时刻对所有的寄存器可见。处理器状态和运行模式决定了哪些寄存器......
    详解ARM处理寄存器与用户模式;37个寄存器 ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄器包括: 31个通用寄存器:包括程序计数器(PC指针),均为32位的寄存器。 6个状态寄存器......
    基于ARM单片机中的部分寄存器地址为什么会相差4;图中是LPC1114用户手册系统控制模块(SYSCON)中的部分寄存器,请看红色框内,地址相差0x4。为什么会相差4?很多初学者问我这个问题,高手......
    ARM汇编教程(2): 数据类型与寄存器;数据类型 这是 ARM 汇编基础知识系列教程的第二部分,涉及数据类型和寄存器。 与高级语言类似,ARM支持对不同数据类型的操作。我们可以加载(或存储)的数......
    模式 (svc) 数据访问终止模式 (abt) 系统模式 (sys) 未定义指令终止模式 (und)     1.2.ARM寄存器: 31个通用寄存器 : R0~R7(未备份寄存器) , R8~R14......
    我们来回顾下ARM架构CPU的内部结构。 控制单元是整个CPU的指挥控制中心 ,由程序计数器PC(Program Counter),指令寄存器IR (Instruction Register)、指令译码器ID......
    七、ARM 指令集;7.1 数据处理指令 7.1.1 数据传送类 MOV 类指令:核内寄存器间的数据传送 加载和存储指令(L/S):核内寄存器与挂在存储器总线上器件的数据传送 注意: 核内寄存器......
    略时指令为无条件执行。MCR2中,为Ob1111,指令为无条件执行指令。  MCR:将ARM处理器的寄存器中的数据传送到协处理器的寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。指令......
    高低电平和检测外部输入电平(GPFCON寄存器和GPFDAT寄存器) 5条常用的ARM汇编指令:MOV、LDR、STR、BL、B; 编写汇编程序的基本格式; 2. 在C语言方面,掌握了: 在启动文件中汇编是如何转入C语言......
    系统有安全级别要求,多模式为了方便操作系统多种角色安全等级需求 ARM寄存器组织 ARM 处理器有 37 个 32 位长的寄存器。 1 个用作 PC(程序指针)。 1 个用作 CPSR(程序状态寄存器)。 5......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>