|

楼主 |
发表于 2016-6-25 13:17:45
|
显示全部楼层
回 caicaptain2 的帖子
caicaptain2:需要保证只有一个任务会调用液晶的显示函数。或者把emwin的任务优先级设为最高。
因为RA8875写个数据不是“原子操作。如果一个任务写RA8875一半的时候,另一个高优先级的任务抢占了,而且写了RA8875就会出现问题。 (2016-06-25 10:54)  你好,目前我的emwin 除了显示一个rtc 时间外,没有干其他的什么事情,
U8 * aMemory ; // 数据类型 使用 u32,u8 结果都是一样的
aMemory = ((U8 *) (0x68000000)); // 1 这样可以
aMemory = ((U8 *) (0x68008000)); // 2 这样就不行【或为其他任意一个数值,比如,0x68180000, 0x68001000 等显示都会有黑点或者黑条】,显示就会出现黑点或者黑条的情况, 为什么啊 ???
外部的sram 是 2MByte的,应该最大是可以 到 1024*1024*2 = 0x20 0000 + 0x68000000 = 0x6820 0000,上面的使用应该是没有超出范围的吧 ???
aMemory = ((U8 *) (0x68100000)); // 地址从 0x6810 0000 开始,这样的也可以了【显示完全没有问题】。把外部sram 最后 1MByte 分配给emwin 使
用【前面的1MBye 留着解码图片音频等使用】,这是为什么啊 ?????
GUI_ALLOC_AssignMemory( (void*) aMemory, 512*1024UL); //此处的字节数最大只能够为 512x1024,不是说是按照字节算的嘛,怎么只能是512x1024,不能够 1024x1024 ????
GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE); //设置存储快的平均尺寸,该区越大,可用的存储快数量越少 |
|