请选择 进入手机版 | 继续访问电脑版
查看: 1345|回复: 1

[分享] LPC54114基于MDK的初试

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3297

    主题

    6542

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    31909
    最后登录
    2024-3-29
    发表于 2020-6-2 14:00:14 | 显示全部楼层 |阅读模式
    LPC54114基于MDK的初试

    一、配置MDK支持MCU
    1、安装KEIL MDK5.23
    2、打开MDK后点击 按钮,打开Pack Installer窗口,在这里可以在线安装相应MCU的支持包。通常每个Pack包括了BSP和DFP两部分,一部分是板级支持包,能够支持MCU正常启动运行;一部分是描述文件包,是对MCU的描述定义。
    3、在Device选显卡下找到LPC54000,并点击Install,几分钟后Keil对MCU的支持就做好了。(如果没有找到相应的MCU型号,可以在窗体菜单中选择Pack->Check for Updatas,软件会自动检测并更新支持的芯片板卡列表)
    4、在Board选项卡下搜素“LPC”并找到LPCXpresso54114,在窗体右侧的Example选项卡下有4个条目,点击copy后可以将实例代码下载到本地。


    二、安装板子驱动
    1、NXP官网下载LPCScrypt并安装,会将板子所需的驱动安装到Windows下
    2、将JP5的跳线帽安上,并用mini USB通过J7口接到电脑,此时在设备管理器上查看只有一个LPC设备
    3、在开始菜单中找到LPCScrypt->Program LPC-Link2 with CMSIS-DAP执行
    4、完成后移除JP5跳线帽并将板子重新上电


    三、调试器配置
    1、打开第一步中copy的Blinky工程,Target box中暂时选用 LPC54114 Flash
    2、选择 Project/Manage/Project Items… 或按
    3、Project Targets区域点击 ,新建一个 LPC-Link2 CMSIS-DAP的Target,选择OK关闭窗口
    4、选择LPC-Link2 CMSIS-DAP并点击 或ALT-F7,选择Debug选项卡,选择Select CMSIS-DAP Debugger


    四、调试器测试
    1、板子与电脑通过J7口连接好,并且JP5跳线帽移除,接着上一步中在Debug选项卡中点击Setting
    2、确认Port复选框处是SW选项,如果有下图所示设备,说明调试器配置正确
    3、如果使用的是PLC-Link2,要将 Verify Code Download取消勾选
    4、关闭窗口并Save All


    五、运行Blinky示例
    1、基本操作
    1) Target处选择上面步骤中配置好的LPC-Link2 CMSIS-DAP
    2) 点击 重新编译工程,编译成功后点击 进入Debug模式
    3) 点击 后程序运行并且红灯闪烁,点击 后程序停止运行
    2、硬件断点
    1) Debug模式中,代码左侧有灰色阴影的行表示该行有汇编表示,并且可以加入断点。
    2) M3、M4、M7有六个硬件断点,M0+有两个硬件断点
    3) 加入断点后程序将在执行到断点处停止,黄色箭头所处行是下一条将要执行的指令,蓝色箭头所处行是一个标识符,用于对比源码和汇编。
    4) 选择Debug/Breakpoints或者Ctrl-B进入到断点管理窗口
    3、 Stack + Locals Window
    1) 停止程序后,点击 Call Stack + Locals选项卡,可以查看生命周期内的变量
    2) 栈中的函数会被列出来,普通函数只有它们在栈里才会被列出来,但是在使用RTX时,多线程的其他没有执行的线程也会列出,正在执行的线程会高亮。
    4、Watch 和 Memory 窗口
    1) 可以将全局变量添加到Watch窗口中,窗口会实时更新被观察的变量的状态。
    2) Watch和Memory窗口中均可以实时修改变量的值,以控制程序的进程
    3) 可以将全局变量添加到Memory窗口中,窗口会实时更新被观察变量的内存变化。
    5、System Viewer (SV)
    1) 选择Peripherals/System Viewer -> GPIO
    2) 这里可以查看随着灯的闪烁,对应GPIO口的数值变化,这个变化在Set中体现
    3) 选择Peripherals/Core Peripherals->SysTick Timer,如下图所示
    4) 其中RELOAD的值就是重装计时器的初值,可以通过改变这个值来改变灯闪烁的频率
    5) 修改RELOAD的值为0x005000后,关闭窗口,可以发现灯的闪烁频率加快
    6、Watchpoints: Conditional Breakpoints
    1) 将Counter全局变量加入Watch中
    2) 按 Ctrl-B进入断点管理器,在Expression处输入“counter == 0x4”,按Define后如下图所示
    3) Accsess下选中Read和Write,关闭断点管理器
    4) 程序将会在每次Counter等于4的时候停止
    7、System and Thread Viewer
    1) 打开Debug/OS Support,选择RTX System and Thread Viewer
    2) 显示个线程栈的占用情况和耗时等统计信息


    六、运行DualCore
    1、下载并配置双核工程
    1) 示例中包含了两个工程,上面的是Cortex-M4,下面的是Cortex-M0+
    2) 将上面的工程(即M4)设置为Active Project,用之前的方法配置Debug,并将Setting中的Verify Code Download去掉勾选
    3) 双击MDK图标,再启动一个MDK,并将下面的工程(即M0+)设为Active Project,用之前的方法配置Debug,并将Setting中的Verify Code Download去掉勾选
    2、示例测试
    1) 选择M4的实例,并单击 图标
    2) 在弹出编译选项窗口中按下图来选择
    3) 选择Rebuild编译工程,没有error或者warning
    4) 点击 图标,将程序下载到板子上,可以看到tri-color led三色交替闪烁
    5) 此时将mini USB接到J5口,程序仍然执行
    3、双核调试
    1) 在M4的实例中103行打上断点,程序会在断点处停止运行,则M4传递给M0+的mailbox未能执行完成,所以等保持在一个颜色;下次F5后又会换成另外一种颜色。
    2) 去掉断点,继续执行程序
    3) 在M0+的实例中28行打上断点,程序会在断点处停止运行,则M0+接收M4的mailbox未能执行完成,所以等保持在一个颜色;每一次或两次F5后又会换成另外一种颜色。
    备注:粗略看代码,暂时认为Mailbox就是一个中断的结构体,两个chip之间通过中断进行通信
    4) 去掉两个实例中的所有断点,并推出Debug模式
    4、双核Watch Window
    1) 两个实例都退出Debug模式
    2) 在M4实例的Blinky.c的第20行定义一个全局变量unsigned int CM4 = 0;
    3) 在第102行输入CM4++;全部保存
    4) 切换到M0+实例中,询问源文件被修改,是否重新加载,选择是
    5) 在M4实例的Blinky.c的第18行定义一个全局变量unsigned int CM0 = 0;
    6) 在第58行输入CM0++;全部保存
    7) 在M4实例中编译,如果编译通过再进行下面的步骤
    8) M4实例进入Debug模式,并将CM4加入Watch Window
    9) M0实例进入Debug模式,并将CM0加入Watch Window
    10) 发现当停止M4实例时,M0实例也停止,灯停止闪烁;但停止M0实例时,M4仍然正常运行,灯继续闪烁。


    七、USB mass storage实例
    1、实例运行
    1) 用两根mini USB线分别接在J5和J7口。J5口是用USB协议与主机通信,相当把M4的14K片上RAM当做一个U盘接到了电脑上;J7口是用于连接Link2作为调试器。
    2) 编译工程MassStorage.uvprojx后,按Debug图标进入Debug模式
    3) 运行后电脑根目录下多出一个名为LPC5411xUSB的盘符
    4) 进入该盘后打开README.TXT文件,可以看到信息
    2、Event Recorder
    1) 按 键打开Manage Run Time Environment窗口
    2) 展开Compiler然后选择Event Recorder
    3) 展开USB出现CORE条目, 将Release修改为Debug
    4) 在MassStorage.c源文件中添加#include “EventRecorder.h”
    5) 在main中添加
    EventRecorderInitialize(EventRecordAll,1);
    EventRecorderStart ();
    6) 保存后编译
    7) 进入调试模式后点击 按钮,并选择Event Recorder
    8) 右侧会显示所有时间的信息记录窗口,带有过滤功能, Event Property帮助功能等



    文章出处:CSDN

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7086
    最后登录
    2023-4-20
    发表于 2021-2-2 20:58:02 | 显示全部楼层
    赞很详细!!!
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-3-29 19:28 , Processed in 0.111833 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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