Exploring the Config String Memory with the HiFive1
?
?

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:07Recap and set the stage for the day
0:07Recap and set the stage for the day
0:07Recap and set the stage for the day
0:27Show some off-stream work, compiling the Freedom E SDK
0:27Show some off-stream work, compiling the Freedom E SDK
0:27Show some off-stream work, compiling the Freedom E SDK
1:20serge_rgb Sorry, I can't stay to watch the stream... gotta go to bed
🗪
1:20serge_rgb Sorry, I can't stay to watch the stream... gotta go to bed
🗪
1:20serge_rgb Sorry, I can't stay to watch the stream... gotta go to bed
🗪
1:37Determine to add the HiFive1 Getting Started Guide1 to the forum post
1:37Determine to add the HiFive1 Getting Started Guide1 to the forum post
1:37Determine to add the HiFive1 Getting Started Guide1 to the forum post
2:37Upload our program to the HiFive1
2:37Upload our program to the HiFive1
2:37Upload our program to the HiFive1
4:25Note that we'll be printing garbage to the terminal
4:25Note that we'll be printing garbage to the terminal
4:25Note that we'll be printing garbage to the terminal
5:16Reset the board to run our program, with unexpected output
🏃
5:16Reset the board to run our program, with unexpected output
🏃
5:16Reset the board to run our program, with unexpected output
🏃
6:11Consult the annotations2 for how to kill screen
6:11Consult the annotations2 for how to kill screen
6:11Consult the annotations2 for how to kill screen
9:34Kill screen and run make again
🏃
9:34Kill screen and run make again
🏃
9:34Kill screen and run make again
🏃
10:21Cast config_string to an int and make and upload it again
10:21Cast config_string to an int and make and upload it again
10:21Cast config_string to an int and make and upload it again
11:23Investigate errors
11:23Investigate errors
11:23Investigate errors
12:18hossein1387 It usually goes away after a reset
🗪
12:18hossein1387 It usually goes away after a reset
🗪
12:18hossein1387 It usually goes away after a reset
🗪
12:24Reset and try uploading again
12:24Reset and try uploading again
12:24Reset and try uploading again
13:05Run our program and view the output
🏃
13:05Run our program and view the output
🏃
13:05Run our program and view the output
🏃
14:43Change print_instructions() to compute the len differently
14:43Change print_instructions() to compute the len differently
14:43Change print_instructions() to compute the len differently
15:27hossein1387 Yeah, I change it to: size_t len = 0x00001010 - sizeof(config_string);
🗪
15:27hossein1387 Yeah, I change it to: size_t len = 0x00001010 - sizeof(config_string);
🗪
15:27hossein1387 Yeah, I change it to: size_t len = 0x00001010 - sizeof(config_string);
🗪
16:30Consult the documentation for the configuration string length3
16:30Consult the documentation for the configuration string length3
16:30Consult the documentation for the configuration string length3
17:42Remake, upload and run our program
🏃
17:42Remake, upload and run our program
🏃
17:42Remake, upload and run our program
🏃
19:35Try what hossein1387 suggested
19:35Try what hossein1387 suggested
19:35Try what hossein1387 suggested
20:23Run and admire our output
🏃
20:23Run and admire our output
🏃
20:23Run and admire our output
🏃
22:17Consult the documentation on cs-v14
22:17Consult the documentation on cs-v14
22:17Consult the documentation on cs-v14
25:01hossein1387 Take a look at Privileged doc: Chapter 8
🗪
25:01hossein1387 Take a look at Privileged doc: Chapter 8
🗪
25:01hossein1387 Take a look at Privileged doc: Chapter 8
🗪
25:57Read about the Machine Configuration Strings5
📖
25:57Read about the Machine Configuration Strings5
📖
25:57Read about the Machine Configuration Strings5
📖
32:49Determine to update print_instructions()
32:49Determine to update print_instructions()
32:49Determine to update print_instructions()
34:20hossein1387 Yeah, I also tried it with strlen. It gave me the same result
🗪
34:20hossein1387 Yeah, I also tried it with strlen. It gave me the same result
🗪
34:20hossein1387 Yeah, I also tried it with strlen. It gave me the same result
🗪
35:14Research strlen() vs sizeof() for a char *
📖
35:14Research strlen() vs sizeof() for a char *
📖
35:14Research strlen() vs sizeof() for a char *
📖
38:09Update print_instructions() to search for the config_string and then output its length
38:09Update print_instructions() to search for the config_string and then output its length
38:09Update print_instructions() to search for the config_string and then output its length
39:59Make and upload our program
39:59Make and upload our program
39:59Make and upload our program
41:30Run our program and determine to ask on the forums why we get so much error and info output
🏃
41:30Run our program and determine to ask on the forums why we get so much error and info output
🏃
41:30Run our program and determine to ask on the forums why we get so much error and info output
🏃
44:52Unplug, replug and upload again
44:52Unplug, replug and upload again
44:52Unplug, replug and upload again
45:23Run our program, see no output and investigate why
🏃
45:23Run our program, see no output and investigate why
🏃
45:23Run our program, see no output and investigate why
🏃
47:51Consult the 6
47:51Consult the 6
47:51Consult the 6
49:09Remove the loop from print_instructions(), and run again
🏃
49:09Remove the loop from print_instructions(), and run again
🏃
49:09Remove the loop from print_instructions(), and run again
🏃
50:42Investigate the values known by print_instructions()
50:42Investigate the values known by print_instructions()
50:42Investigate the values known by print_instructions()
52:56Run our program and see now output from that either
🏃
52:56Run our program and see now output from that either
🏃
52:56Run our program and see now output from that either
🏃
53:26Test printf()
53:26Test printf()
53:26Test printf()
54:46Determine that printf() is not implemented
54:46Determine that printf() is not implemented
54:46Determine that printf() is not implemented
55:16hossein1387 I have worked with the risc-v64 GCC and I used printf. Works there, but here it's not working
🗪
55:16hossein1387 I have worked with the risc-v64 GCC and I used printf. Works there, but here it's not working
🗪
55:16hossein1387 I have worked with the risc-v64 GCC and I used printf. Works there, but here it's not working
🗪
56:00hossein1387 Oh by the way, I programmed my FPGA with a RISC-V core and wrote a simple program to get the config string at the same memory location as HiFive1 (0x0000100c), but it gave me processor halt. So I think the address is platform dependent
🗪
56:00hossein1387 Oh by the way, I programmed my FPGA with a RISC-V core and wrote a simple program to get the config string at the same memory location as HiFive1 (0x0000100c), but it gave me processor halt. So I think the address is platform dependent
🗪
56:00hossein1387 Oh by the way, I programmed my FPGA with a RISC-V core and wrote a simple program to get the config string at the same memory location as HiFive1 (0x0000100c), but it gave me processor halt. So I think the address is platform dependent
🗪
57:19Take a look at other demos, and wonder why we can't use printf() in demo_gpio.c
57:19Take a look at other demos, and wonder why we can't use printf() in demo_gpio.c
57:19Take a look at other demos, and wonder why we can't use printf() in demo_gpio.c
58:42Try the hello demo
58:42Try the hello demo
58:42Try the hello demo
1:00:13Run the hello demo and also see no output
🏃
1:00:13Run the hello demo and also see no output
🏃
1:00:13Run the hello demo and also see no output
🏃
1:00:39We are out of time for today, with very many questions
1:00:39We are out of time for today, with very many questions
1:00:39We are out of time for today, with very many questions
1:01:13hossein1387 One more thing I tried: char* config_string = 0x0000100c + 0x20004; which crashed the program. I also tried: char* config_string = 0x20004; which printed out garbage
🗪
1:01:13hossein1387 One more thing I tried: char* config_string = 0x0000100c + 0x20004; which crashed the program. I also tried: char* config_string = 0x20004; which printed out garbage
🗪
1:01:13hossein1387 One more thing I tried: char* config_string = 0x0000100c + 0x20004; which crashed the program. I also tried: char* config_string = 0x20004; which printed out garbage
🗪
1:01:35Consult the documentation for #include7 and configuration string8,9
1:01:35Consult the documentation for #include7 and configuration string8,9
1:01:35Consult the documentation for #include7 and configuration string8,9
1:06:07Stay RISCY, everyone
1:06:07Stay RISCY, everyone
1:06:07Stay RISCY, everyone