查看: 4074|回复: 2

【MC56F83xxx数字信号控制器开发板试用】+GCT快速配置工具

[复制链接]
  • TA的每日心情

    2024-2-5 12:06
  • 签到天数: 627 天

    [LV.9]以坛为家II

    94

    主题

    1628

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4429

    热心会员

    最后登录
    2024-2-5
    发表于 2020-11-11 14:34:12 | 显示全部楼层 |阅读模式
    芯片寄存器太多,记不住,去查手册又大大降低效率,怎么办?其实多加芯片制造商都推出自己的外设配置工具。我使用过最早的就是新华龙的C8051系列,当时就有引脚配置并生成代码的工具了。这几年软件生态越来越向应用层发展,底层代码的具体编写则是被各种库或者配置工具直接生成代码所替代了。有人说,这样层层封装,会降低代码的执行效率和增加代码结构和大小的臃肿。其实在今天这个片上FLASH都很大,速度都很快的年代,这些都不算什么大问题了。ST,NXP,Microchip等均有自己的外设配置工具废话不多说,下面开始说说我们MC56F83789DSC的外设配置工具说起。本来想用PE进行配置,奈何PE不支持最新出的83XXX系列的芯片,官方介绍了一个叫做GCT的外设配置工具。我们今天就用它来实现。 X1.png
    今天所讲均能在上面的说明文档里面找到,还更详细,奈何是英文版本。首先安装Code Warror,那就不用多说了。然后安装FMASTER(FMASTERSW30.exe),主要用它的一些头文件(不免费,需要证书,但官方提供LITE版本的证书),其次安装DSC56800EX_Quick_Start(文中短称GCT)执行文件。
    安装完成后,打开CodeWarror安装对GCT这个外部工具支持的PACK,即基于GCT的工程生成向导:

    X2.png
    X3.png
    X4.png
    X5.png
    X6.png
    向导装完后,我们配置外部工具:
    X7.png
    X8.png
    X9.png
    配置好后,我们现用对应的向导生成一个GCT工程:
    X10.png
    X11.png
    选择工程的属性,配置将要调用的GCT文件路径:
    X12.png
    X13.png
    设置快速调用最后一次工具的快捷键:
    X14.png
    X15.png
    生成的程序结构,其中appconfig.h头文件为外部配置工具输出文件:
    X16.png
    打开配置好的外部GCT:
    X17.png
    配置工具页面,用过其他家的,应该感觉都大同小异:
    X18.png
    我们要配置4个LED,并让它们闪烁。4个LED引脚对应F8~P11:
    X19.png
    X20.png
    配置好,直接点击保存,工程中的appconfig.h就会更新:
    X21.png
    我们修改main函数:
    1. /* required DSP56F800E_Quick_Start header */
    2. #include "qs.h"

    3. /* low-level driver headers for each module used */
    4. #include "occs.h"
    5. #include "sys.h"
    6. #include "adc12.h"
    7. #include "cop.h"
    8. #include "crc.h"
    9. #include "dac.h"
    10. #include "dma.h"
    11. #include "fcan.h"
    12. #include "ftfe.h"
    13. #include "gpio.h"
    14. #include "hscmp.h"
    15. #include "iic.h"
    16. #include "intc.h"
    17. #include "intctarget.h"
    18. #include "mcm.h"
    19. #include "pmc.h"
    20. #include "pwm.h"
    21. #include "pit.h"
    22. #include "qtimer.h"
    23. #include "sci.h"
    24. #include "scihl.h"
    25. #include "spi.h"
    26. #include "xbar.h"
    27. #include "freemaster.h"


    28. /* local prototypes */
    29. #define LED_RED_ON      ioctlGPIO_CLEAR_PIN(GPIO_F,BIT_8)
    30. #define LED_RED_OFF     ioctlGPIO_SET_PIN(GPIO_F,BIT_8)  

    31. #define LED_GREEN_ON    ioctlGPIO_CLEAR_PIN(GPIO_F,BIT_9)
    32. #define LED_GREEN_OFF   ioctlGPIO_SET_PIN(GPIO_F,BIT_9)  

    33. #define LED_BLUE_ON     ioctlGPIO_CLEAR_PIN(GPIO_F,BIT_10)
    34. #define LED_BLUE_OFF    ioctlGPIO_SET_PIN(GPIO_F,BIT_10)  

    35. #define LED_YELLOW_ON   ioctlGPIO_CLEAR_PIN(GPIO_F,BIT_11)
    36. #define LED_YELLOW_OFF  ioctlGPIO_SET_PIN(GPIO_F,BIT_11)  

    37. void my_delay_us(UWord16 delay)
    38. {       
    39.         while(delay--)
    40.         {
    41.                 archDelay(100);               
    42.         }
    43. }

    44. void my_delay_ms(UWord16 delay)
    45. {
    46.         while(delay--)
    47.         {
    48.                 my_delay_us(1000);               
    49.         }
    50. }
    51. /*
    52. * The main function is invoked from the startup code after
    53. * key device resources (PLL, memory) are initialised.
    54. *
    55. */

    56. void main (void)
    57. {
    58.         /* initialise SYS module */
    59.     ioctl(SYS, SYS_INIT, NULL);

    60.     /* configure COP module */
    61.     ioctl(COP, COP_INIT, NULL);
    62.    
    63.     /* configure all GPIO modules */
    64.     ioctl(GPIO, GPIO_INIT_ALL, NULL);

    65.     /*
    66.      * TODO: put your other module initialisation calls here
    67.      *   e.g. ioctl(SCI, SCI_INIT, NULL)
    68.      *
    69.      */

    70.     /* initialise interrupt controller and enable interrupts */
    71.     ioctl(INTC, INTC_INIT, NULL);
    72.     archEnableInt();

    73.     /*
    74.      * TODO: perform additional initialisations here
    75.      *
    76.      */

    77.     while(1)
    78.     {
    79.         /*
    80.          * TODO: put your main-loop code here
    81.          *
    82.          */
    83.              LED_RED_ON;
    84.              LED_GREEN_ON;
    85.              LED_BLUE_ON;
    86.              LED_YELLOW_ON;
    87.              //archDelay(300000);
    88.              my_delay_ms(300);
    89.              LED_RED_OFF;
    90.                  LED_GREEN_OFF;
    91.                  LED_BLUE_OFF;
    92.                  LED_YELLOW_OFF;
    93.                  //archDelay(300000);
    94.                  my_delay_ms(300);

    95.          /* feed the watchdog periodically */
    96.          ioctl(COP, COP_CLEAR_COUNTER, NULL);

    97.     }
    98. }
    复制代码


    编译下载无误,4LED闪烁。
    6d.gif
    quick start这一套SDK的架构还是比较有意思的,感兴趣的可以看它的使用指导,很详细。
    这样大大简化了开发流程,值得拥有。
    DSC56800EXQSUG(DSC快速配置工具使用说明).pdf (4.14 MB, 下载次数: 23)
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2020-11-11 16:34:56 | 显示全部楼层
    看来DSC玩起来 还是需要一些水平的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    新手上路

    Rank: 1

    积分
    16
    最后登录
    2021-12-16
    发表于 2021-12-16 14:22:39 | 显示全部楼层
    楼主好,
    我的CodeWarrior,生成GCT工程列表里没有Freescale栏是怎么回事呢
    捕获.PNG
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 00:12 , Processed in 0.122687 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表