拖延症后期,清明节放假前一天拿到板子,初略尝试搭建环境没弄出来,
之后就是各种借口没再去碰他,这两天被催作业了。。。
最初使用NXP的开发环境,我承认他们的IDE的确做得很出色(虽然我还没有用透),够傻瓜化,
不过每次接触新的IDE少不了排斥,以及各种不习惯,同时我也很讨厌他的工厂管理方式,于是我依旧使用
习惯的万精油开发环境——SEGGER + 交叉编译器
所需工具
通用工具
- cmake
- sublime text
- git bash
NXP 相关
配置环境
NXP的相关文件安装到D:NXP下
安装 MKW41Z_Connectivity_Software.exe
生成目录 D:NXPMKW41Z_ConnSw_1.0.2
有用的东西在 D:NXPMKW41Z_ConnSw_1.0.2boards 下,里面有很丰富的例子,
几乎所有的例子都能通过几个环境编译IAR/KDS/MDK/ARMGCC,我只是用ARMGCC环境。
另一个非常有用的目录是 D:NXPMKW41Z_ConnSw_1.0.2toolswirelessProjectCloner,
这个克隆工具实际上时把SDK里的若干例程根据你所关心的内容,分别拷贝到其他目录,
不建议直接在boards下作任何编辑。可惜它不能Clone ARMGCC的工程
安装KDS
生成目录 D:NXPFreescaleKDS_v3
对我有用的是D:NXPFreescaleKDS_v3Toolchainbinarm-xxx
以及D:NXPFreescaleKDS_v3SEGGERJFlash.exe
测试交叉编译器
进入 D:NXPMKW41Z_ConnSw_1.0.2boardsfrdmkw41zdriver_examplesgpioled_outputarmgcc
这个工程是LED的测试用例,运行后LED每秒开关一次。
export ARMGCC_DIR=D:/NXP/Freescale/KDS_v3/Toolchain
或者 我的电脑——属性——高级设置——环境变量——新建——“变量名”ARMGCC_DIR
——“变量值”D:/NXP/Freescale/KDS_v3/Toolchain
-
继续./build_release.sh 生成 Makefile
-
直接 make clean/make all 编译
生成release/gpio_led_output.elf,这个文件不能直接下载,需要转换成 bin文件
-
elf转bin文件
在bash下输入,
arm-none-eabi-objcopy.exe -O binary -S release/gpio_led_output.elf a.bin
或者直接把它添加到Makefile里
或者直接把它添加到Makefile里
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start D:/NXP/MKW41Z_ConnSw_1.0.2/boards/frdmkw41z/driver_examples/gpio/led_output/armgcc/CMakeFiles D:/NXP/MKW41Z_ConnSw_1.0.2/boards/frdmkw41z/driver_examples/gpio/led_output/armgcc/CMakeFiles/progress.marks
$(MAKE) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start D:/NXP/MKW41Z_ConnSw_1.0.2/boards/frdmkw41z/driver_examples/gpio/led_output/armgcc/CMakeFiles 0
arm-none-eabi-objcopy.exe -O binary release/gpio_led_output.elf a.bin
测试下载器
打开D:NXPFreescaleKDS_v3SEGGERJlink
.exe,
-
测试Jlink.exe能否连接到设备
首先拔下KW41Z上的USB电源,启动Jlink.exe,此时应该不能完全启动,他会找不到
设备,然后插入KW41Z的USB,JLink.exe探测成功。
随意在上面输入一些命令 connect 或 loadbin 都可以,会提示你对环境做些配置,选择Jlink后一路回车
如果弹出对话框选择芯片就参考下图,这个SEGGER的版本是V6的,与以前我所用过的V4略有不同,需要手动选择芯片, 在这里我卡了很久。
SEGGER V614版本选择芯片Freescale MKW41Z512xxx4,不是NXP厂家
SEGGER V5.10 选择芯片FreeScale MKW40Z160XXX4(找不到KW41Z)
一键下载脚本
平时的编译和下载只需两步
$ make all
$ ./dl.sh
dl.sh 内容,我的SEGGER安装在C:program file(x86)SEGGERJLINK_V614
#!/bin/bash
# dl.sh
/c/Program Files (x86)/SEGGER/JLink_V614/JLink.exe -device MKW41Z512XXX4 -Speed 4000 -IF JTAG -JTAGConf -1,-1 -CommanderScript download.jlink
Jlink.exe 导入配置脚本 download.jlink
r
h
loadbin a.bin 0
setpc 0
g
exit
最后,好久没在论坛发帖,居然现在可以支持MakeDown格式,棒棒哒