【MA35D1】RTP axf包含超过512K的地址空间的初值为0的数组该如何处理

qwang |浏览43次
收藏|2024/04/29 09:52

满意回答

2024/04/30 11:55

    如果这样定义一个大数组放在超过512k的地址 
uint8_t test[5][1024][1024] __attribute__((at(0x85000000)));
需要修改ma35d1_rproc.c ma35d1_rproc_elf_load_segments函数
    

    dev_dbg(dev, "phdr: type %d da 0x%x memsz 0x%x filesz 0x%x file_offset 0x%x fw_size 0x%zx\n",phdr->p_type, da, memsz, filesz, offset, fw->size);

    

    //添加判断

     if(filesz == 0 )

         continue;


     if (((da + filesz) >= total_size) && (da < 0x20000)) {

     dev_err(dev, "bad phdr address 0x%x~0x%x over RTP memory size 0x%x\n",

     da, (da+filesz), total_size);

     ret = -EINVAL;

     break;

}


孟书磊

其他回答(0)
0人关注该问题
+1
 加载中...