12
返回列表 发新帖

GD开发板 实践开发分享

[复制链接]
楼主: dingbo95
 楼主 | 2018-2-28 17:48 | 显示全部楼层
而 GD32F207 对这个表重新进行了编排,把编号从-3 至 6 的中断向量定义为系统异常,
编号为负的内核异常不能被设置优先级,如复位(Reset)、不可屏蔽中断 (NMI)、硬错误
(Hardfault)。从编号 7 开始的为外部中断,这些中断的优先级都是可以自行设置的。详细的
GD32F207 中断向量表见下表。
| 2018-2-28 23:23 | 显示全部楼层
该开发板还是蛮不错的,直接收藏下的
| 2018-2-28 23:51 | 显示全部楼层
弱弱的问一句的,有相关的开发程序分享的么
 楼主 | 2018-3-3 15:01 | 显示全部楼层
magicoctoy 发表于 2018-2-28 16:53
这个开发板上次没有申请到,有点遗憾。

继续努力
 楼主 | 2018-3-3 15:02 | 显示全部楼层
GD32F207 对这个表重新进行了编排,把编号从-3 至 6 的中断向量定义为系统异常,
编号为负的内核异常不能被设置优先级,如复位(Reset)、不可屏蔽中断 (NMI)、硬错误
(Hardfault)。从编号 7 开始的为外部中断,这些中断的优先级都是可以自行设置的。
 楼主 | 2018-3-3 15:05 | 显示全部楼层
详细的GD32F207 中断向量表见下表




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主 | 2018-3-3 15:06 | 显示全部楼层
中断控制器 NVIC (Nested Vectored Interrupt Controller)是属于 Cortex 内核的器件,不可
屏蔽中断 (NMI)和外部中断都由它来处理,而 SYSTICK 不是由 NVIC 来控制的。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主 | 2018-3-3 15:07 | 显示全部楼层
抢占优先级和响应优先级
Cortex M3 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编
号越小,表明它的优先级别越高。
不同的抢占优先级的中断间,优先级高的中断可以抢占优先级低的中断;抢占优先级相
同的中断间不能抢占,但当两个中断同时到达时,由响应优先级决定首先响应哪个中断。

假如内核正在执行 L1 的中断服务函数,则它能被抢占优先级更高的中断 H 打断,由于
L1 和 L0 的抢占优先级相同,所以 L1 不能被 L0 打断。但如果 L1 和 L0 中断是同时到达的,
内核就会首先响应响应优先级别更高的 L0 中断。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主 | 2018-3-3 15:09 | 显示全部楼层
NVIC  的优先级组
在 GD32F207 中,抢占优先级和响应优先级的数量由一个 4 位的数字来决定,NVIC 最多
可以配置 16 种中断向量优先级。这个 4 位数字的位数又可以分配成抢占优先级部分和响应
优先级部分。这样划分方式分为 5 组:
  第 0 组:所有 4 位用来配置响应优先级。
  第 1 组:最高 1 位用来配置抢占优先级,低 3 位用来配置响应优先级。
  第 2 组:高 2 位用来配置抢占优先级,低 2 位用来配置响应优先级。
  第 3 组:高 3 位用来配置抢占优先级,最低 1 位用来配置响应优先级。
  第 4 组:所有 4 位用来配置抢占优先级。
 楼主 | 2018-3-3 15:12 | 显示全部楼层
以第 1 组为例,在 16 种中断向量中,有 8 种中断的抢占优先级为 0 级,而它们的响应
优先级分别为 0~7;其余 8 种中断向量的抢占优先级则为 1 级,响应优先级别分别为 0~7。
要配置这些优先级组,可以采用 ST 库函数 NVIC_PriorityGroupConfig(),可用的参数为
NVIC_PriorityGroup_0~ NVIC_PriorityGroup_4,分别对应以上介绍的 5 种分配组。
在对某个具体的中断分配优先级的时候,需要指定它的中断向量种类,即从 16 种中断
向量中选择一个。注意 NVIC 能配置的是 16 种中断向量,而不是 16 个,当程序中有超过 16
个中断向量时,必然有 2 个以上的中断向量是使用相同的中断种类,而具有相同中断种类的
中断向量不能互相嵌套(抢占优先级相同)。
 楼主 | 2018-3-3 15:15 | 显示全部楼层
很多系统都需要硬件来产生固定的时钟节拍,特别是那些基于 RTOS 的系统。时钟节拍
这个功能通常由硬件定时器来实现。在 CM3 内核中包含了一个特殊的硬件定时器,即 SysTick
定时器,用于产生 SysTick 异常。所有的 CM3 芯片都带有这个定时器,这样方便了软件在不
同芯片厂商的 CM3 处理器间的移植工作。
该定时器的时钟源可以是内部时钟(FCLK),或者是外部时钟(STCLK)。因为 STCLK 的
具体来源由 MCU 设计者决定,因此不同厂商的产品的时钟频率可能会不一样。在 GD32F207
中,SysTick 以 HCLK(AHB 时钟)或 HCLK/8 作为运行时钟。
 楼主 | 2018-3-3 15:15 | 显示全部楼层
SysTick 是一个 24 位的定时器,计数值被保存到当前计数值寄存器 STK_VAL 中,向下计
数,每隔 1 个时钟脉冲就将 STK_VAL 值减 1。当减至 0 时,硬件会触发异常,同时把重载寄
存器 STK_LOAD 中的数据加载到 STK_VAL,重新计数。
 楼主 | 2018-3-3 16:12 | 显示全部楼层
其中寄存器 STK_CTRL 用来配置 SysTick 定时器
  ENABLE
SysTick 定时器的使能位,置 1 使能 SysTick 定时器,置 0 关闭 SysTick 定时器。
  TICKINT
异常触发使能位,置 1 时允许触发 SysTick 异常,置 0 时则不触发异常
  CLKSOURCE
时钟选择位,置 1 时 SysTick 定时器的时钟为 AHB 时钟,置 0 时 SysTick 定时器时钟为
AHB/8(AHB 的八分频)。
  COUNTFLAG
计数 0 标志位,若 STK_VAL 计数至 0,此标志位会被置 1。
 楼主 | 2018-3-3 16:12 | 显示全部楼层
GD32F207 GPIO  介绍
在嵌入式微处理器上通常提供了一种“通用可编程 I/O 端口”,也就是 GPIO,英文全称
General-Purpose Input /Output Ports。
在 GD32F207 芯片上,I/O 引脚可以被软件设置成各种不同的功能,如输入或输出。GPIO
引脚又被分为 GPIOA、GPIOB……不同的组,每组端口分为 0~15,共 16 个不同的引脚,对
于不同型号的芯片,端口的组和引脚的数量不同。 以 PA0 ~ PA15 和 PB0 ~ PB15, PC0 ~
PC15…这样的名字来描述。每个 GPIO 端口有相关的控制和配置寄存器以满足特定应用的需求。
GPIO 端口和和其他的备用功能(AFs)复用同一管脚,在特定的封装下获得最大的的灵活性。
GPIO 管脚通过配置相关的寄存器可以用作备用功能管脚,不管是备用功能输入还是备用功能输
出。
每一个 GPIO 可以软件配置为输出(推挽或开漏), 输入,外设备用功能或模拟模式。每一个
GPIO 管脚可以配置为上拉,下拉或无上拉/下拉。除了模拟模式外,所有的管脚 GPIOs 都具备
大电流驱动能力。
| 2018-3-21 23:15 | 显示全部楼层
这个板子好像是15年的了,现在板载GD-LINK固件版本太低了,下载不了,我也有一块
| 2018-3-25 21:53 | 显示全部楼层
板载了正版 GDLINK 仿真器,这个是很不错的
| 2018-3-26 17:00 | 显示全部楼层
希望学习一下stm32 nucleo可以中间掰开用。
| 2018-3-28 17:41 | 显示全部楼层
开发板资源还是蛮丰富的,主要是板载GDlink仿真器,后续开发还可以使用,点赞。
| 2018-3-29 14:45 | 显示全部楼层
dingbo95 发表于 2018-2-28 17:29
GD32F207 有以下 4 个时钟源:
(1) 高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为 4~16MHz ...

时钟树和STM32F1系列很像
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

快速回复 返回顶部 返回列表