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
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
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: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