您尚未登录。

楼主 #1 2020-05-09 18:27:21

缥缈九哥
会员
注册时间: 2020-05-09
已发帖子: 93
积分: 91

基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥

基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立

一,下载软件

1,mdk:MDK-523.EXE
http://www.keil.com/fid/j34rw9wlgtwj1w3qhmw11ww3fwxbkks16d2wd1/files/eval/mdk523.exe

2,pack:Synwit.SWM32_DFP.1.0.0.pack
通过代理商或者“yuanxihua@21cn.com”获取此Pack文件。

二,安装软件

1,右击 MDK-523.EXE 用管理员权限安装到 C:\Keil ;
2,安装 Synwit.SWM32_DFP.1.0.0.pack 到 C:\Keil\ARM\PACK\Synwit\SWM32_DFP\1.1.0 ;
3,打开MDK-ARM的IDE界面,在菜单的 “project”->“Manage”->“Pack Installer”下刷新在线安装 ARM下的所有PACK包 ;
4,在MDK-ARM的IDE界面,在菜单的 “File”->“License Management”里安装上RL-ARM和 MAK-ARM Plus 的版权。

三,建立工程

1,右击桌面“Keil uVision5” 打开MDK-ARM界面,在菜单的 “project”->“New uVision Project ...”下建立项目“9g-swm180”到:
“D:\works\9G-CM0\9G-SWM180X”目录下面;

2,在弹出的“Select Device for Target ‘Target1’”选择里选择 “Synwit” 下的“SWM1800 Series”下的“SWM180xB”器件后点击“OK”
现成项目器件的选择;

3,在弹出的“Manage Run-Time Environment”里选择“CMSIS”下的“CORE”和“RTOS(API)”下的“Keil RTX”,以及“Device”下的
“Startup”及“Driver”下面的所有外设驱动,然后点击“OK”完成项目的建立;

3,在“D:\works\9G-CM0\9G-SWM180X”下建立“source”文件夹,并在MDK-ARM界面左侧“Project”下的“Target 1”下面的“Source Group1”
修改成“source”文件夹;

4,在MDK-ARM界面“File”->“New...”建立一个空文件后保存到“D:\works\9G-CM0\9G-SWM180X\source”并命名为“main.c”,并且加入到项目的
左侧的“source”文件夹中;

5,修改“main.c”文件内容如下:
#include "SWM1800.h"
int main(void)
{
SystemInit();
GPIO_Init(GPIOA, PIN8 , 1, 0, 0, 0);//GPIOA.8 配置为输出引脚,推挽输出
while(1){GPIO_InvBit(GPIOA, PIN8);for(int i=0; i<1000000; i++) {;}}
}

四,配置工程

1,打开MDK-ARM的界面,在菜单的 “Project”->“Options for Target1 ...”下“Target”里选择上“Use MicroLIB”,在“Output”里选择上“Create HEX File”,
在“Debug”里选择上“J-LINK/J-TRACE Cortex”,并在后面的“Setting”弹出的“Target device settings”里选择上“Cortex-M0”,后点击“OK”,
退回的“Debug”里面“Port:”下选择端口“SW”,看到能识别IDCODE后点击 “确定”再“OK”完成项目设置;

五,执行工程

1,利用JLINK的SWD口连接目标板到电脑的USB口,在MDK-ARM的界面菜单的 “Debug”->“Start/Stop Session”进行编译下载代码,然后按F5全速
运行程序。完成实现入门点灯全过程!

六,应用RTX

1,在“main.c”文件前部分加上头文件“#include "cmsis_os.h"”,定义两个进程号 “osThreadId idLED, idCOM;”声明两个进程“void TaskLED(void const *arg);”和“
void TaskCOM(void const *arg);”定义两个进程“osThreadDef(TaskLED, osPriorityNormal, 1, 0);”和“osThreadDef(TaskCOM, osPriorityNormal, 1, 0);”
2,在“main()”函数中加入RTOS初始化“ osKernelInitialize();”以及创建进程“idLED = osThreadCreate(osThread(TaskLED), NULL);”和“idLED = osThreadCreate(osThread(TaskCOM), NULL);”
并启动RTOS“osKernelStart();”;

3,添加两个进程实体后“main.c”如下:

#include "SWM1800.h"
#include "cmsis_os.h"

osThreadId idLED, idCOM;
void TaskLED(void const *arg);
void TaskCOM(void const *arg);
osThreadDef(TaskLED, osPriorityNormal, 1, 0);
osThreadDef(TaskCOM, osPriorityNormal, 1, 0);
void SerialInit(void);

int main(void)
{
SystemInit();
osKernelInitialize();
idLED = osThreadCreate(osThread(TaskLED), NULL);
idLED = osThreadCreate(osThread(TaskCOM), NULL);
osKernelStart();
}

void TaskLED(void const *arg)
{
GPIO_Init(GPIOA, PIN8, 1, 0, 0, 0); //GPIOA.8配置为输出引脚,推挽输出
GPIO_Init(GPIOA, PIN9, 1, 0, 0, 0); //GPIOA.9配置为输出引脚,推挽输出
GPIO_ClrBit(GPIOA, PIN8);GPIO_SetBit(GPIOA, PIN9);

while(1)
{
GPIO_InvBit(GPIOA, PIN8);GPIO_InvBit(GPIOA, PIN9);
osDelay(500);
}
}
void TaskCOM(void const *arg)
{
SerialInit();
while(1)
{
printf("Hi, World!\r\n");
osDelay(500);
}
}
void SerialInit(void)
{
UART_InitStructure UART_initStruct;

PORT_Init(PORTA, PIN0, FUNMUX_UART0_RXD, 1); //GPIOA.0配置为UART0输入引脚
PORT_Init(PORTA, PIN1, FUNMUX_UART0_TXD, 0); //GPIOA.1配置为UART0输出引脚

UART_initStruct.Baudrate = 57600;
UART_initStruct.RXThresholdIEn = 0;
UART_initStruct.TXThresholdIEn = 0;
UART_initStruct.TimeoutIEn = 0;
UART_Init(UART0, &UART_initStruct);
UART_Open(UART0);
}
int fputc(int ch, FILE *f)
{
UART_WriteByte(UART0, ch);
while(UART_IsTXBusy(UART0));
return ch;
}

4,在MDK-ARM的界面菜单的 “Debug”->“Start/Stop Session”进行编译下载代码,然后按F5全速
运行程序。

离线

#2 2022-06-17 20:23:08

nufing
会员
注册时间: 2020-01-02
已发帖子: 95
积分: 79.5

Re: 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥

不知道能不能像 STM32、GD32 那样,通过串口进行烧录程序 ?

最近编辑记录 nufing (2022-06-17 20:24:57)

离线

#3 2022-06-18 09:36:26

LinjieGuo
Moderator
注册时间: 2019-07-24
已发帖子: 592
积分: 595
个人网站

Re: 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥

nufing wrote:

不知道能不能像 STM32、GD32 那样,通过串口进行烧录程序 ?

可以的,有个专用的ISP 串口/Jlink烧写工具。

离线

#4 2022-06-18 09:48:18

Iven
会员
注册时间: 2018-04-10
已发帖子: 61
积分: 1

Re: 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥

按照领导说的,没有图片说明,不合格

离线

#5 2022-06-21 20:31:24

nufing
会员
注册时间: 2020-01-02
已发帖子: 95
积分: 79.5

Re: 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥

LinjieGuo wrote:

nufing wrote:

不知道能不能像 STM32、GD32 那样,通过串口进行烧录程序 ?

可以的,有个专用的ISP 串口/Jlink烧写工具。

资料太少了, 真不好搞。 开发板放了一段时间,现在不知道是自己操作步骤不对,还是开发板有问题。

ISP 上拉,

C2 C3 接 串口, TTL电平 的,

使用SYNWIT- PRG ,死活连不上

最近编辑记录 nufing (2022-06-21 20:31:41)

离线

#6 2022-12-07 06:49:10

吴助建
会员
注册时间: 2021-12-08
已发帖子: 116
积分: 19

Re: 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥

这家公司是真的好,找遍整个官网,就是找不到keil 5的pack包.
奇了怪了.

离线

#7 2022-12-07 08:40:43

LinjieGuo
Moderator
注册时间: 2019-07-24
已发帖子: 592
积分: 595
个人网站

Re: 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥

吴助建 wrote:

这家公司是真的好,找遍整个官网,就是找不到keil 5的pack包.
奇了怪了.

链接:https://pan.baidu.com/s/1atLWlk1_SUR8WjISr-Bfpw
提取码:byv2
资料都放在这个网盘里面,官方构建的。

离线

#8 2022-12-10 19:36:08

hotkey
会员
注册时间: 2019-06-23
已发帖子: 72
积分: 97

Re: 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥

吴助建 wrote:

这家公司是真的好,找遍整个官网,就是找不到keil 5的pack包.
奇了怪了.

华芯微特的资料挺全的,例程也很好使,做开发硬件部分的代码直接从例程里copy过来就行。这一点做的挺赞的。

离线

#9 2022-12-10 19:37:00

hotkey
会员
注册时间: 2019-06-23
已发帖子: 72
积分: 97

Re: 基于MDK-ARM的华芯微特SWM180+RTOS的JLINK开发环境建立--缥缈九哥

需要注意的是硬件I2C有坑,复位都不能解决,必须要掉电。用到I2C的小伙伴记得用IO来模拟。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn


东莞哇酷科技有限公司开发