前文,笔者讲了Linux和Windows下的开发环境搭建,下面就是使用SDK创建新的工程。
sdk_env自录下有两种创建工程的方式,即命令行工具和GUI Project Generator-工具,用户可根据自己的喜好选择适合自己的方式。
以命令行工具为例,双击打开sdk_env_vx.x.x下start_cmd.cmd。
该脚本将打开一个终端。
切换路径至SDK具体的一个示例程序,以hello_world为例。
cd hpm_sdk/samples/hello_world
运行以下命令进行支持目标板查询。
generate_project -list
确认目标板名称后就可以通过运行以下命令进行工程构建,若构建成功,将看到如下类似提示。
generate_project -b hpm5300evk
注1:generate._project可以生成多种工程类型,如:flash_xip(链接完成后的应用程序将会在flash地址空间原地执行),debug(链接完成后的应用程序将会在片上sram中执行,掉电后程序不能保存)等。默认是使用的sram中运行。
注2:当调试flash目标时,建议把启动配置(具体请参考表4)拨为在系统编程(ISP)模式,以免flash内已烧录的程序对当前调试过程产生影响。
生成工程后,在例程目录下就会有相应的目录。
segger_embedded_studio的目录下就是Segger Embedded Studio的工程文件,双击hello_world.emProject可打开该工程,其他编译方式同理。
双击打开stat_gui.exe。
在GUI project generator界面中的“SDK Sample”下拉列表中选择“hello_world”,在“SDK Boards”下拉列表中选择”hpm5300evk”,在“Build Type”下拉列表中选择“flash_xip”。
最后点击”Generate Project”按钮,即可生成xip类型的hello_world工程。
点击“Open Project with IDE”即可快速打开hello_world.工程。
下面笔者使用IED和命令行分别开发程序。
笔者这里使用SEGGER Embedded Studio for RISC-V开发。打开hello_world.工程。
编译工程。
编译完成后提示编译OK即可。
接下来就可以及调试了。
值得注意的是,如果要用FT2232-to-JTAG模式,需要把TRST,TDL,TMS,TDO,TCK跳线帽安装上;如果需要使用JTAG直连方式,则需要把这五个跳线帽拔掉。
然后在Segger Embedded Studio中配置串口。
注意设置串口的波特率为115200。
然后连接串口即可。
然后打开串口。
即可看到运行的程序。
运行start_cmd.cmd脚本文件。
以下步骤描述了如何编译hello_world:
1. 切换到示例应用目录:
cd hpm_sdk/samples/hello_world
2. 创建build目录:
mkdir build
md build
3. 切换目录到"build"
cd build
4. 为Ninja-build产生构建文件:
cmake -GNinja -DBOARD=hpm5300evk ..
5. 编译:
ninja
当编译完成后,生成的elf以及对应的其他文件可以在output目录中找到.
openocd -f probes/ft2232.cfg -f soc/hpm5361.cfg -f boards/hpm5300evk.cfg
7.连接GDB client到openocd GDB server (缺省状态下, openocd gdbserver 端口为 3333)
riscv32-unknown-elf-gdb
gdb> file build/output/demo.elf
gdb> target remote localhost:3333
gdb> load
gdb> b main
gdb> c
在线文档:
http://hpm-sdk.readthedocs.io/
http://hpm-sdk-zh.readthedocs.io/
更多回帖