CH573F 读取 Code Flash 时复位

Ch573F 写 地址 4 字节对齐,读取时也要4字节的整数吗? 用代码测试了下确实是要,读取时起始地址要为4字节倍数否则会导致复位。我太难了。昨天是发现库的头文件pwmx 寄存器地址错误。唉。有没有DATA Flash 读取的内部代码,把非4字节倍数的地址转成合法地址后返回所需地址的数据?

codeflash读取可以使用指针的方式直接读,使用我门封好的函数读是需要四字节对齐的,

dataflash的读取是不用四字节对齐的。


 flash_adder = Sys_Run.Read_Add[1];

        if(flash_adder%4!=0)  //4字节读取地址凑整

        {

            while(flash_adder%4!=0)

            {

                flash_adder--;

                s++;

            }

        }

        flash_save_read(0,CMD_FLASH_READ,flash_adder,readbuff,Sys_Run.Sum_Add[1]+s);

//        PRINT("s = %d \r\n", s);


         for(i=0;i

         {

             readbuff[i] = readbuff[i+s];

//             PRINT("%02x ", readbuff[i]);

         }

         Sys_Run.timebuffv[n]   =   readbuff[0]<<8|readbuff[1];       //时间数值

         Sys_Run.timebuffT[n]   =   readbuff[2];



用了死方法实现了。有没有更优化的方法?


只有登录才能回复,可以选择微信账号登录