Bit Twiddling Confusion
?
?

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
z Toggle filter mode V Revert filter to original state

Menu toggling

q Quotes r References f Filter 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

Credits Menu

Enter Open URL (in new tab)
0:07Mention the poll1
0:07Mention the poll1
0:07Mention the poll1
2:42Recap and set the stage for the day
2:42Recap and set the stage for the day
2:42Recap and set the stage for the day
3:56Embark on understanding PLIC_enable_interrupt()2
📖
3:56Embark on understanding PLIC_enable_interrupt()2
📖
3:56Embark on understanding PLIC_enable_interrupt()2
📖
7:32Consult demo_gpio.c for a use case of PLIC_enable_interrupt()
📖
7:32Consult demo_gpio.c for a use case of PLIC_enable_interrupt()
📖
7:32Consult demo_gpio.c for a use case of PLIC_enable_interrupt()
📖
12:18Consult env/hifive1.h for the INT_DEVICE_BUTTON_* and BUTTON_*_OFFSET defines
📖
12:18Consult env/hifive1.h for the INT_DEVICE_BUTTON_* and BUTTON_*_OFFSET defines
📖
12:18Consult env/hifive1.h for the INT_DEVICE_BUTTON_* and BUTTON_*_OFFSET defines
📖
16:15Consult PLIC_enable_interrupt() in conjunction with the FE310-G000 Interrupts and the SiFive PLIC Register Map table3
📖
16:15Consult PLIC_enable_interrupt() in conjunction with the FE310-G000 Interrupts and the SiFive PLIC Register Map table3
📖
16:15Consult PLIC_enable_interrupt() in conjunction with the FE310-G000 Interrupts and the SiFive PLIC Register Map table3
📖
19:06Calculating the value of INT_DEVICE_BUTTON_0 and the result of shifting it >> 3
🖌
📖
19:06Calculating the value of INT_DEVICE_BUTTON_0 and the result of shifting it >> 3
🖌
📖
19:06Calculating the value of INT_DEVICE_BUTTON_0 and the result of shifting it >> 3
🖌
📖
21:50Hunt for more information about the GPIO pins
📖
21:50Hunt for more information about the GPIO pins
📖
21:50Hunt for more information about the GPIO pins
📖
24:58Summarise what current_ptr is being set to and move on to working out how the current mask works
📖
24:58Summarise what current_ptr is being set to and move on to working out how the current mask works
📖
24:58Summarise what current_ptr is being set to and move on to working out how the current mask works
📖
27:47The current mask
🖌
📖
27:47The current mask
🖌
📖
27:47The current mask
🖌
📖
31:380x17 >> 3
🖌
📖
31:380x17 >> 3
🖌
📖
31:380x17 >> 3
🖌
📖
33:06miblo It's 128, according to: printf("%d\n", 1 << (0x17 & 0x7));
🗪
33:06miblo It's 128, according to: printf("%d\n", 1 << (0x17 & 0x7));
🗪
33:06miblo It's 128, according to: printf("%d\n", 1 << (0x17 & 0x7));
🗪
37:41The AND operator
37:41The AND operator
37:41The AND operator
38:45Realise that it should be in hex
📖
38:45Realise that it should be in hex
📖
38:45Realise that it should be in hex
📖
39:08miblo It's not 7 and 17, though, it's 0x7 and 0x17
🗪
39:08miblo It's not 7 and 17, though, it's 0x7 and 0x17
🗪
39:08miblo It's not 7 and 17, though, it's 0x7 and 0x17
🗪
39:52The current mask, take #2
🖌
📖
39:52The current mask, take #2
🖌
📖
39:52The current mask, take #2
🖌
📖
43:05miblo I think you should be shifting up the 1 by 0b00111 bits, if that makes a difference
🗪
43:05miblo I think you should be shifting up the 1 by 0b00111 bits, if that makes a difference
🗪
43:05miblo I think you should be shifting up the 1 by 0b00111 bits, if that makes a difference
🗪
43:17The current mask, take #3
🖌
📖
43:17The current mask, take #3
🖌
📖
43:17The current mask, take #3
🖌
📖
44:43The address of current_ptr
🖌
📖
44:43The address of current_ptr
🖌
📖
44:43The address of current_ptr
🖌
📖
47:27miblo We're doing 0x17 >> 3? This does equal 2, apparently
🗪
47:27miblo We're doing 0x17 >> 3? This does equal 2, apparently
🗪
47:27miblo We're doing 0x17 >> 3? This does equal 2, apparently
🗪
48:20Our conceptual understanding of PLIC_enable_interrupt()
📖
48:20Our conceptual understanding of PLIC_enable_interrupt()
📖
48:20Our conceptual understanding of PLIC_enable_interrupt()
📖
52:23miblo I think it's moving the current_ptr to one of the target 1 enables, i.e. the third one, or 0x0C002082 (with 0x0C002080 being the first target 1 enable)
🗪
52:23miblo I think it's moving the current_ptr to one of the target 1 enables, i.e. the third one, or 0x0C002082 (with 0x0C002080 being the first target 1 enable)
🗪
52:23miblo I think it's moving the current_ptr to one of the target 1 enables, i.e. the third one, or 0x0C002082 (with 0x0C002080 being the first target 1 enable)
🗪
53:24Target Enable 0 at 0x0C002082 in memory, and the relative location of current_ptr
🖌
📖
53:24Target Enable 0 at 0x0C002082 in memory, and the relative location of current_ptr
🖌
📖
53:24Target Enable 0 at 0x0C002082 in memory, and the relative location of current_ptr
🖌
📖
58:49Consult the FE310-G000 Interrupts and consider which bit PLIC_enable_interrupt() is setting
58:49Consult the FE310-G000 Interrupts and consider which bit PLIC_enable_interrupt() is setting
58:49Consult the FE310-G000 Interrupts and consider which bit PLIC_enable_interrupt() is setting
59:34azolotko source & 0x7 can produce values from 0 to 7 depending on value of source. So the shift may vary, it doesn't have to be exactly 7
🗪
59:34azolotko source & 0x7 can produce values from 0 to 7 depending on value of source. So the shift may vary, it doesn't have to be exactly 7
🗪
59:34azolotko source & 0x7 can produce values from 0 to 7 depending on value of source. So the shift may vary, it doesn't have to be exactly 7
🗪
1:00:16What PLIC_enable_interrupt() does for source 0x8, to compare with the previous 0x17
🖌
📖
1:00:16What PLIC_enable_interrupt() does for source 0x8, to compare with the previous 0x17
🖌
📖
1:00:16What PLIC_enable_interrupt() does for source 0x8, to compare with the previous 0x17
🖌
📖
1:07:19Consider that it's computing the correct thing for gpio0, and look back at the 0x17 example
🖌
📖
1:07:19Consider that it's computing the correct thing for gpio0, and look back at the 0x17 example
🖌
📖
1:07:19Consider that it's computing the correct thing for gpio0, and look back at the 0x17 example
🖌
📖
1:12:38miblo What is current set to?
🗪
1:12:38miblo What is current set to?
🗪
1:12:38miblo What is current set to?
🗪
1:14:30We are out of time for today
1:14:30We are out of time for today
1:14:30We are out of time for today