[原创] 《6》关于cubesuite的code generator的使用,同工程多次生成代码的问题

kejoy   2014-10-5 23:36 楼主
关于cubesuite的code generator的使用,同工程多次生成代码的问题;
因为有时候我们最先使用code generator进行io口功能配置的时候,不一定配置得比较合理,所以有时候需要进行更改配置;在code generator的使用中发现,多次使用code generator进行Generate Code配置生成代码是可以不覆盖之前的用户代码的,最近使用的时候发现的,这里给不是很熟悉的朋友介绍一下~~
下面是之前的一段代码
r_cg_main.c
  1. /***********************************************************************************************************************
  2. * DISCLAIMER
  3. * This software is supplied by Renesas Electronics Corporation and is only
  4. * intended for use with Renesas products. No other uses are authorized. This
  5. * software is owned by Renesas Electronics Corporation and is protected under
  6. * all applicable laws, including copyright laws.
  7. * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
  8. * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
  9. * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
  10. * AND NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
  11. * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
  12. * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
  13. * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
  14. * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
  15. * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  16. * Renesas reserves the right, without notice, to make changes to this software
  17. * and to discontinue the availability of this software.  By using this software,
  18. * you agree to the additional terms and conditions found by accessing the
  19. * following link:
  20. * http://www.renesas.com/disclaimer
  21. *
  22. * Copyright (C) 2012, 2013 Renesas Electronics Corporation. All rights reserved.
  23. ***********************************************************************************************************************/

  24. /***********************************************************************************************************************
  25. * File Name    : r_cg_main.c
  26. * Version      : Code Generator for RL78/R7F0C8021 V1.02.00.01 [25 Dec 2013]
  27. * Device(s)    : R7F0C8021
  28. * Tool-Chain   : CA78K0R
  29. * Description  : This file implements main function.
  30. * Creation Date: 2014-10-05
  31. ***********************************************************************************************************************/

  32. /***********************************************************************************************************************
  33. Pragma directive
  34. ***********************************************************************************************************************/
  35. /* Start user code for pragma. Do not edit comment generated here */
  36. /* End user code. Do not edit comment generated here */

  37. /***********************************************************************************************************************
  38. Includes
  39. ***********************************************************************************************************************/
  40. #include "r_cg_macrodriver.h"
  41. #include "r_cg_cgc.h"
  42. #include "r_cg_port.h"
  43. #include "r_cg_wdt.h"
  44. /* Start user code for include. Do not edit comment generated here */
  45. /* End user code. Do not edit comment generated here */
  46. #include "r_cg_userdefine.h"

  47. /***********************************************************************************************************************
  48. Global variables and functions
  49. ***********************************************************************************************************************/
  50. /* Start user code for global. Do not edit comment generated here */
  51. int a,b,c;
  52. /* End user code. Do not edit comment generated here */

  53. void R_MAIN_UserInit(void);
  54. /***********************************************************************************************************************
  55. * Function Name: main
  56. * Description  : This function implements main function.
  57. * Arguments    : None
  58. * Return Value : None
  59. ***********************************************************************************************************************/
  60. void main(void)
  61. {
  62.     R_MAIN_UserInit();
  63.     /* Start user code. Do not edit comment generated here */
  64.     while (1U)
  65.     {
  66.             //io设置为低电平
  67.         P0.3=0;
  68.         P0.4=0;
  69.         for(a=100;a>0;a--)//延时函数
  70.         {
  71.                 for(b=100;b>0;b--)
  72.                         for(c=100;c>0;c--);
  73.         }
  74.         //io设置为高电平
  75.         P0.3=1;
  76.         P0.4=1;
  77.         for(a=100;a>0;a--)//延时函数
  78.         {
  79.                 for(b=100;b>0;b--)
  80.                         for(c=100;c>0;c--);
  81.         }
  82.     }
  83.     /* End user code. Do not edit comment generated here */
  84. }
  85. /***********************************************************************************************************************
  86. * Function Name: R_MAIN_UserInit
  87. * Description  : This function adds user code before implementing main function.
  88. * Arguments    : None
  89. * Return Value : None
  90. ***********************************************************************************************************************/
  91. void R_MAIN_UserInit(void)
  92. {
  93.     /* Start user code. Do not edit comment generated here */
  94.     EI();
  95.     /* End user code. Do not edit comment generated here */
  96. }

  97. /* Start user code for adding. Do not edit comment generated here */
  98. /* End user code. Do not edit comment generated here */
在自动生成的代码中有很多地方有类似注释:
/* Start user code 。。。。。。. Do not edit comment generated here */
这里可以添加用户代码~~~
/* End user code. Do not edit comment generated here */这段文字是说明,这里添加的用户代码在生成代码的时候将不会被覆盖,就是说你无论使用多少次code generator的Generate Code这两行注释的内部代码都不会改变。
这里特别说明一下,代码放在上面注释之外再次使用Generate Code生成代码时是会被清除的,如果不再使用Generate Code生成代码则没有影响。
并且这里不可以通过复制自行增加相同注释而达到同样的保护效果。
其实对于芯片来说功能相对简单,使用code generator来进行配置是相当简便的,功能也很完善。对于项目开发也完全够用,使大家可以专注于项目本身的代码构建。

回复评论 (3)

怎么会多次生成呢














www.qmgfw.com集成墙面 www.315jcz.com集成灶 www.315dbw.com地板十大品牌 www.tmjcq.com集成墙面
点赞  2014-10-6 17:28
引用: 托斯卡纳22 发表于 2014-10-6 17:28
怎么会多次生成呢

这个看规划,,有可能遇到。。。
点赞  2014-10-7 09:02
的确如此
点赞  2014-10-8 11:35
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复