Presentation is loading. Please wait.

Presentation is loading. Please wait.

SE-3910 Real-time Systems Week 5, Class 2 – Lab turn-in page is up! – Lost-and-not-found power supply – Quick-Quiz (Ungraded) – Use interrupts in a Linux/C.

Similar presentations


Presentation on theme: "SE-3910 Real-time Systems Week 5, Class 2 – Lab turn-in page is up! – Lost-and-not-found power supply – Quick-Quiz (Ungraded) – Use interrupts in a Linux/C."— Presentation transcript:

1 SE-3910 Real-time Systems Week 5, Class 2 – Lab turn-in page is up! – Lost-and-not-found power supply – Quick-Quiz (Ungraded) – Use interrupts in a Linux/C environment Watchdog follow-up – Watchdog demo – (Tentative) HOW to set time-out for watchdog – Bash Scripting – Real-Time OS’s SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling, Some from Dr. Hornick, etc. 1

2 Quick Quiz! (1) How do you get a reference (pointer) to the first element in an array? int x[5] = {1,2,3,4,5} boolean foo(int *ip); a)foo(&x); b)foo(&x[0]); c)foo(x); d)foo(x[0]); SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 2

3 Quick Quiz! (2) How do you get a reference (pointer) to the second element in an array? int x[5] = {1,2,3,4,5} boolean foo(int *ip); a)foo(&x+1); b)foo(&x[0]); c)foo(x+1); d)foo(x[0]); e)foo(&(x+1)); SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 3

4 Real-Time Operating Systems What does an operating system REALLY need? – Essential Scheduler Memory allocation (e.g. malloc) File system Interrupts – Important Protection (security) (if on network) – Less important Networking Protection (security) (if off network) – Nice to have GUI Virtual memory Multithreading SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 4

5 UNIX Operating System Common driver strategies – Write to a file – Read from a file – ioctl (system call) – Short programs that wrap ioctl calls – [Addendum] “system calls” from C programs (which don’t really call the kernel, but rather execute the short command-line programs mentioned above or execute a program that reads/writes from a file… SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 5

6 Scripting Why learn scripting? – Faster to write than compiled code Why learn command-line (bash) scripting? – Command line works very naturally with files – UNIX/Linux runs on files SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 6

7 Starting a Script (More details)More details Put the following into a file (e.g. script) #!/bin/bash echo "Hello World" # other fun Now, run this command to make it executable chmod u+x script Now run the script like this:./script SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 7

8 Variables Set a variable export myVar="This is a variable" Read a variable, printing to standard out: echo $myVar Increment a Variable export myVar=$((myVar+1)) Other integer math export myVar=$((myVar+1)) SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 8

9 Arguments Suppose we run our script like this:./script arg1 arg2 arg3 And inside the script, we run this command: echo "argument 3 is: $3" This will print: argument 3 is: arg3 SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 9

10 Quoting - Escapes Suppose we run./script "this is a test" "of" "arguments" The quotes group the words … echo "arg1: $1" echo "arg2: $2" echo "arg3: $3" will print arg1: this is a test arg2: of arg3: arguments SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 10

11 Quoting - Escapes In the example from the previous section, echo "arg1: $1" prints arg1: this is a test but echo 'arg1: $1' prints arg1: $1 Escapes (e.g. "\\, \n, \r") are also useful. SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 11

12 Quoting Challenge: How do I run an ssh command like this – ssh host “command to run” But give “to run” as a single argument? Hint: Use escapes! Hint2: Command to run will be interpretted twice. SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 12

13 Conditionals (More details) (UPDATED link at end of lab)More details Comparison if test "$var1" = "$var2”; then echo "true" else echo "false" fi If file “$var1” exists… if test –e "$var1"; then echo "true" fi SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 13

14 “Counting” Loops Counting loop (my preferred approach) for i in `seq 1 10`; do echo $i; done; Processing files in current directory for i in *.pdf; do echo cp $i ${i/.pdf}.bak.pdf; done; # (Untested – test before use!) SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 14

15 “Sentinal” loops Loop while command succeeds (returns 0) while command echo "looping" done; Keep looping as long as the command fails. while !command echo "looping" done; Keep looping as long as test is “true” while test … echo "looping" done; SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 15

16 Useful commands – sleep 0.5 will sleep for half a second – time command args1 arg2 arg3 – will measure how long it takes – command arg1 arg2 arg3 to run SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 16

17 References for scripting One of the main resources linked from above: http://linuxcommand.org/writing_shell_scripts.php For if test …, I like this one better http://www.tldp.org/LDP/Bash-Beginners- Guide/html/sect_07_01.html Intro to variables (possibly useful) http://www.tldp.org/LDP/abs/html/param eter-substitution.html http://www.tldp.org/LDP/abs/html/param eter-substitution.html SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 17

18 Watchdog On the Beaglebone http://beaglebone.cameon.net/home/watchd og-timer http://beaglebone.cameon.net/home/watchd og-timer Open the file /dev/watchdog Do not close the file Write something (e.g. "\n") to the file at least every 59 seconds to keep the system running DEMO Yes, it is possible to change the time. DEMO? DETAILS? SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 18

19 Command-Line Cheat-sheet I’m working on one I’ve got links to online ones I like Just ask me SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 19

20 Demo – Connecting to Beaglebone [TODO] – I plan to put instructions for setting up a DHCP server on your laptop using “connection sharing” – You know my number. SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 20

21 Demo – Watchdog [See computer] SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 21


Download ppt "SE-3910 Real-time Systems Week 5, Class 2 – Lab turn-in page is up! – Lost-and-not-found power supply – Quick-Quiz (Ungraded) – Use interrupts in a Linux/C."

Similar presentations


Ads by Google