这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 学习AI8051开发板例程:23AI8051的MDU32功能测试

共2条 1/1 1 跳转至

学习AI8051开发板例程:23AI8051的MDU32功能测试

高工
2026-02-04 20:01:07   被打赏 50 分(兑奖)     打赏

一:AI8051的MDU32测试      

    乘法和除法单元(称为MDU32)提供快速的32位算术运算。MDU32支持无符号和补码有符号整数操作数。MDU32由专用的直接内存访问控制模块(称为DMA)。所有MDU32算术操作都是通过向DMA控件写入DMA指令来启动的寄存器 DMAIR。MDU32模块执行的所有算术运算的操作数和结果位于寄存器R0-R7。

使用的注意事项

1、DMA模块执行算术运算所需的执行时间,包括:

    操作数从DR0-DR4寄存器加载到MDU32模块

    MDU32算术运算

    从MDU32模块到R0-R7寄存器的结果存储

2、处理器执行C编译算术函数所需的执行时间,包括:

    DMA指令写入DMAIR 寄存器

    操作数从DR0-DR4寄存器加载到MDU32模块

    MDU32算术运算

    从MDU32模块到R0-R7寄存器的结果存储

    从函数返回(RET指令)

3、MDU32执行乘除法运算时,单片机会自动切换到IDLE模式,即CPU停止时钟指令,其它外设仍继续工作。运算完成后,单片机自动切换到正常工作模式

几种函数执行的时间如下所示:

ai23-1.png

二:MDU32算术运算

1:32位乘法:

    32位乘法运算是对两个无符号或有符号的补码整数参数执行的。第一个参数位于R4-R7寄存器中,第二个参数位于R0-R3寄存器中。运算结果存储到R4-R7寄存器。

2:32位无符号除法:

    对两个无符号整数参数执行32位无符号除法运算。第一个参数“被除数”是位于R4-R7寄存器中,第二个参数“除数”位于R0-R3寄存器中。结果存储到R4-R7寄存器。余数在R0-R3中返回。除以零返回OxFFFFFFF

3: 32位有符号除法:

    对两个有符号的补码参数执行32位有符号除法运算。第一个参数“被除数”位于R4-R7寄存器中,第二个参数“除数”位于R0-R3寄存器中。结果存储到R4-R7寄存器。余数在R0-R3中返回。除以零返回OxFFFFFEF

三:软件代码如下所示:

    ultest = 12345678UL;
    ltest = 12345678;
    ultest = ultest / 12;
    ltest = ltest / 12;

    sint1 = 0x31030F05;
    sint2 = 0x00401350;
    TPIN = 0;
    xsint = sint1 * sint2;
    TPIN = 1;
//    printf("Result1=0x%lx\r\n",xsint);

    uint1 =  5;
    uint2 =  50;
    TPIN = 0;
    xuint = uint1 * uint2;
    TPIN = 1;
//    printf("Result2=%d\r\n",xuint);

    uint1 = 654689;
    uint2 = 528;
    TPIN = 0;
    xuint = uint1 / uint2;
    TPIN = 1;
//    printf("Result3=%u\r\n",xuint);

    sint1 = 2134135177;
    sint2 = 20000;
    TPIN = 0;
    xsint = sint1 / sint2;
    TPIN = 1;
///    printf("Result4=0x%lx\r\n",xsint);

    sint1 = -2134135177;
    sint2 = -20000;
    TPIN = 0;
    xsint = sint1 / sint2;
    TPIN = 1;
//    printf("Result5=0x%lx\r\n",xsint);

    sint1 = 2134135177;
    sint2 = -20000;
    TPIN = 0;
    xsint = sint1 / sint2;
    TPIN = 1;

四:使用仿真软件看下计算结果:

ai23-2.png





关键词: AI8051     MDU32     功能测试    

院士
2026-02-05 17:59:58     打赏
2楼

这还是阻塞式的实现。

那我要DMA的作用有多大?!



共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]