1、Freescale CodeWarrior 10.6 集成开发环境( IDE)使用手册 本手册详细介绍了利用 Freescale CodeWarrior 10.6 IDE 处理器专家系统( Processor Expert)快速建立 KEA工程和调试的步骤,以及该 IDE常用的编程及调试技巧,旨在帮助用户快速熟悉和掌握 CodeWarrior 10.6的使用,利用处理器专家系统快速搭建应用工程进行产品原型验证。 作者: 胡恩伟 ( 飞 思卡 尔中国汽车电 子现场应用工程师) 日 期 : 2014年 10月 26日星期日 版 本: 1.0.0 1 CodeWarrior 10.6 IDE使用手册
2、 1. 利用工程向导快速创建 KEA工程 a. 点击菜单 FileBareBoard Project(裸板工程 ) b. 输 入工程名称(默认将该工程创建在当前工作空间( workspace),用户也可以将其放到其他工作空间) 2 CodeWarrior 10.6 IDE使用手册 利用工程向导快速创建 KEA工程 c. 选 择器件,这里 KEA属于 Kinetis E系列,故选择如下: d. 选择调试工具,这里必须选择 TRK-KEA128板载的 OpenSDA作为本工程的调试工具: 3 CodeWarrior 10.6 IDE使用手册 利用工程向导快速创建 KEA工程 e.选择编程语言和浮点
3、数支持以及控制台( console)硬件支持: f.选择是否使用处理器专家系统以及工程外设 driver的使用模式: 4 CodeWarrior 10.6 IDE使用手册 利用工程向导快速创建 KEA工程 处理器专家系统工程介绍 工程及文件窗口 处理器专家视窗 调试器相关设置 链接文件 启动代码 用户可编程代码放在 Source文件夹下,其中: Event.c和 Event.h:存在中断相关的 callback函数; Main.c:为 main()函数实体; 处理 器专家为每一个组件( compontent)生一个对应的 .h和 .c文件,包含该组件图形化配置对应的驱动程序 5 CodeWar
4、rior 10.6 IDE使用手册 CPU组件介绍及配置 使 用外部晶振作为时钟源进行 clock配置 使 用内部振荡器作为时钟源进行 clock配置 使能外部晶振 输入外部晶振频率 选择 FLL工作模式为 FEE 选择内核 /总线 /定时器时钟频率 配置 FLL倍频输出,处理器专家自动选择配置系数 选择 FLL工作模式为 FEI 除能外部晶振 注意:这里内核 /总线 /定时器时钟频率不能配合为整数的原因是, FLL是的是内部 32.768KHz的时钟源,其整数倍频不为整数 6 CodeWarrior 10.6 IDE使用手册 CPU组件介绍及配置 在 CPU组件的属性设置中还包括常规设置(
5、common settings) 其 中包含了默认看门狗、 SWD调试口以及 Flash Memory的设置 在 CPU组件的属性设置中还包括 CPU内核中断 /复位设置( CPU interrupt/reset) 其 中包含了 CPU内核系统级中断( ARM Cortex M0+实现的异常): 不 可屏蔽中断 NMI、硬件错误异常 Hard fault(当CPU执行 非法指令、非对其地址访问时触发该异常,可以用于捕获程序跑飞时的场景)、超级调用 Supervisor Call和可请求服务异常(用于 RTOS系统任务切换),以及内部时钟失锁( ICS Loss of lock)。所有这些中断的
6、优先级都高于外设中断。 7 CodeWarrior 10.6 IDE使用手册 CPU组件介绍及配置 在 CPU组件的方法( Methods)设置中包含了该组件属性配置所产生的 API函数: 这里可以配置是否生产使能 /除能外设中断以及系统复位函数 在 CPU组件的事件( Eventss)设置中包含了该组件属性配置所产生的中断处理回调函数的名字: 这里仅复位和 NMI使能。 在 CPU组件的编译选型( Build options)设置可进行 memory资源的分配:特别是堆栈的设置以及为处理中断向量的处理,处理器专家依据此配置生成过程的链接文件 8 CodeWarrior 10.6 IDE使用手
7、册 处理器专家组件库( Component Library)介绍 CPU外部设备: 控制台 IO和 FreeMaster组件 CPU内部外设: 通信:同步 /异步串行通信 中 断:外部中断 测 量:捕捉( timer 输入捕捉)和模拟比较器( AMCP) 存储 器: Flash初始化及驱动 外 设初始化:各 MCU内部外设的初始化组件 如果某个组件的 Component Level为 High,则该组件为高级组件,处理器专家会为其生成除底层初始化之外应用层的 API函数 9 CodeWarrior 10.6 IDE使用手册 处理器专家组件库( Component Library)介绍 CPU内
8、部外设: I/O输入输出口:单 bit I/O和多 bit I/O以及并行 I/O 定时器: timer资源的各种应用,如定时事件( EventCntr16/32/8)、自由计数器( FreeCntr/16/32/8)、脉宽调整输出( PWM)、软件日历功能( TimeDate)、定时器中断( TimeInt)、定时器输出( TimeOut)以及看门狗 逻辑设备驱动: 各种片上资源 /外设的逻辑层 driver 操作系 统: 支持 KEA MCU的 MQXLite 软 件模拟: 包含以下外部文件字符的输入接口,触摸感应输入库 TSS_Library等 10 CodeWarrior 10.6 I
9、DE使用手册 添加单 bit I/O组件 用 户可通过在组件库中选中要添加的组件,右键 选中“ Add to Project”快速添加该组件到用户工程,如下图所示: 11 CodeWarrior 10.6 IDE使用手册 bit I/O组件配置 1 下拉根据硬件设计选择 I/O口管脚 2 3 4 设置组件名称( LED1)、 I/O方向为输出,初始化输出为 0 选择要生成的 API函数,使能toggle函数 NegVal 最后添加的 4个 bit I/O组件将出现在 Component目下: 12 CodeWarrior 10.6 IDE使用手册 添加单 bit I/O组件控制 TRK-KEA
10、128板载的4颗 LED 13 CodeWarrior 10.6 IDE使用手册 添加和配置定时器中断组件 选择 CPU内部外设 定时器 TimerInt 添 加定时器中断组件,如下图所示: 设置组件名为“ Timer_10ms” ,选择PIT1作为该定时器硬件中断源,设置中断周期为 10ms 单击此处“ ” 则 会弹出下页 ppt所示的周期设置窗口 14 CodeWarrior 10.6 IDE使用手册 设 置定时器中断周期为 10ms 在此输入期望的中断周期 10ms 设此处限定定时误差,若设置的中断周期超出此误差,则处理器专家会报错 这里列出了当前选择的定时器能够实现的定时周期及精度 1
11、5 CodeWarrior 10.6 IDE使用手册 查 看定时器设置源及分配设置 点击此处可查看定时器设置 16 CodeWarrior 10.6 IDE使用手册 添加和配置定时器中断组件 在事件( Events)栏,可修改中断处理回调函数名称,其默认如下图所示: 设置完成后可以看到定时器组件已出现在 Component文件夹下,点击右上角的生成代码图标生成代码: 生成代码图标 17 CodeWarrior 10.6 IDE使用手册 添加和配置定时器中断组件 完成以上设置并生成代码之后,选择 Event.c添加如下全局变量 Timer_10ms; 注意: 这里添加全局变量和头文件 inclu
12、de必须加在处理器专家指定的位置 必须保留此行注释 全局变量和头文件 include添加在此处 18 CodeWarrior 10.6 IDE使用手册 添加和配置定时器中断组件 最后在中断回调函数中添加中断处理,这里为全局中断计数器加 1; 注意:用户的中断处理代码必须加在 处理 器专家指定的位置 19 CodeWarrior 10.6 IDE使用手册 在 Main()函数添加用户代码 在 main.c中引用全局变量 Timer_10ms; 注意: 这里添加全局变量和头文件 include也 必 须加在处理器专家指定的位置 全局变量和头文件 include必须放在此行注释之后并且 必须保留此行
13、注释 20 CodeWarrior 10.6 IDE使用手册 添加 main()函数主体 在 main()函数中如下代码,实现对 TRK-KEA128 demo板板载 4可 LED的控制; 注意: 这里添加全局变量和头文件 include也 必 须加在处理器专家指定的位置 添加 LED控制以及控制台console打 印输出定时器中断计数器值: 每 10ms/20ms/30ms/40ms分别 toggle一下LED1/LED2/LED3/LED4,每次循环打印一次 Timer_10ms计数值 添加局部变量 Toggled_LED 21 CodeWarrior 10.6 IDE使用手册 编 译工程
14、 选中该工程,右键 Build Project,对其进行编译,编译结果( 错 误和警告)会在问题窗口列出,单击可快速跳转到引起该错误或警告的 C代码位置: 一个工程编译之后,错误 error为 0才会生成最终的可执行文件,才能进行下载和调试;警告 warning视情况而定,可以忽略不管 22 CodeWarrior 10.6 IDE使用手册 启动调试 选中该工程,右键 Debug AsDebug Configuration,启动调试配置界面 每个工程编译之后第一次调试都要进行这样的配置 23 CodeWarrior 10.6 IDE使用手册 调试配置 在弹出的调试配置窗口中,点击 CodeWa
15、rrior,选择 TRK-KEA128_test_Flash_OpenSDA,对其进行如下配置 点击 Debug进行程序下载和调试 单击此处 Edit可进行下页 ppt所示的调试器连接配置 24 CodeWarrior 10.6 IDE使用手册 调试器连接设置 可观察此处判断调试器是否已经正常连接,如为出现调试器则应检查连接和调试驱动是否正确安装 这里选择 TRK-KEA128板载 OpenSDA作为本 Demo的调试器,查看并确保 TRK-KEA128板已经正常连接到电脑 25 CodeWarrior 10.6 IDE使用手册 调试界面介绍 全 速运行 暂停 单步执行,进入函数 单步执行,跳
16、过函数 单步执行,跳出函数 复位 单击选中此处,则进入汇编语言单步执行状态 进程窗口:可查看当前函数的地址及函数调用和执行关系 C语言代码窗口:可查看当前执行C代码函数 汇编语言代码窗口:可查看当前执行 C代码函数对应的汇编代码 控制台信息,可在可以看到程序 printf函数打印输出的定时器中断计数值 TRK-KEA128 Demo板的实际运行效果,四颗板载 LED按照程序控制进行10ms/20ms/30ms/40ms的周期闪烁 变量、断点,表达式、寄存器以及存储器查看窗口,将在下面几页 ppt进行详细介绍 26 CodeWarrior 10.6 IDE使用手册 查看变量和断点 CodeWar
17、rior会将当前执行函数中的所有局部自动添加到变量查看窗口,其中的变量随程序的执行而不断改变和更新 在断点查看窗口能够查看到当前工程所有的断点 注 意: KEA MCU仅支持 2个硬件断点,如果设置多于 2个断点,则无效 27 CodeWarrior 10.6 IDE使用手册 查看全局变量 /表达式 可以通过点击“ +”添加要查看的全局变量或表达式: 也可以在 C代码窗口中选择要查看的全局变量或表达式右键快捷添加: 28 CodeWarrior 10.6 IDE使用手册 查看 MCU内核及外设寄存器 通过寄存器查看窗口可以查看 CPU内核及 MCU外设的所有寄存器值 29 CodeWarrior 10.6 IDE使用手册 观察指定地址的 memory或变量 30 CodeWarrior 10.6 IDE使用手册