git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@16337 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
5afc56fe88
commit
3074a8b2c4
|
@ -40,6 +40,7 @@
|
||||||
#define SB_FASTC_GET_FREQUENCY 2
|
#define SB_FASTC_GET_FREQUENCY 2
|
||||||
#define SB_FASTC_VHAL_VGPIO 96
|
#define SB_FASTC_VHAL_VGPIO 96
|
||||||
#define SB_FASTC_VHAL_VUART 97
|
#define SB_FASTC_VHAL_VUART 97
|
||||||
|
#define SB_FASTC_VRQ_GCSTS 119
|
||||||
#define SB_FASTC_VRQ_SETWT 120
|
#define SB_FASTC_VRQ_SETWT 120
|
||||||
#define SB_FASTC_VRQ_CLRWT 121
|
#define SB_FASTC_VRQ_CLRWT 121
|
||||||
#define SB_FASTC_VRQ_SETEN 122
|
#define SB_FASTC_VRQ_SETEN 122
|
||||||
|
|
|
@ -350,6 +350,10 @@ struct sb_class {
|
||||||
* @brief Reference to sh SB thread while waiting for VRQs.
|
* @brief Reference to sh SB thread while waiting for VRQs.
|
||||||
*/
|
*/
|
||||||
thread_reference_t vrq_trp;
|
thread_reference_t vrq_trp;
|
||||||
|
/**
|
||||||
|
* @brief Status flags associated to each VRQ.
|
||||||
|
*/
|
||||||
|
uint32_t vrq_flags[32];
|
||||||
#endif
|
#endif
|
||||||
#if (SB_CFG_ENABLE_VFS == TRUE) || defined(__DOXYGEN__)
|
#if (SB_CFG_ENABLE_VFS == TRUE) || defined(__DOXYGEN__)
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -349,6 +349,15 @@ void sb_sysc_vrq_wait(struct port_extctx *ectxp) {
|
||||||
chSysUnlock();
|
chSysUnlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sb_fastc_vrq_gcsts(struct port_extctx *ectxp) {
|
||||||
|
sb_class_t *sbp = (sb_class_t *)chThdGetSelfX()->ctx.syscall.p;
|
||||||
|
uint32_t sts;
|
||||||
|
|
||||||
|
sts = sbp->vrq_flags[ectxp->r0] & ectxp->r1;
|
||||||
|
sbp->vrq_flags[ectxp->r0] &= ~sts;
|
||||||
|
ectxp->r0 = sts;
|
||||||
|
}
|
||||||
|
|
||||||
void sb_fastc_vrq_setwt(struct port_extctx *ectxp) {
|
void sb_fastc_vrq_setwt(struct port_extctx *ectxp) {
|
||||||
sb_class_t *sbp = (sb_class_t *)chThdGetSelfX()->ctx.syscall.p;
|
sb_class_t *sbp = (sb_class_t *)chThdGetSelfX()->ctx.syscall.p;
|
||||||
uint32_t m;
|
uint32_t m;
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
#if (SB_CFG_ENABLE_VRQ == TRUE) || defined(__DOXYGEN__)
|
#if (SB_CFG_ENABLE_VRQ == TRUE) || defined(__DOXYGEN__)
|
||||||
|
#define SB_SVC119_HANDLER sb_fastc_vrq_gcsts
|
||||||
#define SB_SVC120_HANDLER sb_fastc_vrq_setwt
|
#define SB_SVC120_HANDLER sb_fastc_vrq_setwt
|
||||||
#define SB_SVC121_HANDLER sb_fastc_vrq_clrwt
|
#define SB_SVC121_HANDLER sb_fastc_vrq_clrwt
|
||||||
#define SB_SVC122_HANDLER sb_fastc_vrq_seten
|
#define SB_SVC122_HANDLER sb_fastc_vrq_seten
|
||||||
|
@ -88,6 +89,7 @@ extern "C" {
|
||||||
void sbVRQTriggerI(sb_class_t *sbp, sb_vrqnum_t nvrq);
|
void sbVRQTriggerI(sb_class_t *sbp, sb_vrqnum_t nvrq);
|
||||||
void sb_sysc_vrq_set_alarm(struct port_extctx *ectxp);
|
void sb_sysc_vrq_set_alarm(struct port_extctx *ectxp);
|
||||||
void sb_sysc_vrq_reset_alarm(struct port_extctx *ectxp);
|
void sb_sysc_vrq_reset_alarm(struct port_extctx *ectxp);
|
||||||
|
void sb_fastc_vrq_gcsts(struct port_extctx *ectxp);
|
||||||
void sb_sysc_vrq_wait(struct port_extctx *ectxp);
|
void sb_sysc_vrq_wait(struct port_extctx *ectxp);
|
||||||
void sb_fastc_vrq_setwt(struct port_extctx *ectxp);
|
void sb_fastc_vrq_setwt(struct port_extctx *ectxp);
|
||||||
void sb_fastc_vrq_clrwt(struct port_extctx *ectxp);
|
void sb_fastc_vrq_clrwt(struct port_extctx *ectxp);
|
||||||
|
|
Loading…
Reference in New Issue