We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
RISCY BUSINESS»Episode Guide
PWM Speed Test (Cont.)
?
?

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
0:08Recap and set the stage for the day
0:08Recap and set the stage for the day
0:32Point out a solution from the forum1 to build the Freedom E SDK
📖
0:32Point out a solution from the forum1 to build the Freedom E SDK
📖
0:32Point out a solution from the forum1 to build the Freedom E SDK
📖
2:26Compile and upload test.c to our HiFive1
2:26Compile and upload test.c to our HiFive1
2:26Compile and upload test.c to our HiFive1
5:02Connect to and reset our HiFive1, to see no output
🏃
5:02Connect to and reset our HiFive1, to see no output
🏃
5:02Connect to and reset our HiFive1, to see no output
🏃
6:22Use PWM0_REG rather than PWM1_REG
6:22Use PWM0_REG rather than PWM1_REG
6:22Use PWM0_REG rather than PWM1_REG
7:43Compile, upload and run test.c to see no output
🏃
7:43Compile, upload and run test.c to see no output
🏃
7:43Compile, upload and run test.c to see no output
🏃
8:51Try to print "Hello, World!" before entering the busy-loop
8:51Try to print "Hello, World!" before entering the busy-loop
8:51Try to print "Hello, World!" before entering the busy-loop
9:47Run our program and see no output
🏃
9:47Run our program and see no output
🏃
9:47Run our program and see no output
🏃
12:21Simplify test.c down to the absolute essentials for printing
12:21Simplify test.c down to the absolute essentials for printing
12:21Simplify test.c down to the absolute essentials for printing
13:26Try to run our program and still see no output
🏃
13:26Try to run our program and still see no output
🏃
13:26Try to run our program and still see no output
🏃
14:32Append '\r' to our string
14:32Append '\r' to our string
14:32Append '\r' to our string
15:25Run our program and again see no output
🏃
15:25Run our program and again see no output
🏃
15:25Run our program and again see no output
🏃
16:26Set up the UART
16:26Set up the UART
16:26Set up the UART
17:24Try to run our program and still see no output
🏃
17:24Try to run our program and still see no output
🏃
17:24Try to run our program and still see no output
🏃
18:08Make test.c wait for the HiFive1 to settle
18:08Make test.c wait for the HiFive1 to settle
18:08Make test.c wait for the HiFive1 to settle
18:51Try to run our program and still see no output
🏃
18:51Try to run our program and still see no output
🏃
18:51Try to run our program and still see no output
🏃
19:44Pass our "Hello, World!" string to _puts() as a variable
19:44Pass our "Hello, World!" string to _puts() as a variable
19:44Pass our "Hello, World!" string to _puts() as a variable
21:08Try to run our program and still see no output
🏃
21:08Try to run our program and still see no output
🏃
21:08Try to run our program and still see no output
🏃
22:21Compile, upload and run led_fade to determine that our upload is not working, and investigate why
🏃
22:21Compile, upload and run led_fade to determine that our upload is not working, and investigate why
🏃
22:21Compile, upload and run led_fade to determine that our upload is not working, and investigate why
🏃
25:41Peruse the forums for information on upload failures2
📖
25:41Peruse the forums for information on upload failures2
📖
25:41Peruse the forums for information on upload failures2
📖
29:04Try to upload the led_fade program in safe mode3
29:04Try to upload the led_fade program in safe mode3
29:04Try to upload the led_fade program in safe mode3
32:51Connect to and reset our HiFive1 to see the led_fade successfully running
🏃
32:51Connect to and reset our HiFive1 to see the led_fade successfully running
🏃
32:51Connect to and reset our HiFive1 to see the led_fade successfully running
🏃
33:22Try to upload demo_gpio, and run it successfully
🏃
33:22Try to upload demo_gpio, and run it successfully
🏃
33:22Try to upload demo_gpio, and run it successfully
🏃
35:26Try to upload our own test program, and run it successfully
🏃
35:26Try to upload our own test program, and run it successfully
🏃
35:26Try to upload our own test program, and run it successfully
🏃
37:01Uncomment our PLIC_init() call, hit an error upon uploading, and investigate why
37:01Uncomment our PLIC_init() call, hit an error upon uploading, and investigate why
37:01Uncomment our PLIC_init() call, hit an error upon uploading, and investigate why
41:02Comment out the g_ext_interrupt_handlers initialisation
41:02Comment out the g_ext_interrupt_handlers initialisation
41:02Comment out the g_ext_interrupt_handlers initialisation
41:38Switch to safe boot mode, upload and successfully run our test program
🏃
41:38Switch to safe boot mode, upload and successfully run our test program
🏃
41:38Switch to safe boot mode, upload and successfully run our test program
🏃
42:27Uncomment that g_ext_interrupt_handlers initialisation and try to determine how the interrupt handlers table should be set up
42:27Uncomment that g_ext_interrupt_handlers initialisation and try to determine how the interrupt handlers table should be set up
42:27Uncomment that g_ext_interrupt_handlers initialisation and try to determine how the interrupt handlers table should be set up
44:30Try to upload and run our test program, to see that we were doing it correctly after all
🏃
44:30Try to upload and run our test program, to see that we were doing it correctly after all
🏃
44:30Try to upload and run our test program, to see that we were doing it correctly after all
🏃
45:04Try to pass a string literal to _puts()
45:04Try to pass a string literal to _puts()
45:04Try to pass a string literal to _puts()
47:48Upload and run our program successfully
🏃
47:48Upload and run our program successfully
🏃
47:48Upload and run our program successfully
🏃
48:34Proceed to uncomment the PLIC_enable_interrupt() call and set up the PWM in ONESHOT mode
48:34Proceed to uncomment the PLIC_enable_interrupt() call and set up the PWM in ONESHOT mode
48:34Proceed to uncomment the PLIC_enable_interrupt() call and set up the PWM in ONESHOT mode
49:39Switch to safe boot mode, upload and run our program without success, and investigate why
🏃
49:39Switch to safe boot mode, upload and run our program without success, and investigate why
🏃
49:39Switch to safe boot mode, upload and run our program without success, and investigate why
🏃
52:18Introduce mei_isr() and correctly set up the PLIC interrupt handler
52:18Introduce mei_isr() and correctly set up the PLIC interrupt handler
52:18Introduce mei_isr() and correctly set up the PLIC interrupt handler
59:58Read through trap_entry in entry.S
📖
59:58Read through trap_entry in entry.S
📖
59:58Read through trap_entry in entry.S
📖
1:05:28Consider how global_interrupts.c sets up the interrupt handlers
📖
1:05:28Consider how global_interrupts.c sets up the interrupt handlers
📖
1:05:28Consider how global_interrupts.c sets up the interrupt handlers
📖
1:10:19See how coreplexip-e31-arty/init.c sets up the localISR in handle_trap()
📖
1:10:19See how coreplexip-e31-arty/init.c sets up the localISR in handle_trap()
📖
1:10:19See how coreplexip-e31-arty/init.c sets up the localISR in handle_trap()
📖
1:13:09Wrap it up with the determination to dive into the assembly code
1:13:09Wrap it up with the determination to dive into the assembly code
1:13:09Wrap it up with the determination to dive into the assembly code