在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2180|回复: 0

[原创] 安路RISC-V软核使用笔记(3)

[复制链接]
发表于 2020-4-22 14:20:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 xqandwn 于 2020-4-22 14:27 编辑

BSP介绍
       Agile提供了一个简单的bsp,里面包含了bus、gpio、uart、interrupt的函数。bsp驱动屏蔽了硬件底层信息,对用户提供了一个抽象层次高的API。


(1) bus

       bus文件夹下面只包含1个bus.h文件,文件中用宏定义的方式定义了两个函数:bus_read()和bus_write()。外部总线的偏移量为0x80000000,在Agile的底层中已经减去了这个偏移量,每个地址对应的数据宽度为32bit,所以对用户来说,外部总线地址为:0x0000000 - 0xFFFFFFF,一共只有28bit。
图1.png

bus函数读写示例:

图2.png


(2) gpio

       gpio文件夹下包含3个文件:gpio.h、gpio_read.c、gpio_write.c,gpio挂载到Agile内部总线上,一共定义了32个双向IO,32个gpio完全独立。gpio.h里面定义了两个函数gpio_read()和gpio_write()。

图3.png

GPIO函数读写示例:

图4.png


(3) uart

       uart文件夹下面包含5个文件,print_int.c、print_str.c、uart.h、uart_rx.c、uart_tx.c。串口波特率由Agile参数化设置,串口接收中断ID等于0。

图5.png

UART函数读写示例:

图6.png

(3) interrupt

       interrupt文件夹下面包含3个文件:interrupt.c、interrupt.h、irq_fun.c。串口中断函数根据中断ID,执行对应的函数。agile不支持中断优先级和中断嵌套。

图7.png

中断函数应用示例:

首先需要在main函数中初始化中断函数,传递中断函数地址

图8.png


其次,在中断函数中获取中断ID,根据中断ID执行对应的中断函数

图9.png



....未完待续....

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 18:44 , Processed in 0.017148 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表