相关疑难解决方法(0)

优化ARM Cortex M3代码

我有一个C函数,它试图将帧缓冲区复制到FSMC RAM.

这些函数将游戏循环的帧速率降低到10FPS.我想知道如何分析反汇编函数,我应该计算每个指令周期吗?我想知道CPU在哪里花费时间,在哪一部分.我确定算法也是一个问题,因为它的O(N ^ 2)

C函数是:

void LCD_Flip()
{

    u8  i,j;


    LCD_SetCursor(0x00, 0x0000);
    LCD_WriteRegister(0x0050,0x00);//GRAM horizontal start position
    LCD_WriteRegister(0x0051,239);//GRAM horizontal end position
    LCD_WriteRegister(0x0052,0);//Vertical GRAM Start position
    LCD_WriteRegister(0x0053,319);//Vertical GRAM end position
    LCD_WriteIndex(0x0022);

    for(j=0;j<fbHeight;j++)
    {
        for(i=0;i<240;i++)
        {
            u16 color = frameBuffer[i+j*fbWidth];
            LCD_WriteData(color);

        }
    }

}
Run Code Online (Sandbox Code Playgroud)

拆卸功能:

08000fd0 <LCD_Flip>:
 8000fd0:   b580        push    {r7, lr}
 8000fd2:   b082        sub sp, #8
 8000fd4:   af00        add r7, sp, #0
 8000fd6:   2000        movs    r0, #0
 8000fd8:   2100        movs    r1, #0
 8000fda:   f7ff fde9   bl  8000bb0 <LCD_SetCursor>
 8000fde:   2050        movs …
Run Code Online (Sandbox Code Playgroud)

optimization assembly arm stm32 disassembly

2
推荐指数
1
解决办法
1876
查看次数

标签 统计

arm ×1

assembly ×1

disassembly ×1

optimization ×1

stm32 ×1