用的是ccs4以上版本,在reset CPU后可以程序可以运行,而restart之后确不行,这是为什么?
另外一些全局变量是使用
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart)
InitFlash();这些函数之后就会初始化值发生变化;不知道是为什么?而不是用这句语句的话,delay_us()这个函数就不能使用,有高手帮我解答一下嘛?
Victor Zheng:
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart)
上面这个函数的作用是将需要在RAM里运行的程序搬到RAM中,注意delay_us()就需要运行在RAM里。
InitFlash();的作用是初始化FLASH,否则你的FLASH的运行速度会慢很多。
用的是ccs4以上版本,在reset CPU后可以程序可以运行,而restart之后确不行,这是为什么?
另外一些全局变量是使用
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart)
InitFlash();这些函数之后就会初始化值发生变化;不知道是为什么?而不是用这句语句的话,delay_us()这个函数就不能使用,有高手帮我解答一下嘛?
user1748517:
回复 Eric Ma:
改了下flash的块,就ok了,但是,restart跟reset这个问题还是没解决,restart之后提示:no sourse avaiable for c_int00() at 0x3f126f
用的是ccs4以上版本,在reset CPU后可以程序可以运行,而restart之后确不行,这是为什么?
另外一些全局变量是使用
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart)
InitFlash();这些函数之后就会初始化值发生变化;不知道是为什么?而不是用这句语句的话,delay_us()这个函数就不能使用,有高手帮我解答一下嘛?
user1748517:
回复 Eric Ma:
谢谢您,我知道为什么了我restart不行了,是因为debug选项里面那个auto run to symbol里面restart这个选项没打勾。这里真不错,哈哈。
还有一个问题,我程序里有个pwm中断(10k),也就是100us的中断,然后我主程序for循环里面判断是否到10ms(或者100ms),如果到了运行一下显示程序;
10ms计时是通过100Us中断100次,置一个标志位;当我设置成10ms时,这个显示程序只运行10次,然后就老是跳到100Us中断程序里,一执行主程序 就跳到100us中断程序里;当我设置成100ms时,显示程序只执行一次;
给我的感觉是累积了很多100Us中断一样,pwm中断是不是在debug时自己计时的,而不会因为我单步停止而停止计时?是这样嘛?