ROM_OFFSET的疑惑
在romStart函数中,调用copyLongs将代码从rom拷贝到ram,代码中是先用ROM_OFFSET(copyLongs)计算出copyLongs在ROM中的地址,然后再调的。但是执行ram清零操作作,为啥调用fillLongs 前没有计算它在ROM中的地址呢?
[解决办法]
这个宏还可以这么理解:ROM_OFFSET说明是在ROM中,没添加的是不是不应该在ROM中呢?
事实上copyLongs的时候,系统还在ROM中运行,因此添加ROM_OFFSET计算在ROM中的偏移量,等到copyLongs执行完,ROM中的非压缩部分已经copy到RAM中了,调用的fillLongs是RAM中的,如果你想调用ROM中的fillLongs也是可以的,加上ROM_OFFSET就好了,不过那样系统慢多了。。。。嘿嘿