微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > DSP学习交流 > 裸机篇一:寄存器与GPIO

裸机篇一:寄存器与GPIO

时间:10-02 整理:3721RD 点击:

       今天跑了跑例程,分析了创龙提供的LED测试代码,接着找了找寄存器的内存定义,有点颇费功夫,但是有付出必然有收获。
      首先用寄存器写GPIO得弄到寄存器地址


可以从手册上看到GPIO的基地址是0x02320000;


这个表可以明显看到各个寄存器相对于基地址的偏移地址,例如方向(DIR)寄存器的偏移地址是0x10,想要使用它亟需基地址加上偏移地址,即0x02320010即可。同理其他寄存器也类似操作。
接下来:

引脚控制寄存器0 PIN_CONTROL_0的地址0x02620580

从上图明白的看出来引脚控制寄存器0相应位赋值为1就做通用IO口功能,大致想驱动IO需经历以下步骤:
1.解锁关键寄存器
*(volatile unsigned int *)(0x02620038) = 0x83e70b13;
*(volatile unsigned int *)(0x0262003C) = 0x95a4f1e0;
2.配置引脚控制寄存器0的相应位为1;
3.配置DIR为输入或输出;
4.配置相应输入的下降或上升的相应寄存器,或OUT_DATA值5.锁定关键寄存器
*(volatile unsigned int *)(0x02620038) = 0x00000001;
*(volatile unsigned int *)(0x0262003C) = 0x00000001;
6.按照预想流程实现IO驱动

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top