关于Keil 无法正确下载程序问题的总结

Document created by Wenxue Wang Employee on Jan 15, 2015
Version 1Show Document
  • View in full screen mode

  当我们在使用Keil 时,经常会遇到无法下载程序的问题,以下对两种常见的情况进行总结:

   1. 在我们需要将某工程代码移植到同系列其他型号器件上使用时,如果只是更改了器件型号,这时可能会导致无法正确下载。需要注意的是不仅要在Device中更换型号,还需要在Flash Download栏中选择正确的flash loader 并且设置正确的RAM起始地址

  举个例子:假设我们需要将FRDM_KL26Sample code中的hello_world工程移植到256K flashKL26上使用。打开FRDM_KL26Sample codehello_world工程,我们可以看到Device中器件为MKL26Z128xxx4,

   Picture1.png

    Target中可以看到FlashRAM的起始地址和大小信息。

    Picture2.png

     如果使用Jlink调试接口,选择J-LINK/J-TRACE Cortex  ,之后选择Setting,可以看到flash loader的相关信息。

  Picture3.png

      将此工程移植到到256K flash的器件上,我们需要做的事情是:
     device中进行修改,选择MKL26Z256xxx4

     Picture1.png

   

 

 

     Target中可以看到这时flashRAM的起始地址和大小信息已经自动做了更改。不需要再手动修改了。

   Picture2.png

 

     但是在Flash Download中的设置还是之前的设置,并没有改变。

  Picture4.png

    

   所以这时是无法正确下载程序的,需要我们手动去修改这里的两处配置。

    一是 RAM for Algorithm中的Start应该设置为0x1FFFE000(从Target栏中可以获取该值),Size不用更改。

   Picture5.png

  二是Program Algorithm 删除掉128kflash loader ,添加256Kflash loader

Picture6.png

      2.第二种可能遇到的情况是:本来可以正常下载的程序当复制到另外一台电脑时就无法正常下载了。遇到这种现象时,需要检查一下Flash
Download中的相关配置是否正确,很可能会遇到 Program Algorithm中flashloder为空的情况,发生这种情况的原因可能是两个电脑的Keil版本不同,所以flash
loader所在路径就会不同,这样flash loader就会变成空白,这时需要自己手动添加一下即可。

Attachments

    Outcomes