Presentation is loading. Please wait.

Presentation is loading. Please wait.

SE-3910 Real-time Systems Week 4, Class 1 – Quick-Quiz (Ungraded!) – Graded quiz tomorrow – Review coding in C – Libraries Threading Library in C Networking.

Similar presentations


Presentation on theme: "SE-3910 Real-time Systems Week 4, Class 1 – Quick-Quiz (Ungraded!) – Graded quiz tomorrow – Review coding in C – Libraries Threading Library in C Networking."— Presentation transcript:

1 SE-3910 Real-time Systems Week 4, Class 1 – Quick-Quiz (Ungraded!) – Graded quiz tomorrow – Review coding in C – Libraries Threading Library in C Networking Library in C Quiz Tomorrow at start of Lab 3 – See later slide SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling, Some from Dr. Hornick, etc. 1

2 Whole-class Quiz! (1) What is the key item which defines an embedded system versus a non-embedded system a.Hardware only design b.Software only design c.Designed to run on a general purpose computer d.A combination of hardware and software e.Always written in C++ SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 2

3 Whole-class Quiz! (2) What is the key factor which defines a real time system versus a non real time system a.Fast I/O b.Small systems c.Meets deadlines d.High speed operation e.Correct logic SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 3

4 Whole-class Quiz! (3) What is the voltage across R2? SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 4

5 Ohm’s Law SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 5 http://www.gtsparkplugs.com/images/Simple_Ohms_Law.jpg

6 Upcoming Quiz:Topics – Prelab video – questions similar to the quiz at the end of Dr. Schilling’s video – What is a real-time embedded system? – How to burn up your Beaglebone – Locating a pin on board (will supply figures!) – Beaglebone I/O circuits Determine a voltage across a simple circuit with resistors and open or closed switches. SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 6

7 How to Burn Up Your Beaglebone … for fun and profit … Clean up: – Plug ground into power By using alternate power supply – Overpower: >5.1 V input By using alternate power supply – Putting power on IO pins before powering By using alternate power supply – Putting 5V into 3.3 V to the expansion headers By plugging into the wrong pin Even through resistor! – Analog max voltage even lower - 1.8 V Configure digital input as analog input Plug 5V signal into analog input – Don’t pull the microSD card out – push in to eject – Don’t ground an output More on this later… SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 7

8 SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 8 1 st band color gives 1 st number 2 nd band color gives 2 nd number 3 rd band color gives # of zeros 4 th band color gives tolerance or ±

9 SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling (http://www.digikey.com/web%20export/ mkt/general/mkt/resistor-color-chart.jpg) 9

10 Ways to calculate it… SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 10 By hand (in-class exercise) – You would be provided a chart Online – http://www.digikey.com/us/en/mkt/calculators/4- band-resistors.html On your phone – S2 Resistor Color Code

11 I was asked this question in an interview today…. "When we create a thread with pthread_create() (POSIX Threads), the thread starts on its own. Why do we need to explicitly call start() in Java. What is the reason that Java doesnt start the thread when we create an instance of it." I was blank and interviewer was short of time and eventually he couldnt explain the reason to me. http://stackoverflow.com/questions/5269535/ja va-threads-vs-pthreads SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 11

12 Threading JavaPthreads java.lang.Thread#include No external jar neededlink with -pthread Thread t = new Thread(r) t.start(); pthread_create(t,r,sr,a) interface Runnable { void run(); } Parameter: void* (*sr) (void *) t.join();pthread_join(*t, &p) Object o;pthread_mutex_init(m,null) synchronized(o) { … } … /* Garbage coll. */ pthread_mutex_lock() … pthread_mutex_destroy() SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 12

13 From Taylor’s We can declare a function pointer by: uint8_t (*min)(uint8_t, uint8_t); We can assign a function pointer to point to an actual function by: uint8_t minimum(uint8_t num1, uint8_t num2) { return num1 < num2 ? num1 : num2; } min = &minimum; We can use it to call minimum using either of the following ways: uint8_t answer = min(3, 8); uint8_t answer = (*min)(3, 8); SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 13

14 Threading Javapthreads Object o; o.notify(); phread_cond_t c = PTHREAD_COND_INITIALIZER; pthread_cond_broadcast(c); o.wait();pthread_cond_wait(c,m); o.notify();phtread_cond_broadcast(c); SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 14 Caveat: See http://wimhesselink.nl/pub/whh241b.pdf http://wimhesselink.nl/pub/whh241b.pdf

15 Possibly Fun Very simple C++ wrapper for pthreads – http://www.cs.utexas.edu/users/lavender/courses /cs345/lectures/CS345-Lecture-09.pdf http://www.cs.utexas.edu/users/lavender/courses /cs345/lectures/CS345-Lecture-09.pdf notify/wait – example comparison with Java and pthreads – http://wimhesselink.nl/pub/whh241b.pdf http://wimhesselink.nl/pub/whh241b.pdf Compares create for Java, pthreads, and Win32 threads – http://cs.millersville.edu/~csweb/lib/userfiles/9Th readsII.pdf http://cs.millersville.edu/~csweb/lib/userfiles/9Th readsII.pdf SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 15

16 Certainly fun (Dr. Taylor’s Reviews) http://msoe.us/taylor/tutorial/ce2810/functio npointers http://msoe.us/taylor/tutorial/ce2810/functio npointers – Function Pointers http://msoe.us/taylor/tutorial/ce2810/csimila r http://msoe.us/taylor/tutorial/ce2810/csimila r – C/C++/Java http://msoe.us/taylor/tutorial/ce2810/ooc – Object-Oriented C SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 16

17 Other references http://granite.sru.edu/~whit/cpsc464/Notes/fi gs/02-14.jpg http://granite.sru.edu/~whit/cpsc464/Notes/fi gs/02-14.jpg – Simple pthread chart From http://granite.sru.edu/~whit/cpsc464/Notes/ch2.html http://granite.sru.edu/~whit/cpsc464/Notes/ch2.html https://pic.dhe.ibm.com/infocenter/iseries/v7 r1m0/index.jsp?topic=%2Fapis%2Fusers_75.ht m https://pic.dhe.ibm.com/infocenter/iseries/v7 r1m0/index.jsp?topic=%2Fapis%2Fusers_75.ht m – IBM example of using pthread_cond_init SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 17

18 Standards http://pubs.opengroup.org/onlinepubs/79087 99/xsh/pthread.h.html http://pubs.opengroup.org/onlinepubs/79087 99/xsh/pthread.h.html – pthead.h http://pubs.opengroup.org/onlinepubs/79087 99/xsh/systypes.h.html http://pubs.opengroup.org/onlinepubs/79087 99/xsh/systypes.h.html – systypes.h – for xxxx_t SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 18

19 Sockets SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 19 A socket is defined as an endpoint for communication Concatenation of IP address and port – Socket 161.25.19.8:1625 – Port 1625 – Host 161.25.19.8 Communication consists between a pair of sockets

20 Well-Known Ports SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 20 0 – 1023 Well known ports 7 Echo 20 ftp 22 ssh 25 smtp 37 time 70 gopher 79 finger 80 http 666 doom 992 telnet 1024 Registered Ports 1234 Mercurial / git 1309 Altera Quartus 1417 – 1420 Timbuktu Service 1500 IBM Tivoli 1534 Eclipse Agent Discovery Etc

21 Port and Address in POSIX C in_port_t – An unsigned integral type of exactly 16 bits. in_addr_t – An unsigned integral type of exactly 32 bits. SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 21 struct in_addr { n_addr_t s_addr; } istruct sockaddr_in { short sin_family; /* must be AF_INET */ u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; /* Not used, must be zero */ };

22 The socket() system call creates a new socket.socket – 3 arguments Address domain of the socket. – AF_UNIX or AF_INET Type of socket. – SOCK_STREAM or SOCK_DGRAM. Protocol. – Usually 0 SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 22

23 Binding to a socket bind() system call binds a socket to an address bind Takes three arguments – socket file descriptor – address to which is bound – size of the address to which it is bound. SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 23

24 Listen & Accept SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 24 listen() listen – Allows the process to listen for connections to a given socket – Two arguments Socket file descriptor Number of queues that can be waiting accept() accept – Blocks until a client connects to a server

25 Connect Client side – connect() connect int socket – file descriptor for the socket const struct sockaddr *address – the address to connect to socklen_t address_len – len of address returns 0 upon successful completion SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 25

26 Read & Write read() attempts to read nbyte bytes of data from the object referenced by the descriptor fd into the buffer pointed to by buf. read write() write – Writes data to the buffer SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 26

27 References http://pubs.opengroup.org/onlinepubs/00790 8799/xns/syssocket.h.html http://pubs.opengroup.org/onlinepubs/00790 8799/xns/syssocket.h.html – syssocket.h http://pubs.opengroup.org/onlinepubs/00790 8799/xsh/unistd.h.html http://pubs.opengroup.org/onlinepubs/00790 8799/xsh/unistd.h.html – unistd.h http://pubs.opengroup.org/onlinepubs/79087 99/xsh/systypes.h.html http://pubs.opengroup.org/onlinepubs/79087 99/xsh/systypes.h.html – systypes.h – for xxxx_t SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 27


Download ppt "SE-3910 Real-time Systems Week 4, Class 1 – Quick-Quiz (Ungraded!) – Graded quiz tomorrow – Review coding in C – Libraries Threading Library in C Networking."

Similar presentations


Ads by Google