RISCY BUSINESS»Episode Guide
Investigating handle_m_time_interrupt
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:08Recap and set the stage for the day, with a special shout-out to Andrew Waterman
0:08Recap and set the stage for the day, with a special shout-out to Andrew Waterman
0:08Recap and set the stage for the day, with a special shout-out to Andrew Waterman
3:05Dive back into demo_gpio.c and look into setting mtimecmp to operate on an arbitrary thread
3:05Dive back into demo_gpio.c and look into setting mtimecmp to operate on an arbitrary thread
3:05Dive back into demo_gpio.c and look into setting mtimecmp to operate on an arbitrary thread
4:48Understanding shifting with relation to the memory addresses
🖌
4:48Understanding shifting with relation to the memory addresses
🖌
4:48Understanding shifting with relation to the memory addresses
🖌
9:01Jumping in increments, using multiplication
🖌
9:01Jumping in increments, using multiplication
🖌
9:01Jumping in increments, using multiplication
🖌
11:44A few words on traditional mathematics vs bitwise operations
11:44A few words on traditional mathematics vs bitwise operations
11:44A few words on traditional mathematics vs bitwise operations
14:01Continue reading reset_demo()
📖
14:01Continue reading reset_demo()
📖
14:01Continue reading reset_demo()
📖
15:57Refresh our memories on the Real-Time Clock frequency1
📖
15:57Refresh our memories on the Real-Time Clock frequency1
📖
15:57Refresh our memories on the Real-Time Clock frequency1
📖
21:38Consult the documentation on mtime and mtimecmp2
📖
21:38Consult the documentation on mtime and mtimecmp2
📖
21:38Consult the documentation on mtime and mtimecmp2
📖
24:50Read deeply about the Real-Time Clock3
📖
24:50Read deeply about the Real-Time Clock3
📖
24:50Read deeply about the Real-Time Clock3
📖
29:50Wonder why we have both the RTC and the CLINT's mtime and mtimecmp methods
📖
29:50Wonder why we have both the RTC and the CLINT's mtime and mtimecmp methods
📖
29:50Wonder why we have both the RTC and the CLINT's mtime and mtimecmp methods
📖
31:34Come to understand handle_m_time_interrupt() in demo_gpio.c
📖
31:34Come to understand handle_m_time_interrupt() in demo_gpio.c
📖
31:34Come to understand handle_m_time_interrupt() in demo_gpio.c
📖
34:51Investigate how it knows to call handle_m_time_interrupt(), and remain bamboozled
📖
34:51Investigate how it knows to call handle_m_time_interrupt(), and remain bamboozled
📖
34:51Investigate how it knows to call handle_m_time_interrupt(), and remain bamboozled
📖
40:07hossein1387 The handle_m_time_interrupt() is defined in init.c
🗪
40:07hossein1387 The handle_m_time_interrupt() is defined in init.c
🗪
40:07hossein1387 The handle_m_time_interrupt() is defined in init.c
🗪
40:36Find handle_m_time_interrupt() in env/freedom-e300-hifive/init.c and investigate what it compiles down to
📖
40:36Find handle_m_time_interrupt() in env/freedom-e300-hifive/init.c and investigate what it compiles down to
📖
40:36Find handle_m_time_interrupt() in env/freedom-e300-hifive/init.c and investigate what it compiles down to
📖
43:30Discover that handle_trap() is responsible for calling handle_m_time_interrupt()
📖
43:30Discover that handle_trap() is responsible for calling handle_m_time_interrupt()
📖
43:30Discover that handle_trap() is responsible for calling handle_m_time_interrupt()
📖
47:17Consider how trap_entry is working
📖
47:17Consider how trap_entry is working
📖
47:17Consider how trap_entry is working
📖
49:49hossein1387 Okay, I think I know what's happening. The trap_entry is defined in entry.S
🗪
49:49hossein1387 Okay, I think I know what's happening. The trap_entry is defined in entry.S
🗪
49:49hossein1387 Okay, I think I know what's happening. The trap_entry is defined in entry.S
🗪
50:50Find a handle_trap call in env/entry.S
📖
50:50Find a handle_trap call in env/entry.S
📖
50:50Find a handle_trap call in env/entry.S
📖
51:34hossein1387 Also take a look at start.S in the same folder
🗪
51:34hossein1387 Also take a look at start.S in the same folder
🗪
51:34hossein1387 Also take a look at start.S in the same folder
🗪
51:51Summarise how handle_trap() works
📖
51:51Summarise how handle_trap() works
📖
51:51Summarise how handle_trap() works
📖
53:39Begin to understand env/start.S
📖
53:39Begin to understand env/start.S
📖
53:39Begin to understand env/start.S
📖
53:49Program entry point
🖌
53:49Program entry point
🖌
53:49Program entry point
🖌
54:39Our actual entry point in start.S
📖
54:39Our actual entry point in start.S
📖
54:39Our actual entry point in start.S
📖
56:15We will continue tomorrow
56:15We will continue tomorrow
56:15We will continue tomorrow