Add a "noreturn" attribute to 'scb_reset_system'
Adding this attribute allows to avoid warnings issued by GCC in cases when 'scb_reset_system' is used as a last call in a function with "noreturn" attribute set(usually reset handler of some sorts)
This commit is contained in:
parent
e944876b63
commit
6cb7d8abf3
@ -382,8 +382,8 @@ struct scb_exception_stack_frame {
|
|||||||
: [frameptr]"=r" (f)); \
|
: [frameptr]"=r" (f)); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
void scb_reset_core(void);
|
void scb_reset_core(void) __attribute__((noreturn, naked));
|
||||||
void scb_reset_system(void);
|
void scb_reset_system(void) __attribute__((noreturn, naked));
|
||||||
void scb_set_priority_grouping(u32 prigroup);
|
void scb_set_priority_grouping(u32 prigroup);
|
||||||
|
|
||||||
/* TODO: */
|
/* TODO: */
|
||||||
|
@ -17,16 +17,22 @@
|
|||||||
* along with this library. If not, see <http://www.gnu.org/licenses/>.
|
* along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <libopencm3/cm3/scb.h>
|
#include <libopencm3/cm3/scb.h>
|
||||||
|
|
||||||
void scb_reset_core(void)
|
void scb_reset_core(void)
|
||||||
{
|
{
|
||||||
SCB_AIRCR = SCB_AIRCR_VECTKEY | SCB_AIRCR_VECTRESET;
|
SCB_AIRCR = SCB_AIRCR_VECTKEY | SCB_AIRCR_VECTRESET;
|
||||||
|
|
||||||
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void scb_reset_system(void)
|
void scb_reset_system(void)
|
||||||
{
|
{
|
||||||
SCB_AIRCR = SCB_AIRCR_VECTKEY | SCB_AIRCR_SYSRESETREQ;
|
SCB_AIRCR = SCB_AIRCR_VECTKEY | SCB_AIRCR_SYSRESETREQ;
|
||||||
|
|
||||||
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void scb_set_priority_grouping(u32 prigroup)
|
void scb_set_priority_grouping(u32 prigroup)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user