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