How Not to Write a Block
|
|
- Barnard Briggs
- 6 years ago
- Views:
Transcription
1 How Not to Write a Block Tom Rondeau (tom@trondeau.com)
2 Introduction Review concepts of working through building a block. When errors happen, what to do about it. Explore some common problems. Tom Rondeau (tom@trondeau.com) Writing Blocks 2 / 44
3 Define a Task for our Block Looking for an event in data. Setup: Receive a digital signal (some form of QAM). We can demod it into a constellation in GNU Radio now. We need a trigger off a specific event when that even starts. We need to write a new block to handle this: What s the size of the event in samples? Look over the event size and determine if it s occurred. Emit a tag when it has on the item on which it began. Scale the imaginary part of the stream by 2. y = x r + j2x i Tom Rondeau (tom@trondeau.com) Writing Blocks 3 / 44
4 System Setup: All GNU Radio Blocks. Tom Rondeau Writing Blocks 4 / 44
5 Output doesn t look right... I should be seeing a real constellation Tom Rondeau (tom@trondeau.com) Writing Blocks 5 / 44
6 Let s add some instrumentation Time sinks added before and after the last block. Tom Rondeau (tom@trondeau.com) Writing Blocks 6 / 44
7 Input looks good, output doesn t So it s the pfb_clock_sync block that s the problem. Tom Rondeau (tom@trondeau.com) Writing Blocks 7 / 44
8 What to do about that block? Let s look at the manual page and hope it s complete: cloc Lots of info here, including a sentence: taps: One of the most important parameters for this block... And continuing to read, we find we have to oversample the filter taps. Tom Rondeau (tom@trondeau.com) Writing Blocks 8 / 44
9 I don t understand what the description says In this case, there are a lot of examples that use this block: /usr/share/gnuradio/examples/digital/demod/pam_timing.grc How did I know this? grep to look in examples or source for this block. Tom Rondeau (tom@trondeau.com) Writing Blocks 9 / 44
10 Setting the right taps is much better Received constellation is easily identifiable now. Tom Rondeau Writing Blocks 10 / 44
11 Now to build a new block Do I know what I m doing? Maybe better check for some help. gnuradio.org has a set of tutorials. See How to write an out-of-tree (OOT) module Teaches us how to use gr_modtool and configure Show gr_modtool newmod Show gr_modtool add Tom Rondeau (tom@trondeau.com) Writing Blocks 11 / 44
12 First, create the module Unless you already have a module that this will fit in to. use gr_modtool newmod Tom Rondeau (tom@trondeau.com) Writing Blocks 12 / 44
13 Add the new block to it For help, gr_modtool help add use gr_modtool add Tom Rondeau Writing Blocks 13 / 44
14 Make sure it s working at this point No use spending time until we know we can build at all Do the minor amount to setup the class by filling in all the <+ ~ +> stuff Tom Rondeau (tom@trondeau.com) Writing Blocks 14 / 44
15 Build the project Run cmake and compile $ mkdir build $ cd build $ cmake -DCMAKE_INSTALL_PREFIX=<some dir>../ $ make $ make install Tom Rondeau (tom@trondeau.com) Writing Blocks 15 / 44
16 A word of advice... Tom Rondeau Writing Blocks 16 / 44
17 Let s understand the point of the block Derotate the input by the known frequency. See if a particular vector of samples exists on the input stream. Measure known vector sig against the output stream out Tom Rondeau (tom@trondeau.com) Writing Blocks 17 / 44
18 Let s do that signal processing Say we have defined a function that does the detection. call it do_some_signal_processing Call in the work function. Compile! Error? WAT? Tom Rondeau (tom@trondeau.com) Writing Blocks 18 / 44
19 Luke, you ve switched off your compiler output! What s wrong? Probably not useful to rely on the Force to find our bugs. Tom Rondeau (tom@trondeau.com) Writing Blocks 19 / 44
20 Compiler output Output can be cryptic and hard to parse. Read through it to understand what it s saying. Telling us we called the function with no parameters but it takes parameters. Tom Rondeau (tom@trondeau.com) Writing Blocks 20 / 44
21 Fix the error The function takes two parameters, the length of the detection signal and the input to test against. Recompile Tom Rondeau Writing Blocks 21 / 44
22 Negative. Negative. It didn t go in. It just impacted the surface. Tom Rondeau (tom@trondeau.com) Writing Blocks 22 / 44
23 What s wrong this time? can t convert from void* to gr_complex? Ohhh! That s what our cast was about! Use in instead of input_items. Tom Rondeau (tom@trondeau.com) Writing Blocks 23 / 44
24 You re all clear kid. Now let s blow this thing and go home. Tom Rondeau (tom@trondeau.com) Writing Blocks 24 / 44
25 Loop over all items in the derotated output Loop from 0 to noutput_items-d_len so we don t overrun the buffer Tom Rondeau (tom@trondeau.com) Writing Blocks 25 / 44
26 That compiles. Now to signal the detection with a tag. do_some_signal_processing returns a value of 1 if the event occurred or 0 if not. When a 1 occurs, we d like to send a tag. Don t be too hasty. That is my motto. Treebeard Let s see if this happens before we try to work with the tag system. Print debug info to stdout Use the GNU Radio Logger: Tom Rondeau (tom@trondeau.com) Writing Blocks 26 / 44
27 Debugging There are many right ways to debug. Maybe some faster than others. Do what works for you, but have some trick you use. Here, we use the logger to emit a DEBUG message when the detector returns 1. Tom Rondeau (tom@trondeau.com) Writing Blocks 27 / 44
28 Runs and prints the output info every few seconds. Tom Rondeau Writing Blocks 28 / 44
29 Now build the tag and send it Learn about the tag stream system: Create a gr::tag_t object use add_item_tag(0, tag); Tom Rondeau (tom@trondeau.com) Writing Blocks 29 / 44
30 And add our adjustment of the data stream Rescaling the imaginary part by 2. Tom Rondeau Writing Blocks 30 / 44
31 Ready to test. Rework GUI tools to see better. Bottom constellation plot is the input to our detector and runs freely. Top constellation plot is output and is set to trigger off our detected tag. Tom Rondeau Writing Blocks 31 / 44
32 Ready to test. Rework GUI tools to see better. Logger says we are detecting and sending the tag. It s also missing too many detections. The tag trigger is never firing, so the block isn t seeing the tag. Tom Rondeau (tom@trondeau.com) Writing Blocks 32 / 44
33 This could be difficult to debug Tom Rondeau Writing Blocks 33 / 44
34 Debugging tags? Use the Tag Debug block Prints all tags to stdout. Won t help here we still don t see any output. Tom Rondeau (tom@trondeau.com) Writing Blocks 34 / 44
35 Misunderstood the tag offset value Ah, the absolute offset of the item, not just the current offset, i, in the work function. Tom Rondeau Writing Blocks 35 / 44
36 What about that other problem? Signal of interest happening periodically, but the detection is worse than expected. Wait... why am I iterating over one value and returning another? Don t we want to process all items? Tom Rondeau (tom@trondeau.com) Writing Blocks 36 / 44
37 But we can t process beyond the input stream! We re only looking at noutput_items-d_len items. But that doesn t process all of our samples. And what if noutput_items < d_len? We can actually tell the runtime to give us those extra samples. Tom Rondeau (tom@trondeau.com) Writing Blocks 37 / 44
38 Setup the block to work with the scheduler We want to scan over a length of symbols. Use a GNU Radio scheduler feature called set_history. Yeah, awesome, how was I supposed to know that? Fair question. The Scheduler isn t well represented in the manual. Makes sure we look over the entire length of our detection requirement. call set_history(len) in constructor. Compile Tom Rondeau (tom@trondeau.com) Writing Blocks 38 / 44
39 Final, working block Tom Rondeau Writing Blocks 39 / 44
40 Working! Wrangling cats! Tom Rondeau Writing Blocks 40 / 44
41 Other things to think about Segmentation faults and core dumps: Tutorial page on gnuradio.org: TutorialsDebugging Operating system tools to get to know: grep or git grep git cmake Shell commands and environmental variables Tom Rondeau Writing Blocks 41 / 44
42 Still don t know? Google Stack Overflow can solve a lot of questions Find us on the mailing list gnuradio.org/redmine/projects/gnuradio/wiki/mailinglists Find us on IRC (freenode server) #gnuradio Tom Rondeau (tom@trondeau.com) Writing Blocks 42 / 44
43 Challenge problem: Understand this block and its interactions with the scheduler: Tom Rondeau Writing Blocks 43 / 44
44 Challenge problem: Understand this block and its interactions with the scheduler: gr::block consume_each enable_update_rate set_relative_rate check_topology forecast get_tags_in_range Optional outputs Tom Rondeau Writing Blocks 44 / 44
New GNU Radio Tools: Performance Counters, Logging, Thread Controls, QTGUI
New GNU Radio Tools: Performance Counters, Logging, Thread Controls, QTGUI Tom Rondeau trondeau.com 2013-10-03 Tom Rondeau (trondeau.com) New GNU Radio Tools: Performance Counters, Logging, Thread 2013-10-03
More informationCS354 gdb Tutorial Written by Chris Feilbach
CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that
More informationGDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial
A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program
More informationTutorial: GNU Radio Companion
Tutorials» Guided Tutorials» Previous: Introduction Next: Programming GNU Radio in Python Tutorial: GNU Radio Companion Objectives Create flowgraphs using the standard block libraries Learn how to debug
More informationCSE 374 Programming Concepts & Tools. Brandon Myers Winter 2015 Lecture 11 gdb and Debugging (Thanks to Hal Perkins)
CSE 374 Programming Concepts & Tools Brandon Myers Winter 2015 Lecture 11 gdb and Debugging (Thanks to Hal Perkins) Hacker tool of the week (tags) Problem: I want to find the definition of a function or
More informationScientific Programming in C IX. Debugging
Scientific Programming in C IX. Debugging Susi Lehtola 13 November 2012 Debugging Quite often you spend an hour to write a code, and then two hours debugging why it doesn t work properly. Scientific Programming
More informationThe name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.
Mr G s Java Jive #2: Yo! Our First Program With this handout you ll write your first program, which we ll call Yo. Programs, Classes, and Objects, Oh My! People regularly refer to Java as a language that
More informationReliable programming
Reliable programming How to write programs that work Think about reliability during design and implementation Test systematically When things break, fix them correctly Make sure everything stays fixed
More informationHelping Developers Help You. Tom Caputi
Helping Developers Help You Tom Caputi tcaputi@datto.com The ZFS Code Base 2 The ZFS on Linux* Code Base: Statistics Source code 641 files 383950 lines of code ZFS Test suite (not including ztest) 1327
More information5 R1 The one green in the same place so either of these could be green.
Page: 1 of 20 1 R1 Now. Maybe what we should do is write out the cases that work. We wrote out one of them really very clearly here. [R1 takes out some papers.] Right? You did the one here um where you
More informationSystem Security Class Notes 09/23/2013
System Security Class Notes 09/23/2013 1 Format String Exploits a Format String bugs The printf family consists of functions with variable arguments i printf (char* format, ) ii sprint (char* dest, char*
More informationGRUG 11: Lots of gnuradio work
GRUG 11: Lots of gnuradio work Coding guide wiki page, follow along http://gnuradio.org/redmine/projects/gnuradio/wiki/blockscodingguide Work here: git://gnuradio.org/jblum.git UHD complex-int8 samples
More informationUpgrading Your Geant4 Release
Upgrading Your Geant4 Release Joseph Perl, SLAC 1 Contents Major versus Minor releases What to look for in the release notes How to upgrade 2 Major versus Minor Releases Geant4 release numbers are of the
More informationJava/RealJ Troubleshooting Guide
Java/RealJ Troubleshooting Guide by Bob Clark / Sharon Curtis / Simon Jones, September 2000 Some of these tips you will come across during your practical sessions, however we felt it would be helpful to
More informationClass 1: Homework. Intro to Computer Science CSCI-UA.0101 New York University Courant Institute of Mathematical Sciences Fall 2017
Intro to Computer Science CSCI-UA.0101 New York University Courant Institute of Mathematical Sciences Fall 2017 1 1. Please obtain a copy of Introduction to Java Programming, 11th (or 10th) Edition, Brief
More informationFrom 0 to 6 GHz in 30 minutes bootstrap your SDR Experience!
From 0 to 6 GHz in 30 minutes bootstrap your SDR Experience! Start from scratch today, hack the EM spectrum tomorrow! Marcus Müller FOSDEM 2017 February 4, 2017 Introduction From theory to practice Engineering
More informationCriterion Documentation
Criterion Documentation Release 2.3.0 Franklin "Snaipe" Mathieu Dec 07, 2016 Contents 1 Introduction 3 1.1 Philosophy................................................ 3 1.2 Features..................................................
More informationLecture 14: more class, C++ streams
CIS 330: / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 14:
More informationThe Edit-Compile-Run Cycle. EECS 211 Winter 2017
The Edit-Compile-Run Cycle EECS 211 Winter 2017 2 So you ve written a program: #include int main() { std::cout
More informationUnix and C Program Development SEEM
Unix and C Program Development SEEM 3460 1 Operating Systems A computer system cannot function without an operating system (OS). There are many different operating systems available for PCs, minicomputers,
More informationIntro to x86 Binaries. From ASM to exploit
Intro to x86 Binaries From ASM to exploit Intro to x86 Binaries I lied lets do a quick ctf team thing Organization Ideas? Do we need to a real structure right now? Mailing list is OTW How do we get more
More informationThe OSP 2 Survival Guide
The OSP 2 Survival Guide What is OSP 2 Educational platform that simulates Hardware (devices, CPU, memory) Events (interrupts, timer events) Job streams (task/thread life cycle, I/O requests, interprocess
More informationLiquibase Version Control For Your Schema. Nathan Voxland April 3,
Liquibase Version Control For Your Schema Nathan Voxland April 3, 2014 nathan@liquibase.org @nvoxland Agenda 2 Why Liquibase Standard Usage Tips and Tricks Q&A Why Liquibase? 3 You would never develop
More informationSPRITES Moving Two At the Same Using Game State
If you recall our collision detection lesson, you ll likely remember that you couldn t move both sprites at the same time unless you hit a movement key for each at exactly the same time. Why was that?
More informationWeek 5, continued. This is CS50. Harvard University. Fall Cheng Gong
This is CS50. Harvard University. Fall 2014. Cheng Gong Table of Contents News... 1 Buffer Overflow... 1 Malloc... 6 Linked Lists... 7 Searching... 13 Inserting... 16 Removing... 19 News Good news everyone!
More informationQUIZ. What are 3 differences between C and C++ const variables?
QUIZ What are 3 differences between C and C++ const variables? Solution QUIZ Source: http://stackoverflow.com/questions/17349387/scope-of-macros-in-c Solution The C/C++ preprocessor substitutes mechanically,
More informationDebugging (Part 1) The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 5
Debugging (Part 1) The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 5 1 For Your Amusement When debugging, novices insert corrective code; experts
More informationCSE 374 Programming Concepts & Tools
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 11 gdb and Debugging 1 Administrivia HW4 out now, due next Thursday, Oct. 26, 11 pm: C code and libraries. Some tools: gdb (debugger)
More informationComputer Science 50: Introduction to Computer Science I Harvard College Fall Quiz 0 Solutions. Answers other than the below may be possible.
Quiz 0 Solutions Answers other than the below may be possible. Short Answers. 0. :-) 1. 10111111 + 00000001 11000000 2. For efficiency, characters printed to stdout are buffered until a newline is printed
More informationUSRP/GNU Radio Tutorial
2013-06-24 USRP/GNU Radio Tutorial 윤성로 NCSU, syoon4@ncsu.edu http://www4.ncsu.edu/~syoon4/ 1 KRNET 2013 SDR (Software Defined Radio) Framework that implements radio functionalities in software Wireless
More informationC++ for CMEA II. Kjetil Olsen Lye. September 24, 2015
C++ for CMEA II Kjetil Olsen Lye September 24, 2015 C++ in CMEA II Focus of the course is not C++ However, all programming exercises will be in C++ C++ is very relevant for later studies Loads of use cases
More informationYup, left blank on purpose. You can use it to draw whatever you want :-)
Yup, left blank on purpose. You can use it to draw whatever you want :-) Chapter 1 The task I have assigned myself is not an easy one; teach C.O.F.F.E.E. Not the beverage of course, but the scripting language
More informationIntroduction to Programming
CHAPTER 1 Introduction to Programming Begin at the beginning, and go on till you come to the end: then stop. This method of telling a story is as good today as it was when the King of Hearts prescribed
More informationReviewing gcc, make, gdb, and Linux Editors 1
Reviewing gcc, make, gdb, and Linux Editors 1 Colin Gordon csgordon@cs.washington.edu University of Washington CSE333 Section 1, 3/31/11 1 Lots of material borrowed from 351/303 slides Colin Gordon (University
More information9 R1 Get another piece of paper. We re going to have fun keeping track of (inaudible). Um How much time do you have? Are you getting tired?
Page: 1 of 14 1 R1 And this is tell me what this is? 2 Stephanie x times y plus x times y or hm? 3 R1 What are you thinking? 4 Stephanie I don t know. 5 R1 Tell me what you re thinking. 6 Stephanie Well.
More informationRecall: Address Space Map. 13: Memory Management. Let s be reasonable. Processes Address Space. Send it to disk. Freeing up System Memory
Recall: Address Space Map 13: Memory Management Biggest Virtual Address Stack (Space for local variables etc. For each nested procedure call) Sometimes Reserved for OS Stack Pointer Last Modified: 6/21/2004
More informationINTRODUCTION. 2
1 INTRODUCTION It is of no secret that Android is loved by millions of people around the world. Created and developed by Google, it would be most developers dream job. That being said, there are a lot
More informationCISC-124. Casting. // this would fail because we can t assign a double value to an int // variable
CISC-124 20180122 Today we looked at casting, conditionals and loops. Casting Casting is a simple method for converting one type of number to another, when the original type cannot be simply assigned to
More informationLecture 4 September Required reading materials for this class
EECS 261: Computer Security Fall 2007 Lecture 4 September 6 Lecturer: David Wagner Scribe: DK Moon 4.1 Required reading materials for this class Beyond Stack Smashing: Recent Advances in Exploiting Buffer
More information1 2 http://www.d.umn.edu/~gshute/softeng/object-oriented.html Polymorphism and overloading can lead to confusion if used excessively. However, the capability of using words or names to mean different things
More informationImportant From Last Time
Important From Last Time Embedded C Pros and cons Macros and how to avoid them Intrinsics Interrupt syntax Inline assembly Today Advanced C What C programs mean How to create C programs that mean nothing
More informationCSE 326: Data Structures. Section notes, 4/9/2009
CSE 326: Data Structures Java Generi ics & JUnit 4 Section notes, 4/9/2009 slides originally by Hal Perkins Type-Safe Containers Idea a class or interface can have a type parameter: public class Bag
More informationPage 1. Today. Important From Last Time. Is the assembly code right? Is the assembly code right? Which compiler is right?
Important From Last Time Today Embedded C Pros and cons Macros and how to avoid them Intrinsics Interrupt syntax Inline assembly Advanced C What C programs mean How to create C programs that mean nothing
More information6 Stephanie Well. It s six, because there s six towers.
Page: 1 of 10 1 R1 So when we divided by two all this stuff this is the row we ended up with. 2 Stephanie Um hm. 3 R1 Isn t that right? We had a row of six. Alright. Now before doing it see if you can
More informationCOMP 250 Winter stacks Feb. 2, 2016
Stack ADT You are familiar with stacks in your everyday life. You can have a stack of books on a table. You can have a stack of plates on a shelf. In computer science, a stack is an abstract data type
More informationBy Jonathan Leger. AdSense Gold - It s time to start cashing in
By Jonathan Leger jonathanleger@adsensegold.com http://www.adsensegold.com/ AdSense Gold - It s time to start cashing in AdSense SEO Made Easy Page 2 Why I Created This Ebook And what it will teach you
More informationState of Octave. John W. Eaton. OctConf July John W. Eaton GNU Octave 18 July / 14
State of Octave John W. Eaton OctConf 2012 18 July 2012 John W. Eaton (jwe@octave.org) GNU Octave 18 July 2012 1 / 14 Overview More developers than ever More activity by more people than ever The state
More informationOutline. Computer programming. Debugging. What is it. Debugging. Hints. Debugging
Outline Computer programming Debugging Hints Gathering evidence Common C errors "Education is a progressive discovery of our own ignorance." Will Durant T.U. Cluj-Napoca - Computer Programming - lecture
More informationPART 1: Getting Started
Programming in C++ / FASTTRACK TUTORIALS Introduction PART 1: Getting Started Welcome to the first article in the C++ FASTTRACK tutorial series! These tutorials are designed to take you from zero to a
More informationGetting Started. Excerpted from Hello World! Computer Programming for Kids and Other Beginners
Getting Started Excerpted from Hello World! Computer Programming for Kids and Other Beginners EARLY ACCESS EDITION Warren D. Sande and Carter Sande MEAP Release: May 2008 Softbound print: November 2008
More informationQUIZ. Source:
QUIZ Source: http://stackoverflow.com/questions/17349387/scope-of-macros-in-c Ch. 4: Data Abstraction The only way to get massive increases in productivity is to leverage off other people s code. That
More informationImportant From Last Time
Important From Last Time Embedded C Ø Pros and cons Macros and how to avoid them Intrinsics Interrupt syntax Inline assembly Today Advanced C What C programs mean How to create C programs that mean nothing
More informationSoftware Development. Software Testing: Verification and Validation. Verification and Validation (V&V) Verification. Validation
Software Development Software Testing: Verification and Validation Problem domain Customer Specification Problem statement A set of (docs, use cases) Program code Running System 2 Verification and Validation
More informationlogistics: ROP assignment
bug-finding 1 logistics: ROP assignment 2 2013 memory safety landscape 3 2013 memory safety landscape 4 different design points memory safety most extreme disallow out of bounds usually even making out-of-bounds
More informationGraded Assignment 2 Maple plots
Graded Assignment 2 Maple plots The Maple part of the assignment is to plot the graphs corresponding to the following problems. I ll note some syntax here to get you started see tutorials for more. Problem
More informationHacking Blind BROP. Presented by: Brooke Stinnett. Article written by: Andrea Bittau, Adam Belay, Ali Mashtizadeh, David Mazie`res, Dan Boneh
Hacking Blind BROP Presented by: Brooke Stinnett Article written by: Andrea Bittau, Adam Belay, Ali Mashtizadeh, David Mazie`res, Dan Boneh Overview Objectives Introduction to BROP ROP recap BROP key phases
More informationPage 1. Today. Last Time. Is the assembly code right? Is the assembly code right? Which compiler is right? Compiler requirements CPP Volatile
Last Time Today Compiler requirements CPP Volatile Advanced C What C programs mean int my_loop (int base) { int index, count = 0; for (index = base; index < (base+10); index++) count++; urn count; my_loop:
More informationDue: 9 February 2017 at 1159pm (2359, Pacific Standard Time)
CSE 11 Winter 2017 Program Assignment #2 (100 points) START EARLY! Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time) PROGRAM #2: DoubleArray11 READ THE ENTIRE ASSIGNMENT BEFORE STARTING In lecture,
More informationCS 220: Introduction to Parallel Computing. Input/Output. Lecture 7
CS 220: Introduction to Parallel Computing Input/Output Lecture 7 Input/Output Most useful programs will provide some type of input or output Thus far, we ve prompted the user to enter their input directly
More information2
1 2 3 4 5 All resources: how fast, how many? If all the CPUs are pegged, that s as fast as you can go. CPUs have followed Moore s law, the rest of the system hasn t. Not everything can be made threaded,
More informationProgramming Project 4: COOL Code Generation
CS 331 Compilers Fall 2017 Programming Project 4: COOL Code Generation Prof. Szajda Due Tuesday, December 5, 11:59:59 pm NOTE: There will be no extensions whatsoever given for this project! So, begin it
More informationI/Q Data Guide v.1. Guide for acquiring I/Q data with the Gnu Radio Framework. Flagstaff, AZ March 5, Edited by.
I/Q Data Guide v.1 Guide for acquiring I/Q data with the Gnu Radio Framework Flagstaff, AZ March 5, 2017 Edited by Michael Finley Northern Arizona University Dynamic and Active Systems Laboratory CONTENTS
More informationChecked and Unchecked Exceptions in Java
Checked and Unchecked Exceptions in Java Introduction In this article from my free Java 8 course, I will introduce you to Checked and Unchecked Exceptions in Java. Handling exceptions is the process by
More informationBuilding a Django Twilio Programmable Chat Application
Building a Django Twilio Programmable Chat Application twilio.com/blog/08/0/python-django-twilio-programmable-chat-application.html March 7, 08 As a developer, I ve always wanted to include chat capabilities
More informationOperating System Principles: Memory Management Swapping, Paging, and Virtual Memory CS 111. Operating Systems Peter Reiher
Operating System Principles: Memory Management Swapping, Paging, and Virtual Memory Operating Systems Peter Reiher Page 1 Outline Swapping Paging Virtual memory Page 2 Swapping What if we don t have enough
More informationGraduate Topics in Biophysical Chemistry CH Assignment 0 (Programming Assignment) Due Monday, March 19
Introduction and Goals Graduate Topics in Biophysical Chemistry CH 8990 03 Assignment 0 (Programming Assignment) Due Monday, March 19 It is virtually impossible to be a successful scientist today without
More informationTest Driven Development (TDD)
Test Driven Development (TDD) Test Driven Development Introduction Good programmers write code, great programmers write tests Never, in the field of programming, have so many owed so much to so few - Martin
More informationModern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi and Cyrill Stachniss
Modern C++ for Computer Vision and Image Processing Igor Bogoslavskyi and Cyrill Stachniss Outline Course introduction Linux introduction C++ syntax Hello World! 2 What you will learn in course How to
More informationSoftware Compare and Contrast
Microsoft Software Compare and Contrast Word Easy to navigate. Compatible with all PC computers. Very versatile. There are lots of templates that can be used to create flyers, calendars, resumes, etc.
More informationPointers and Memory 1
Pointers and Memory 1 Pointer values Pointer values are memory addresses Think of them as a kind of integer values The first byte of memory is 0, the next 1, and so on A pointer p can hold the address
More informationDarkRift Server Plugin Tutorial
DarkRift Server Plugin Tutorial Introduction This tutorial will guide you through the process of writing server plugins. It will introduce you to the server s inner architecture and will give you a good
More informationMemory Management: Virtual Memory and Paging CS 111. Operating Systems Peter Reiher
Memory Management: Virtual Memory and Paging Operating Systems Peter Reiher Page 1 Outline Paging Swapping and demand paging Virtual memory Page 2 Paging What is paging? What problem does it solve? How
More informationCOMP 410 Lecture 1. Kyle Dewey
COMP 410 Lecture 1 Kyle Dewey About Me I research automated testing techniques and their intersection with CS education My dissertation used logic programming extensively This is my second semester at
More informationCOMP Lecture Notes The Compiler
COMP 161 - Lecture Notes - 05 - The Compiler January 20, 2016 In these notes we talk about compiling our multi-file C++ program in order to check syntax errors, run unit-tests, or build the main executable.
More informationRandom Testing of Interrupt-Driven Software. John Regehr University of Utah
Random Testing of Interrupt-Driven Software John Regehr University of Utah Integrated stress testing and debugging Random interrupt testing Source-source transformation Static stack analysis Semantics
More information15 Sharing Main Memory Segmentation and Paging
Operating Systems 58 15 Sharing Main Memory Segmentation and Paging Readings for this topic: Anderson/Dahlin Chapter 8 9; Siberschatz/Galvin Chapter 8 9 Simple uniprogramming with a single segment per
More informationHow to decrypt 3ds ROM s: This Guide is STRICTLY for 3DS s that are on firmware s I will go back and make this
How to decrypt 3ds ROM s: WAIT!!!!! BEFORE WE BEGIN THERE ARE A FEW THINGS!!! This Guide is STRICTLY for 3DS s that are on firmware s 4.1-4.5. I will go back and make this tutorial for users that are on
More informationCS 161 Computer Security
Popa & Wagner Spring 2016 CS 161 Computer Security Homework 2 Due: Monday, February 22nd, at 11:59pm Instructions. This homework is due Monday, February 22nd, at 11:59pm. It must be submitted electronically
More informationSteps for project success. git status. Milestones. Deliverables. Homework 1 submitted Homework 2 will be posted October 26.
git status Steps for project success Homework 1 submitted Homework 2 will be posted October 26 due November 16, 9AM Projects underway project status check-in meetings November 9 System-building project
More informationAssignment 1c: Compiler organization and backend programming
Assignment 1c: Compiler organization and backend programming Roel Jordans 2016 Organization Welcome to the third and final part of assignment 1. This time we will try to further improve the code generation
More information2.3 Unix Streaming and Piping
2.3 Unix Streaming and Piping In addition to streams explicitly opened by applications, the Unix system provides you with 3 special streams: stdin (standard input): This stream is usually connected to
More informationProject Report Number Plate Recognition
Project Report Number Plate Recognition Ribemont Francois Supervisor: Nigel Whyte April 17, 2012 Contents 1 Introduction............................... 2 2 Description of Submitted Project...................
More information1 Installation (briefly)
Jumpstart Linux Bo Waggoner Updated: 2014-09-15 Abstract A basic, rapid tutorial on Linux and its command line for the absolute beginner. Prerequisites: a computer on which to install, a DVD and/or USB
More informationCSci 4061 Introduction to Operating Systems. Programs in C/Unix
CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,
More informationJudging the Value of Static Analysis. William Pugh Univ. of Maryland
Judging the Value of Static Analysis William Pugh Univ. of Maryland Judging static analysis Is static analysis an effective/profitable use of time/ funds/resources? Which static analysis tool or tools
More information6.828: OS/Language Co-design. Adam Belay
6.828: OS/Language Co-design Adam Belay Singularity An experimental research OS at Microsoft in the early 2000s Many people and papers, high profile project Influenced by experiences at
More informationIntroduction to GNU Radio
Introduction to GNU Radio MAC-TC Tanguy Risset Citi Laboratory, INSA de Lyon May 25, 2016 Tanguy Risset Introduction to GNU Radio 1 Table of contents 1 Introduction to Gnu radio 2 GNU radio with gnuradio-companion
More informationIdentifying and Fixing Parameter Sniffing
Identifying and Fixing Parameter Sniffing Brent Ozar www.brentozar.com sp_blitz sp_blitzfirst email newsletter videos SQL Critical Care 2017 Brent Ozar Unlimited. All rights reserved. 1 This is genuinely
More informationAgenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week
Lab #8 Git Agenda - Final Project Info - All things Git - Make sure to come to lab for Python next week Final Project Low Down The Projects are Creative AI, Arduino, Web Scheduler, ios and Connect 4 Notes
More informationCS4023 Week04 Lab Exercise
CS4023 Week04 Lab Exercise Lab Objective: We will use this lab to log in to our Linux accounts and to look at some simple programs that perform a few elementary system calls. By the end of the lab we will
More informationHello World! Computer Programming for Kids and Other Beginners. Chapter 1. by Warren Sande and Carter Sande. Copyright 2009 Manning Publications
Hello World! Computer Programming for Kids and Other Beginners by Warren Sande and Carter Sande Chapter 1 Copyright 2009 Manning Publications brief contents Preface xiii Acknowledgments xix About this
More informationLecture 8: Structs & File I/O
....... \ \ \ / / / / \ \ \ \ / \ / \ \ \ V /,----' / ^ \ \.--..--. / ^ \ `--- ----` / ^ \. ` > < / /_\ \. ` / /_\ \ / /_\ \ `--' \ /. \ `----. / \ \ '--' '--' / \ / \ \ / \ / / \ \ (_ ) \ (_ ) / / \ \
More informationHTML CSS JAVASCRIPT WEB PUBLISHING IN ONE HOUR A DAY SAMS TEACH YOURSELF COVERING HTML5 CSS3 AND JQUERY 7TH EDITION
HTML CSS JAVASCRIPT WEB PUBLISHING IN ONE HOUR A DAY SAMS TEACH YOURSELF COVERING HTML5 CSS3 AND JQUERY 7TH EDITION page 1 / 5 page 2 / 5 html css javascript web pdf We have curated a list of free development
More informationRFNoC Deep Dive: Host Side Martin Braun 5/28/2015
RFNoC Deep Dive: Host Side Martin Braun 5/28/2015 Why Host Development? Typical application is run and controlled from hostbased process (e.g. GNU Radio) Setting up heterogeneous processing in a simple
More informationIntroduction to Programming Style
Introduction to Programming Style Thaddeus Aid The IT Learning Programme The University of Oxford, UK 30 July, 2013 Abstract Programming style is the part of the program that the human reads and the compiler
More informationDay 28 Arithmetic Sequence. Find the next two terms of each sequence. Then describe the pattern. The equations will be completed later.
Find the next two terms of each sequence. Then describe the pattern. The equations will be completed later. 1, 3, 5, 7, 9,, Description: Equation: 2, 7, 12, 17, 22,, Description: Equation: -416, -323,
More informationLab 03 - x86-64: atoi
CSCI0330 Intro Computer Systems Doeppner Lab 03 - x86-64: atoi Due: October 1, 2017 at 4pm 1 Introduction 1 2 Assignment 1 2.1 Algorithm 2 3 Assembling and Testing 3 3.1 A Text Editor, Makefile, and gdb
More informationDiode Lab vs Lab 0. You looked at the residuals of the fit, and they probably looked like random noise.
Diode Lab vs Lab In Lab, the data was from a nearly perfect sine wave of large amplitude from a signal generator. The function you were fitting was a sine wave with an offset, an amplitude, a frequency,
More informationSecure Programming I. Steven M. Bellovin September 28,
Secure Programming I Steven M. Bellovin September 28, 2014 1 If our software is buggy, what does that say about its security? Robert H. Morris Steven M. Bellovin September 28, 2014 2 The Heart of the Problem
More informationCS842: Automatic Memory Management and Garbage Collection. GC basics
CS842: Automatic Memory Management and Garbage Collection GC basics 1 Review Noting mmap (space allocated) Mapped space Wile owned by program, manager as no reference! malloc (object created) Never returned
More information