才发现avr32是big endian的
今天gzhuli说了才知道avr32是big endian的原来RT-Thread设计的时候并没太多考虑过big endian,因为x86是little endian的,ARM也多是little endian,所以默认是采用little endian来思考。
然后gzhuli确认说,RT-Thread kernel/filesystem/finsh/GUI在AVR32上都没问题,神了~~
0.4.x版本得专门加一个宏以区分当前系统是little endian还是big endian。 哈哈,AVR32是big endian
以前(08年)我刚开始用UC3B0做WAVE播放器的时候,就是因为没有注意这个,听了几天沙沙声 刚试了下,发现FS还真有问题,中文长文件名是乱码,估计和你今天的情况一样,ff_convert的顺序没处理好。 果然是这个问题,因为AVR32的ROM比较小,我用了radio的文件转换表ff_convert代码,传入的src参数没事,fatfs已经处理正确,但读文件出来的字节顺序就反了。
如果直接用fatfs的cc936.c,是没问题的。 0.4.x开发分支在endian上得仔细考虑了,gzhuli多测试下,内核相关的修改请直接提交到google svn上。 GUI比较可能出问题的地方是color space转换,这个还没测试过。
页:
[1]