从无到有搭建28388项目程序

目标:

通过编写CPU1和CM(Arm® Cortex®-M4)的程序达到以下效果:
CPU1–》LED1闪烁
CM–》LED2闪烁
先来看下最终效果:

开发环境:

CCS版本:Code Composer Studio 9.1.0
C2000版本:v2.01.00.00 (下载安装时间:2020/2/18)
如果还没有下载的可以下载一下:
C2000WARE-MOTORCONTROL-SDK下载
开发板:TI官方的28388开发套件

1. 新建工程

2. 建好之后效果如下:

项目名自己取,但最好CM和CPU1的要区分开
在这里插入图片描述

3. 在你的电脑中将下图的两个文件拷贝到项目中

注:项目创建好之后会有一个默认的CMD文件,但是还是建议用上图中的两个CMD文件,将原来的删掉。

4. 配置项目编译生成二进制文件的文件名和路径

注意:按照(4)中显示的将CM_FLASH和CM_RAM都这样创建出来,名字可以自己取,但要见名知意。

5. 将原来的项目中的Debug文件夹删掉:

在这里插入图片描述

6. 配置CMD文件编译方式:

7. 添加.lib依赖—>二进制文件

8. 添加一些必要的库文件

CM的项目:
CPU1的项目:

CPU1的项目添加图上所示的库文件之后会报错:

解决方案:

9. 在项目中添加上述库文件的路径:

CPU1项目:
CM项目:

10. 在CM和CPU1项目的main.c里面添加测试代码:

CM项目–>main.c:
#include "driverlib_cm.h"
#include "cm.h"
/**
 * main.c
 */
int main(void)
{

    CM_init();

    GPIO_writePin(20, 1);

    for(;;)
    {
        //
        // Turn on LED
        //
        GPIO_writePin(DEVICE_GPIO_PIN_LED2, 0);

        //
        // Delay for a bit.
        //
        SysCtl_delay(5000000);

        //
        // Turn off LED
        //
        GPIO_writePin(DEVICE_GPIO_PIN_LED2, 1);

        //
        // Delay for a bit.
        //
        SysCtl_delay(5000000);
    }
}

CPU1–>main.c:
#include "driverlib.h"
#include "device.h"

//
// Main
//
void main(void)
{
    //
    // Initialize device clock and peripherals
    //
    Device_init();

    //
    // Boot CM core
    //
#ifdef _FLASH
    Device_bootCM(BOOTMODE_BOOT_TO_FLASH_SECTOR0);
#else
    Device_bootCM(BOOTMODE_BOOT_TO_S0RAM);
#endif

    //
    // Initialize GPIO and configure the GPIO pin as a push-pull output
    //
    Device_initGPIO();
    GPIO_setPadConfig(DEVICE_GPIO_PIN_LED1, GPIO_PIN_TYPE_STD);
    GPIO_setDirectionMode(DEVICE_GPIO_PIN_LED1, GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(DEVICE_GPIO_PIN_LED2, GPIO_PIN_TYPE_STD);
    GPIO_setDirectionMode(DEVICE_GPIO_PIN_LED2, GPIO_DIR_MODE_OUT);

    //
    // Configure CPU2 to control the LED GPIO
    //
    GPIO_setMasterCore(DEVICE_GPIO_PIN_LED2, GPIO_CORE_CM);

    //
    // Initialize PIE and clear PIE registers. Disables CPU interrupts.
    //
    Interrupt_initModule();

    //
    // Initialize the PIE vector table with pointers to the shell Interrupt
    // Service Routines (ISR).
    //
    Interrupt_initVectorTable();

    //
    // Enable Global Interrupt (INTM) and realtime interrupt (DBGM)
    //
    EINT;
    ERTM;

    //
    // Loop Forever
    //
    for(;;)
    {
        //
        // Turn on LED
        //
        GPIO_writePin(DEVICE_GPIO_PIN_LED1, 0);

        //
        // Delay for a bit.
        //
        DEVICE_DELAY_US(500000);

        //
        // Turn off LED
        //
        GPIO_writePin(DEVICE_GPIO_PIN_LED1, 1);

        //
        // Delay for a bit.
        //
        DEVICE_DELAY_US(500000);
    }
}

//
// End of File
//

程序移植问题:

当上述操作你都顺利完成之后,这时你想把你的项目拷到另一个人的电脑上时,会报出一个错误,如下所示:
在这里插入图片描述
原因分析:根据报错信息意思是说项目中的driverlib_cm.lib文件路径不对
解决方案:
在这里插入图片描述

下载程序到开发板中:

1. 在这里插入图片描述

2.

确保开发板已经跟电脑连接好了

3. 连接芯片:

在这里插入图片描述

4. 连接之后

在这里插入图片描述

注意!!! 对于我们这个实验,要先下载CPU1的程序,点击运行CPU1,然后再下载CM的程序,点击运行CM

5. Ctrl+Alt+L下载程序

6. 点击运行该芯片:

7. 然后连接CM芯片并下载CM的程序(CM_Project_CM_Blinky_CM.out):

8. 最后运行CM就可以了。

最后最后—》观察LED1 LED2是否正常闪烁

疑难杂站:

1. FLASH和RAM下载问题:

现象:用RAM下载程序之后可以正常跑起来,FLASH就不行

在这里插入图片描述

原因分析:
  1. 在这里插入图片描述
    在这里插入图片描述
原因总结:

在我们自己的例程如:C28388_Project_CM_Blinky_CPU1中有些方法的源代码我们直接拷贝到device文件中了,而不需要driverlib.lib文件

解决方案:

将.lib文件删掉,或者不编译

要创建一个Eclipse SWT项目,首先需要在Eclipse的插件目录中添加一些必要的插件。根据引用\[1\]中提供的信息,你需要添加以下6个插件: 1. org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar 2. org.eclipse.swt_3.2.1.v3235e.jar 3. org.eclipse.core.commands_3.2.0.I20060605-1400.jar 4. org.eclipse.jface.text_3.2.1.r321_v20060810.jar 5. org.eclipse.jface_3.2.1.M20060908-1000.jar 6. org.eclipse.equinox.common_3.2.0.v20060603.jar 添加完这些插件后,你可以点击"Finish"来创建一个SWT项目。然而,如果你尝试以"Run as Java Application"的形式运行你的SWT程序,可能会出现"Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3235 in java.library.path"的错误。这是因为没有导入SWT原生库的原因。 为了解决这个问题,你需要右键单击项目,选择"Import",然后选择"General" -> "File System"来导入SWT原生库。根据引用\[1\]中的描述,SWT原生库以dll文件的形式存在于"../MyEclipse/eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.2.1.v3235"目录中。通过"Browse"按钮选择这个目录,然后在窗口左边选中这个目录,在右边的文件中选中"swt-win32-3235.dll"这个文件,点击"Finish"即可完成导入。 完成上述步骤后,你就可以在新建的项目中右键单击,选择"New",然后选择"Designer" -> "JFace" -> "ApplicationWindow"来创建一个ApplicationWindow。填入新建的类名称和包名后,系统会自动生成相应的代码框架。最后,选择"Run as Java Application",就可以运行这个自动生成的SWT程序了。根据引用\[2\]中的描述,这个过程可以帮助你从无到有地创建一个Eclipse SWT项目。 请注意,这只是一个简单的介绍了SWT的配置过程。如果你需要进一步了解SWT相关技术,可以查询引用\[2\]中提供的参考资料。 #### 引用[.reference_title] - *1* *2* [Eclipse下搭建SWT开发环境](https://blog.csdn.net/yousufu/article/details/2252921)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Eclipse 3.0插件集锦](https://blog.csdn.net/huacai2010/article/details/11758357)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值