本帖最后由 yang_alex 于 2014-9-8 08:05 编辑
R7F0C80212套件试用之开发环境搭建2---代码自动生成工具code generator
我看过好几家嵌入式处理器厂家的自动代码生成工具,其实所谓的自动代码生成工具主要还是根据开发工程师的需要,通过图形化的输入界面,裁剪和配置厂家已经编写好的外设驱动代码,来减少开发工程师在外设驱动工作上投入的工作量和开发难度。
CubeSuite+中也提供了自动代码生成工具,而且是通过插件的形式提供的,所以,我们要想使用CubeSuite+中的自动代码生成工具,就必须在 ubeSuite+中打开相应的插件。
CubeSuite+中打开自动代码生成工具插件的方法是:
1、选择主菜单中"TOOL"下的"Plug-in Setting..."
2、在弹出的"Plug-in Manager"对话框中选择“Additional Function"标签,在这里我们可以看到有许多可以选择的插件。关于自动代码生成工具插件,我们选"Code Generator2 Plug-in"。实际上还有一个"Code Generator Plug-in",有兴趣的网友可以试试,看看两者有什么区别。
3、选择"OK"按钮后会弹出对话框提示重启CubeSuite+软件以便使选中的插件生效。不重启是不会生效的。
好了,我们接下来通过一个闪灯的例子看看CubeSuite+中的自动代码生成工具插件怎么使用吧。
1、我们需要创建一个新项目:
2、在弹出的对话框中选择我们项目中使用的MCU型号、项目类型、项目名称、项目保存位置。最后选择"Create"来生成代码。
3、打开生成的项目,我们可以看到,此时比不使用自动代码生成工具插件生成的项目在"Project Tree"下多了"Code Generator(Design Tool)"。"Code Generator(Design Tool)"下面有两个目录夹,一个是"Peripheral Function",另一个是"Code Preview"。前面那个是MCU上的各个外设模块的功能配置,后面那个是厂家已经编写好的外设驱动代码。
4、我们双击"Peripheral Function",界面右框变为:
在"Pin assignment"标签里是引脚重定向选择,简单地说就是一个功能引脚可以从MCU多个PIN引出,在这个选项里定义从哪个PIN引出。在我们这个闪灯的例子里使用缺省的即可(不再做选择)。然后点击上面的"Fix settings"按钮。切记点这个按钮。
5、选择"Clock setting"标签,这里是设置MCU工作电压、相关时钟频率和复位引脚的地方。在闪灯的例子里保持缺省选项就可以了。
6、我们点击开Peripheral Function,可以看到下面有很多外设模块可选。闪灯的例子首先要有一个IO口驱动LED,因为评估板上是P04口连到一个LED,所以我们选"Port Function"下面的Port0,再在右框中把P04配置为out。
7、闪灯的例子还需要一个定时器来定时,所以我们还要选择"Timer Array Unit"下面的"Channel 0",并把它设置成中断定时器。如下图:
8、接下来我们选择标签"Channel 0",设置终端定时器时间500mS,并选择计数结束时产生中断:
9、成后点击上面的Generate Code,此时下面会提示创建文件成功。观察界面左框"File"目录夹下面生成了"Code Generator"目录夹,这个目录夹下包含了此次生成的代码。
10、我们闪灯的例子需要LED闪烁,所以我们需要在生成的定时中断中,让P04口定时产生翻转。自动生成的定时中断函数位于"Code Generator"目录夹下r_cg_tau_user.c文件中,我们需要在其中加入让P04口产生翻转的代码:
if(P0.4 == 0)
{
P0.4 = 1;
}
else
{
P0.4 = 0;
}
在函数void R_MAIN_UserInit(void)中增加R_PORT_Create();和 R_TAU0_Create();
11、生成的主程序框架在"Code Generator"目录夹下r_cg_main.c文件中。在我们闪灯的例子的主程序框架中需要通过调用自动生成的函数R_TAU0_Channel0_Start()启动定时器,R_TAU0_Channel0_Start()函数是在自动生成的r_cg_tau.c文件中定义的。
12、按保存所有文件的按钮保存文件。至此所有代码完成,选择编译。
编译成功:
下一节介绍如何用CubeSuite+中提供的软件仿真来验证代码功能。