MIPS汇编代码(龙芯)小记
龙芯代码中用于设置CPU GPIO High / Low部分, 寄存器在Loongson3A4000_register_doc_V1.2.pdf中有说明, 具体配置步骤:
1.设置输出状态为高或低
2.设置GPIO输出使能, 低有效
3.设置功能使能(有些GPIO属于复用Pin,需要先设置成GPIO功能), 低有效
/* set GPIO as output
* x : 0x1<<offset
*/
#define GPIO_SET_OUTPUT(x) \
dli v0, 0x900000001fe00500; \ /* set GPIO base address */
lw v1, 0xc(v0); \ /* read offset 0x0c register(input state) from GPIO base address */
or v1, x; \ /* set to high */
sw v1, 0x8(v0); \ /* write data to GPIO base address, offset 0x8 */
lw v1, 0x0(v0); \ /* read output enable register state */
or v1, x; \
xor v1, x; \
sw v1, 0x0(v0); \
lw v1, 0x4(v0); \ /* read GPIO function enable register state */
or v1, x; \
xor v1, x; \
sw v1, 0x4(v0); \
nop; \
nop;
/* clear GPIO as output
* * x : 0x1 <<offsest
* */
#define GPIO_CLEAR_OUTPUT(x) \
dli v0, 0x900000001fe00500; \
lw v1, 0xc(v0); \
or v1, x; \
xor v1, x; \ /* set to low */
sw v1, 0x8(v0); \
lw v1, 0x0(v0); \
or v1, x; \
xor v1, x; \
sw v1, 0x0(v0); \
lw v1, 0x4(v0); \
or v1, x; \
xor v1, x; \
sw v1, 0x4(v0); \
nop; \
nop;
版权声明:
作者:bin
链接:https://ay123.net/mystudy/bios/804/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
MIPS汇编代码(龙芯)小记
龙芯代码中用于设置CPU GPIO High / Low部分, 寄存器在Loongson3A4000_register_doc_V1.2.pdf中有说明, 具体配置步骤:
1.设置输出状态为高或低
2.设置GPIO输出……
共有 0 条评论