|
香水城,再请教你2个问题,cosmicc的环境st72324
[复制链接]
问题1:I2Cms 是定义的全局变量,I2Cms 在1毫秒定时器里累加,现在的问题 I2Cms = 0; while(I2Cms<=10) { } 这个while根本没法跳出,我用仿真器看了,定时器里的I2Cms 一直在累加,不管I2Cms 的是多少,这个while循环好像都不比较,汇编如下 1961 ; 312 I2Cms = 0; 1963 0231 4f clr a 1964 0232 c70002 ld _I2Cms,a 1965 0235 L5401: 1966 ; 313 while(I2Cms<=10) 1968 0235 a10b cp a,#11 1969 0237 25fc jrult L5401
第二个问题是: memcpy_xx(ce_data.costbak.B_ws,ws,40);这样一个函数
ce_data.costbak.B_ws,ws这2个数组如果放在0x0100后面,就老是报错越界,但是我把这2个数组定义在0x0200后,就不会再报错,怎么搞不明白为什么!
void memcpy_xx (unsigned char *dst, unsigned char *src, unsigned char len) { while (len--) *dst++ = *src++;
}
; 89 void memcpy_xx (unsigned char *dst, unsigned char *src, unsigned char len) 1222 ; 90 { 1223 switch .text 1225 xref _memcpy_xx$L 1226 007e _memcpy_xx: 1228 007e c70001 ld _memcpy_xx$L+1,a 1229 0081 cf0000 ld _memcpy_xx$L,x 1231 0084 202e jra L775 1232 0086 L575:
|
|