/* ldr pc, [pc, #<label - instr + 4>] * LDR (immediate) - ARMv7M ARM section A7.7.42 * 1111;1 00 0; 0 10 1; <Rn - 1111>; <Rt - 1111>; <imm12> (Encoding T3) */#define LDR_PC_PC_IMM_OPCODE(instr, label) \ ((uint32_t) (0xF000F8DFUL | ((((uint32_t) (label) - ((uint32_t) (instr) + 4)) & 0xFFFUL) << 16))
这段代码是往PC寄存器中 存放数值么?其中0XF000F8DFUL是PC寄存器的值?
是啊,感觉资料好少,不过现在换课题也来不及了,只能硬着头皮干下去了。我想继续问一下uVisor内存分配的一些问题。
在应用程序中使能 uVisor后,一般会用到,一下几个函数
通常在public BOX使用
UVISOR_SET_PAGE_HEAP(18*1024, 5);//分配一个90K的内存池。
在secue BOX使用
UVISOR_BOX_HEAPSIZE(6*1024);UVISOR_BOX_MAIN(aes_client_box_main,osPriorityNormal,4*1024);UVISOR_BOX_CONFIG(aes_client_box,acl,256,aes_box_client);
我想问一下,这些内存之间的关系
1)UVISOR_BOX_HEAPSIZE获得内存空间是来自于public BOX中分配的90K的内存池么?如果不是,那此90K的内存空间只是通过
secure_malloc,secure_calloc来获取么?
2)UVISOR_BOX_MAIN以及UVISOR_BOX_CONFIG中分配的内存空间是来自于UVISOR_BOX_HEAPSIZE分配的内存空间么?
之前写程序时,感觉UVISOR_BOX_MAIN是,UVISOR_BOX_CONFIG不是?不知道理解对不对