Skip to content

Commit 1ba020f

Browse files
authored
Merge pull request #31 from RT-Thread/master
pr
2 parents 8fccef5 + e3060ba commit 1ba020f

File tree

352 files changed

+304
-213755
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

352 files changed

+304
-213755
lines changed

.github/workflows/action.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ jobs:
123123
- {RTT_BSP: "swm320", RTT_TOOL_CHAIN: "sourcery-arm"}
124124
- {RTT_BSP: "swm320-lq100", RTT_TOOL_CHAIN: "sourcery-arm"}
125125
- {RTT_BSP: "beaglebone", RTT_TOOL_CHAIN: "sourcery-arm"}
126-
- {RTT_BSP: "zynq7000", RTT_TOOL_CHAIN: "sourcery-arm"}
127126
- {RTT_BSP: "zynqmp-r5-axu4ev", RTT_TOOL_CHAIN: "sourcery-arm"}
128127
- {RTT_BSP: "frdm-k64f", RTT_TOOL_CHAIN: "sourcery-arm"}
129128
- {RTT_BSP: "fh8620", RTT_TOOL_CHAIN: "sourcery-arm"}

Jenkinsfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ pipeline {
107107
['stm32f20x', 'sourcery-arm'],
108108
['swm320-lq100', 'sourcery-arm'],
109109
['beaglebone', 'sourcery-arm'],
110-
['zynq7000', 'sourcery-arm'],
111110
['frdm-k64f', 'sourcery-arm'],
112111
['fh8620', 'sourcery-arm'],
113112
['xplorer4330/M4', 'sourcery-arm'],

bsp/bluetrum/ab32vg1-ab-prougen/board/Kconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ menu "On-chip Peripheral Drivers"
176176
config RTC_USING_INTERNAL_CLK
177177
bool "Using internal clock RTC"
178178
default y
179+
config RTC_USING_1S_INT
180+
bool "Using 1 second interrupt"
181+
depends on RT_USING_ALARM
182+
default n
179183
endif
180184

181185
menuconfig BSP_USING_ADC

bsp/bluetrum/libraries/hal_drivers/drv_rtc.c

Lines changed: 65 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* Date Author Notes
88
* 2021-01-28 greedyhao first version
99
* 2021-03-19 iysheng modify just set time first power up
10+
* 2021-03-26 iysheng add alarm and 1s interrupt support
1011
*/
1112

1213
#include "board.h"
@@ -134,15 +135,22 @@ void hal_rtc_init(void)
134135

135136
irtc_time_write(RTCCNT_CMD, sec);
136137
}
138+
#ifdef RT_USING_ALARM
139+
RTCCON |= RTC_CON_ALM_INTERRUPT;
140+
#ifdef RTC_USING_1S_INT
141+
RTCCON |= RTC_CON_1S_INTERRUPT;
142+
#endif
143+
#endif
137144
}
138145
/************** HAL End *******************/
139146

140-
static time_t get_rtc_timestamp(void)
147+
static time_t get_rtc_time_stamp(void)
141148
{
142149
time_t sec = 0;
143150

144151
sec = irtc_time_read(RTCCNT_CMD);
145152
LOG_D("get rtc time.");
153+
146154
return sec;
147155
}
148156

@@ -153,6 +161,22 @@ static rt_err_t set_rtc_time_stamp(time_t time_stamp)
153161
return RT_EOK;
154162
}
155163

164+
static rt_err_t set_rtc_alarm_stamp(time_t alarm_stamp)
165+
{
166+
irtc_time_write(RTCALM_CMD, alarm_stamp);
167+
168+
return RT_EOK;
169+
}
170+
171+
static time_t get_rtc_alarm_stamp(void)
172+
{
173+
time_t sec = 0;
174+
175+
sec = irtc_time_read(RTCALM_CMD);
176+
177+
return sec;
178+
}
179+
156180
static void rt_rtc_init(void)
157181
{
158182
hal_rtc_init();
@@ -165,16 +189,27 @@ static rt_err_t rt_rtc_control(rt_device_t dev, int cmd, void *args)
165189
switch (cmd)
166190
{
167191
case RT_DEVICE_CTRL_RTC_GET_TIME:
168-
*(rt_uint32_t *)args = get_rtc_timestamp();
169-
LOG_D("RTC: get rtc_time %x\n", *(rt_uint32_t *)args);
192+
*(rt_uint32_t *)args = get_rtc_time_stamp();
193+
LOG_D("RTC: get rtc_time %x", *(rt_uint32_t *)args);
170194
break;
171195

172196
case RT_DEVICE_CTRL_RTC_SET_TIME:
173197
if (set_rtc_time_stamp(*(rt_uint32_t *)args))
174198
{
175199
result = -RT_ERROR;
176200
}
177-
LOG_D("RTC: set rtc_time %x\n", *(rt_uint32_t *)args);
201+
LOG_D("RTC: set rtc_time %x", *(rt_uint32_t *)args);
202+
break;
203+
case RT_DEVICE_CTRL_RTC_SET_ALARM:
204+
if (set_rtc_alarm_stamp(*(rt_uint32_t *)args))
205+
{
206+
result = -RT_ERROR;
207+
}
208+
LOG_D("RTC: set alarm_stamp %x", *(rt_uint32_t *)args);
209+
break;
210+
case RT_DEVICE_CTRL_RTC_GET_ALARM:
211+
*(rt_uint32_t *)args = get_rtc_alarm_stamp();
212+
LOG_D("RTC: get alarm_stamp %x", *(rt_uint32_t *)args);
178213
break;
179214
}
180215

@@ -217,15 +252,41 @@ static rt_err_t rt_hw_rtc_register(rt_device_t device, const char *name, rt_uint
217252
return rt_device_register(device, name, flag);
218253
}
219254

255+
#ifdef RT_USING_ALARM
256+
static void rtc_isr(int vector, void *param)
257+
{
258+
rt_interrupt_enter();
259+
260+
if (RTCCON & RTC_CON_ALM_PEND)
261+
{
262+
RTCCPND |= RTC_CPND_ALM;
263+
}
264+
265+
#ifdef RTC_USING_1S_INT
266+
if (RTCCON & RTC_CON_1S_PEND)
267+
{
268+
RTCCPND |= RTC_CPND_1S;
269+
}
270+
#endif
271+
272+
rt_interrupt_leave();
273+
}
274+
#endif
275+
220276
int rt_hw_rtc_init(void)
221277
{
222278
rt_err_t result;
279+
223280
result = rt_hw_rtc_register(&rtc, "rtc", RT_DEVICE_FLAG_RDWR);
224281
if (result != RT_EOK)
225282
{
226283
LOG_E("rtc register err code: %d", result);
227284
return result;
228285
}
286+
287+
#ifdef RT_USING_ALARM
288+
rt_hw_interrupt_install(IRQ_RTC_VECTOR, rtc_isr, RT_NULL, "rtc_isr");
289+
#endif
229290
LOG_D("rtc init success");
230291
return RT_EOK;
231292
}

bsp/bluetrum/libraries/hal_libraries/ab32vg1_hal/include/ab32vg1_hal_rtc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ enum
3232
#define RTC_CON_BAUD_SELECT (0x3u << 1) /*!< Increase clock selection */
3333
#define RTC_CON_CHIP_SELECT (0x1u << 0) /*!< RTC chip select */
3434

35+
// RTCCPND
36+
#define RTC_CPND_1S (0x1u << 18) /*!< Clear RTC 1S pending */
37+
#define RTC_CPND_ALM (0x1u << 17) /*!< Clear RTC alarm pendind */
38+
3539
// RTCCON0
3640
#define RTC_CON0_PWRUP_FIRST (0x01u << 7) /*!< RTC first power up flag */
3741
#define RTC_CON0_INTERNAL_32K (0x01u << 6) /*!< Internal 32K select */

0 commit comments

Comments
 (0)