浅析nice_demo.c

本文主要介绍了参与芯来RISC-V杯竞赛时对官方demo——nice_demo.c的理解。通过替换main.c,重点分析了使用nice核进行矩阵操作的流程,特别是insn.c中的custom_lbuf、custom_rowsum和custom_sbuf函数,它们利用内联汇编实现了自定义指令。文章详细讲解了内联汇编的语法和RISC-V中nice指令的工作原理,涉及寄存器读取和协处理器交互的过程。
摘要由CSDN通过智能技术生成

本人在22集创赛芯来riscv杯打酱油,分享下芯来官方的demo的理解

首先导入工程,打开helloworld的例程,将application的main.c删除,用nuclei-board-labs-master中的nice_demo中的.c进行替代

int main(void)
{
   int i=100;
   int arr[4]={1,2,3,4};
   unsigned int array[ROW_LEN][COL_LEN]=
                {
  {10,20,30},
                 {20,30,40},
                 {30,40,50} 
                                 };
   unsigned int begin_instret, end_instret, instret_normal, instret_nice;
   unsigned int begin_cycle,   end_cycle,   cycle_normal,   cycle_nice;
//不使用nice核
   begin_instret =  __get_rv_instret();
   begin_cycle   =  __get_rv_cycle();

   normal_case(array);

   end_instret = __get_rv_instret();
   end_cycle   = __get_rv_cycle();
   
   instret_normal = end_instret - begin_instret;
   cycle_normal = end_cycle - begin_cycle;
//调用nice核
   begin_instret =  __get_rv_instret();
   begin_cycle   =  __get_rv_cycle();

   nice_case(array);

   end_i
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值