使用一款单片机,在程序编辑完成后,要做的就是编译、下载、调试和烧写。根据学习进度,写一下这一块的学习记录。
- 首先将28335_RAM_lnk.cmd文件放到工程中,编写一下LED灯闪烁的程序,点击菜单栏-Project-Build all,或者点击菜单栏中的编译按钮进行编译,等待编译完成。
在完成编译后,会出现Binaries文件,即.out文件,这个文件就是烧写到DSP中的文件。
常常会遇到编译不成功的时候,如果编译不成功,查找原因时,点开文件夹中,如果有错误的地方会显示有×号。
如图,当有错误时,首先无法编译成功,如图中1,然后没有生成Binaries文件,即没有.out文件生成,查看文件发现有个文件有一个×,如图中2,打开该文件发现右侧有一个红点,如图中3,最终定位到有问题的地方,如图中4,把EALLOW写成了EALLOWA,改过后可以完后编译。
一般开说编译不成功根据提示可以有以下几个原因
- 出现了一些引用文件有错误,比如拷贝的c文件或者h文件,编译完成后,出现了标红,这个一定是缺少文件。查看是否缺少cmd文件和asm文件,一定要首先查这个方向,其次是查一下头文件路径有没有加载到工程中;
- c语言语法错误。关键字拼写错误,C语言语法有问题也会导致编译失败;
2. 调试
点击菜单栏-Run-debug或者点击调试标识,进行在线调试。
对于一些售后人员,如果只拿到了.out文件需要进行下载,直接点击图中1,下载器连接DSP,点击图中2,然后加载需要下载的文件,点击下载即可。如果是在线调试,直接点击图中3的运行、暂停、终止按钮即可。
注:如果售后人员无法将下载器连接到DSP,需要新建一个Target Configuration,然后选在下载器和芯片这些操作。新建Target Configuration在菜单栏File-New- New Target Configuration中建立。
继续上文,当进入debug后,点击运行即可运行程序,开发板上已经看到LED灯在按照程序进行闪烁。
3. 打断点
打断点的方式是在对应语句之前双击,当程序运行到该位置后就会停止。解除断点的方式也是双击。
在打了断点以后,会发现可以步进调试,并且CCS的光标会随着程序运行的地方进行跳转。
4. 查看寄存器
在界面的右上测可以看到有一个Registers,点击进入看到DSP的各个外设的寄存器,点击外设可以看到对应的寄存器以及寄存器内的数据。
此时看到寄存器内部数据是不更新的,有的时候需要寄存器内部数据更新,那么就点击右上角有两个循环的标志,就可以不断更新寄存器内的数值。Refresh是更新一次,Continue Refresh是不断更新,更新的数据会有黄色突出显示。
既然有寄存器的查看器,就有全局变量的查看方法。在程序中定义一个全局变量,在定时器中断函数中增加了一个语句。
在Expressions中增加这个变量,然后点击continue Refresh,可以查看到数据在不断更新。
同样,新建一个结构体变量,做成全局变量,也可以进行监控。这个非常方便调试。前提是一定是全局变量,局部变量无法做到这个功能。
5. 烧写
在完成上述的内容后,如果给DSP断电,再次给DSP上电,发现程序不能按照调试时运行,因此需要对程序进行烧写到DSP操作。将28335_RAM_lnk.cmd文件删掉,然后加载F28335.cmd文件,进行编译,debug即可,在这个过程中,会发现debug的时间会较长,因为要进行擦除芯片和烧写数据的操作。
在完成烧写工作后,再次给DSP上电,DSP自动进行运行程序。