Merge branch 'untested'
This commit is contained in:
commit
efb6671bf7
2
Makefile
2
Makefile
|
@ -88,7 +88,7 @@ src/isr.o: src/isr.c
|
|||
%.dis: %.obj
|
||||
$(OBJDUMP) -SD $< > $@
|
||||
|
||||
%.obj: $(LDSCRIPT) %.o #src/interrupt-utils.o
|
||||
%.obj: $(LDSCRIPT) %.o src/isr.o
|
||||
$(LD) $(LDFLAGS) $(AOBJS) \
|
||||
--start-group $(PLATFORM_LIBS) --end-group \
|
||||
-Map $*.map $^ -o $@
|
||||
|
|
8
boot.lds
8
boot.lds
|
@ -28,13 +28,13 @@ ENTRY(_start)
|
|||
SECTIONS
|
||||
{
|
||||
. = 0x00400000;
|
||||
|
||||
|
||||
. = ALIGN(4);
|
||||
.text :
|
||||
{
|
||||
src/start.o (.text)
|
||||
src/isr.o (.text)
|
||||
*(.text)
|
||||
src/start.o (.text)
|
||||
*(.irq)
|
||||
*(.text)
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
|
|
|
@ -10,13 +10,9 @@
|
|||
#define INTENNUM INTBASE + INTENNUM_OFF
|
||||
#define INTSRC INTBASE + INTSRC_OFF
|
||||
|
||||
|
||||
#define no_isrs() no_tmr_isr();
|
||||
|
||||
#define enable_tmr_irq() *(volatile uint32_t *)(INTENNUM) = 5;
|
||||
#define no_tmr_isr() void tmr_isr(void) { return; }
|
||||
|
||||
extern void tmr_isr(void);
|
||||
extern void tmr_isr(void) __attribute__((weak));
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -4,12 +4,15 @@
|
|||
|
||||
#define reg32(x) (*(volatile uint32_t *)(x))
|
||||
|
||||
//__attribute__ ((interrupt("IRQ")))
|
||||
void isr(void)
|
||||
__attribute__ ((section (".irq")))
|
||||
__attribute__ ((interrupt("IRQ")))
|
||||
void irq(void)
|
||||
{
|
||||
// ISR_ENTRY();
|
||||
/* check for TMR0 interrupt */
|
||||
tmr_isr(); // led turns off if I have this, indicating that the isr does jump to tmr_isr
|
||||
if(tmr_isr != NULL) {
|
||||
tmr_isr(); // led turns off if I have this, indicating that the isr does jump to tmr_isr
|
||||
}
|
||||
// if(reg32(INTSRC) & (1<<5)) { tmr_isr(); }
|
||||
// asm("SUBS PC,R14_IRQ,#4")
|
||||
// enableIRQ(); // I think this is necessary, but the LED never turns off when I have this
|
||||
|
|
19
src/start.S
19
src/start.S
|
@ -215,19 +215,12 @@ not_used:
|
|||
|
||||
|
||||
.align 5
|
||||
irq:
|
||||
push {lr}
|
||||
movs lr,pc
|
||||
b isr
|
||||
pop {lr}
|
||||
subs pc,r14,#4 // suggested irq return cmd
|
||||
// STMFD sp!, {r0-r12,lr}
|
||||
// MOVNE lr,pc
|
||||
// ldr r0, =isr
|
||||
// BX r0
|
||||
// LDMFD r13!, {r0-r12,r14}
|
||||
// MOVS PC, R14
|
||||
// subs pc, r14, #4
|
||||
//irq:
|
||||
// push {lr}
|
||||
// movs lr,pc
|
||||
// b isr
|
||||
// pop {lr}
|
||||
// subs pc,r14,#4 // suggested irq return cmd
|
||||
fiq:
|
||||
|
||||
.align 5
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
#include "embedded_types.h"
|
||||
#include "isr.h"
|
||||
|
||||
no_isrs();
|
||||
|
||||
__attribute__ ((section ("startup")))
|
||||
void main(void) {
|
||||
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
#include "embedded_types.h"
|
||||
#include "isr.h"
|
||||
|
||||
no_isrs();
|
||||
|
||||
__attribute__ ((section ("startup")))
|
||||
void main(void) {
|
||||
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
#include "embedded_types.h"
|
||||
#include "isr.h"
|
||||
|
||||
no_isrs();
|
||||
|
||||
__attribute__ ((section ("startup"))) void main(void) {
|
||||
*(volatile uint32_t *)GPIO_PAD_DIR0 = 0x00000100;
|
||||
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
#include "embedded_types.h"
|
||||
#include "isr.h"
|
||||
|
||||
no_isrs();
|
||||
|
||||
__attribute__ ((section ("startup")))
|
||||
void main(void) {
|
||||
|
||||
|
|
|
@ -31,8 +31,6 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7',
|
|||
|
||||
#include "isr.h"
|
||||
|
||||
no_isrs();
|
||||
|
||||
#define NBYTES 1024
|
||||
__attribute__ ((section ("startup")))
|
||||
void main(void) {
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include "maca.h"
|
||||
#include "embedded_types.h"
|
||||
#include "isr.h"
|
||||
|
||||
#define reg(x) (*(volatile uint32_t *)(x))
|
||||
|
||||
|
@ -77,9 +78,6 @@ void toggle_led(void) {
|
|||
}
|
||||
}
|
||||
|
||||
#include "isr.h"
|
||||
no_isrs();
|
||||
|
||||
__attribute__ ((section ("startup")))
|
||||
void main(void) {
|
||||
uint8_t c;
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include "maca.h"
|
||||
#include "embedded_types.h"
|
||||
#include "isr.h"
|
||||
|
||||
#define reg(x) (*(volatile uint32_t *)(x))
|
||||
|
||||
|
@ -112,9 +113,6 @@ void fill_data(void) {
|
|||
}
|
||||
}
|
||||
|
||||
#include "isr.h"
|
||||
no_isrs();
|
||||
|
||||
__attribute__ ((section ("startup")))
|
||||
void main(void) {
|
||||
uint8_t c;
|
||||
|
|
|
@ -29,7 +29,6 @@ const uint8_t hex[16]={'0','1','2','3','4','5','6','7',
|
|||
//#define DUMP_LEN 16
|
||||
|
||||
#include "isr.h"
|
||||
no_isrs();
|
||||
|
||||
__attribute__ ((section ("startup")))
|
||||
void main(void) {
|
||||
|
|
|
@ -47,9 +47,7 @@
|
|||
#define reg16(x) (*(volatile uint16_t *)(x))
|
||||
|
||||
#include "embedded_types.h"
|
||||
|
||||
#include "isr.h"
|
||||
no_isrs();
|
||||
|
||||
__attribute__ ((section ("startup")))
|
||||
void main(void) {
|
||||
|
|
|
@ -10,9 +10,7 @@
|
|||
#define UART1_BR 0x80005018
|
||||
|
||||
#include "embedded_types.h"
|
||||
|
||||
#include "isr.h"
|
||||
no_isrs();
|
||||
|
||||
__attribute__ ((section ("startup")))
|
||||
void main(void) {
|
||||
|
|
Loading…
Reference in New Issue