在线时间907 小时
UID349725
注册时间2012-3-27
NXP金币1631
TA的每日心情 | 慵懒 2024-5-23 06:13 |
---|
签到天数: 1082 天 连续签到: 1 天 [LV.10]以坛为家III
金牌会员
 
- 积分
- 6164
- 最后登录
- 2025-7-26
|
本帖最后由 SensorYoung 于 2024-4-8 21:23 编辑
本文记录一下在Keil下使用Jlink烧录RTThread固件的过程。
首先在Git下载最新的Rtthread固件库,把frdm-mcxn947文件夹复制并rename:mcxn947-brk.
使用Jlink RTTview打印,添加相关C和H文件:
- #include <rtdevice.h>
- #include <rtthread.h>
- #include "drv_pin.h"
- #include "SEGGER_RTT.h"
- #include "SEGGER_RTT_Conf.h"
- #define LEDB_PIN ((3*32)+4)
- #define BUTTON_PIN ((0*32)+6)
- static void sw_pin_cb(void *args);
- int main(void)
- {
- #if defined(__CC_ARM)
- rt_kprintf("using armcc, version: %d\n", __ARMCC_VERSION);
- #elif defined(__clang__)
- rt_kprintf("using armclang, version: %d\n", __ARMCC_VERSION);
- #elif defined(__ICCARM__)
- rt_kprintf("using iccarm, version: %d\n", __VER__);
- #elif defined(__GNUC__)
- rt_kprintf("using gcc, version: %d.%d\n", __GNUC__, __GNUC_MINOR__);
- #endif
- rt_pin_mode(LEDB_PIN, PIN_MODE_OUTPUT); /* Set GPIO as Output */
- rt_pin_mode(BUTTON_PIN, PIN_MODE_INPUT_PULLUP);
- rt_pin_attach_irq(BUTTON_PIN, PIN_IRQ_MODE_FALLING, sw_pin_cb, RT_NULL);
- rt_pin_irq_enable(BUTTON_PIN, 1);
- rt_kprintf("MCXN947 HelloWorld\r\n");
- SEGGER_RTT_printf(0,"MCXN947 HelloWorld\r\n");
- #ifdef RT_USING_SDIO
- rt_thread_mdelay(2000);
- if (dfs_mount("sd", "/", "elm", 0, NULL) == 0)
- {
- rt_kprintf("sd mounted to /\n");
- }
- else
- {
- rt_kprintf("sd mount to / failed\n");
- }
- #endif
- while (1)
- {
- rt_pin_write(LEDB_PIN, PIN_HIGH); /* Set GPIO output 1 */
- rt_thread_mdelay(1000); /* Delay 500mS */
- rt_pin_write(LEDB_PIN, PIN_LOW); /* Set GPIO output 0 */
- rt_thread_mdelay(1000); /* Delay 500mS */
- }
- }
- static void sw_pin_cb(void *args)
- {
- rt_kprintf("sw pressed\r\n");
- SEGGER_RTT_printf(0,"sw pressed\r\n");
- }
- // end file
复制代码
其中,如下LED和BUTTON,需要根据MCXN-947 BRK板子的实际情况,修改后如下:
- #define LEDB_PIN ((3*32)+4)
- #define BUTTON_PIN ((0*32)+6)
复制代码
如下需要更改:
下载选项Jlink
下载之前,需要把如下两个文件放在项目同级文件夹:
JLinkSettings.zip
(1.56 KB, 下载次数: 1)
|
|