Cortex4 设置非法时钟导致无法烧写的解决办法

最近在做cortex的实验过程中发生了一个问题,某个实验需要改变系统的时钟,因此我调用了函数:

uint32_t SysCtlClockFreqSet(uint32_t ui32Config, uint32_t ui32SysClock) 来设置我所需要的频率,根据手册中对函数的描述,我们可以知道,最后一个参数是你所需要的频率,系统会根据你给的参数设置成一个最接近的频率,在测试这个函数的过程中好像输入了一个非法的参数,导致系统时钟gg了,再也不能烧写了,keil的debug里也找不到我的设备,检查了驱动都是OK的,最后找了个英文论坛的资料才解决,这里记录一下。

一. 驱动安装情况检查

首先,烧写失败最大的可能还是因为驱动的问题,所以建议还是先打开设备管理,以我使用的板子为例,





可以看到两个部分的驱动都没有黄色感叹号之类的标志,因此我的驱动是好的,还有一个办法是,如果旁边有其他的板子,借来烧一下,如果烧的进去,就说明是你的板子的问题。


二. Uniflash 检查

打开软件UNIFLASH,用数据线连接上实验板, 选择对应的device,我的板子是TM4C1294XL,因此选择了EK-TM4C1294XL:

Cortex4 设置非法时钟导致无法烧写的解决办法_第1张图片

然后start,烧写测试用文件,提示我,frequency is out of range.


三. 解决办法

解决的办法其实也很简单,只要把板子unlock一下,应该就是擦除其中写的东西,回复默认设置。

首先打开UNIFLASH, 然后仍然选择你的板子型号,start。

点击Settings & Utilities, 找到Unlock的选项,如下图。

Cortex4 设置非法时钟导致无法烧写的解决办法_第2张图片


注意他的提示! Please press and hold reset on device while powering up before clicking on the Unlock button. 如果你是西南某高校的同学,说明你的板子和我的板子是一样的,reset按键在红色板子部分的四个按键之一中,上面有文字提示,如果不懂resret是哪个,在板子上找找文字,或者打开手册找找原理图,查一查吧~ 

你可能感兴趣的:(Enbeded)