C and Visual Studio With Introductions to Azure IoT C SDK, Azure Sphere, and Eclipse ThreadX




Print Price: $29.99



 

By Sean D. Liming and John R. Malin

Practical Guide for Learning C Programming with Visual Studio

With billions of devices connecting to the cloud, the need for more programmers with a range of skill sets is more present than ever. Most high schools in the United States teach high-level languages such as Java, Python, or Javascript. These programming languages are perfect for web or application programming, but many of the billions of devices run on MCUs or FPGAs, which require C programming. Microsoft has been shifting its product and support plan for the MCU space for some time. Azure IoT C SDK is the solution to connect MCU devices to Azure, and there are examples of how to write applications to run on Windows. Azure Sphere is a system-on-chip solution with a built-in Linux distribution that allows developers to write applications in Visual Studio. Eclipse ThreadX, formally Azure RTOS, has a port to Win32 so you can build test ThreadX applications with Visual Studio on Windows. There are other books that cover the GCC compiler; but the confluence of school curriculums, the need for low-level programmers, and the offerings from Microsoft makes C and Visual Studio a niche book for learning C programming using one of the most popular IDEs in the industry.

C and Visual Studio applies the Computer Science pedagogical approach that is used for other programming languages to the C language. Combined with the authors' hands-on style, anyone familiar with a higher-level language will be able to get up the learning curve quickly.

The first 9 chapters of the book cover the fundamentals of C programming from data types, program flow, arrays, pointers, data types, search, sort, memory management, and file I/O. The last 3 chapters introduce Azure IoT C SDK, Azure Sphere, and Eclipse ThreadX. There are over 50 hands-on exercises to get you familiar with the C programming language and features of Visual Studio.
 

Book Details

Printed Edition: 235 Pages
Publisher: Annabooks (December 2023)
Language: English
ISBN-13: 979-8-9854172-2-7


 

 Book Download

CandVS-Exercises-Templates.Zip

 

Software Requirements

Visual Studio: https://visualstudio.microsoft.com/

There are several option tools are called out in the book for different MCU platforms

 

 

 

 

Table of Contents:

1    It all Begins with C   
1.1    A Very Brief History   
1.2    Future MCU Books and Articles from Annabooks   
1.3    Book Organization and Requirements   
1.4    Computer Activity 1.1: Installing Visual Studio 2022 and C Project Template   
1.5    Computer Activity 1.2: Writing the First Program   
1.6    Visual Studio Debugging Features   
1.7    Source Code License and Warranty   
1.8    The Standard C Library   
1.9    Summary   
2    Data Types, Math, and Strings   
2.1    Data Types and Math Operators   
2.1.1    Computer Activity 2.1: Data Type Test   
2.1.2    Computer Activity 2.2: Testing Math   
2.1.3    Mixing Data Types and Casting   
2.2    Math Functions   
2.2.1    Computer Activity 2.3: Math Test 2   
2.3    Variables and Constants   
2.4    Bit Manipulation   
2.4.1    Computer Activity 2.4 Bit Fiddling   
2.5    Random Number Generator   
2.5.1    Computer Activity 2.5: Random Number Test   
2.5.2    Computer Activity 2.6: Dice   
2.6    Strings   
2.6.1    Computer Activity 2.7: Working with Strings   
2.7    User Input and Output   
2.7.1    Computer Activity 2.8: User Input/Output   
2.8    Comments in Code   
2.9    Summary   
3    Controlling the Program Flow and Iteration   
3.1    Flowchart Diagram    39
3.2    If-Else Statement, Relational Operators, and Boolean Expressions   
3.2.1    Computer Activity 3.1 – Boolean Test   
3.2.2    Computer Activity 3.2 – Coin Flip   
3.3    Nested If-Else   
3.4    If-Else-If Ladder   
3.4.1    Computer Activity 3.3 – Coin Flip Enhanced   
3.5    Switch-Case   
3.6    Loops / Iteration   
3.6.1    While-Loop   
3.6.2    Do–While-Loop   
3.6.3    For-Loop   
3.6.4    Computer Activity 3.4 – Factorial   
3.6.5    Break and Continue   
3.6.6    Computer Activity 3.5 - Menu System with User Input   
3.7    Scope of Variables   
3.8    Debugging   
3.8.1    Computer Activity 3.6 – Debugging an Application   
3.9    Summary   
4    Functions and Program Structure   
4.1    Functions – Passing and Returning Data   
4.1.1    Computer Activity 4.1 – Temp Converter   
4.2    Creating Separate Libraries   
4.2.1    Computer Activity 4.2 -Temp Converter 2   
4.3    The C Preprocessor   
4.3.1    Computer Activity 4.3 – C Preprocessor Examples   
4.3.2    Computer Activity 4.4 – Magic Numbers   
4.4    Summary   
5    Arrays and Pointers   
5.1    Arrays and the One-dimensional Arrays   
5.1.1    Computer Activity 5.1 – Basic Arrays and the Power of the Debugger   
5.1.2    Computer Activity 5.2 - Out-of-Bounds   
5.1.3    Strings are char Arrays   
5.2    Two-dimensional Arrays   
5.2.1    Computer Activity 5.3 – Two-dimensional Array   
5.3    Pointers   
5.3.1    Computer Activity 5.4 – Pointers, Variables, and Addresses   
5.3.2    Computer Activity 5.5 – Swapping Variables   
5.4    Pointers and Arrays   
5.4.1    Computer Activity 5.6 – Basic Pointer and Array   
5.5    Pointer Arithmetic and Manipulation   
5.5.1    Computer Activity 5.7 – String Reverse   
5.5.2    Computer Activity 5.8 – String Reverse with No Array   
5.5.3    Computer Activity 5.9 – Alternative String Reverse with No Array   
5.5.4    Computer Activity 5.10 – Find the Max Value in an Array   
5.5.5    Computer Activity 5.11 – Pointers to Multidimensional Arrays   
5.5.6    Computer Activity 5.12 - Pointer Efficiency   
5.6    Command Line Arguments   
5.6.1    Computer Activity 5.13 –Basic Command Line Arguments   
5.7    Summary   




 6    Recursion, Sort, and Search   
6.1    Recursion   
6.1.1    Computer Activity 6.1 - Factorial Recursion Style   
6.1.2    Computer Activity 6.2 - Iteration versus Recursion   
6.1.3    Computer Activity 6.3 - Mutual Recursion   
6.1.4    Summary of Recursion   
6.2    Algorithm Analysis Introduction – Big-O Notation   
6.2.1    A Simple Example   
6.2.2    Code Example of O(1)   
6.2.3    Code Example of O(n)   
6.2.4    Code Example of O(n2)   
6.2.5    The Beginning of the Big Picture   
6.3    Sort and Search Algorithms   
6.3.1    Computer Activity 6.4 – Insertion Sort vs Qsort()   
6.4    Computer Activity 6.5 – Linear versus Binary Search   
6.5    Summary   
7    Create Complex Data Types   
7.1    Typedef   
7.1.1    Computer Activity 7.1: String Data Type   
7.2    Struct   
7.2.1    Computer Activity 7.2: Simple Structure   
7.2.2    Computer Activity 7.3: Pointers to a Structure   
7.2.3    Computer Activity 7.4 Passing a Structure to a Function   
7.2.4    Computer Activity 7.5: ArrayofStructures   
7.3    Bit Fields
7.4    Enumeration   
7.5    Unions
7.5.1    Computer Activity 7.6: Unions   
7.6    Summary   
8    File IO   
8.1    Computer Activity 8.1: Write Strings and Read Strings   
8.2    Computer Activity 8.2: Saving a Data Structure   
8.3    Summary   
9    Memory Management   
9.1    Memory Layout   
9.2    Heap and Memory Functions   
9.2.1    Computer Activity 9.1: Basic Memory Allocation   
9.2.2    Computer Activity 9.2: Array of Values   
9.2.3    Computer Activity 9.3: Strings   
9.2.4    Computer Activity 9.4: Structures   
9.3    Summary   
10    Introduction to Azure IoT C SDK   
10.1    Different Azure IoT SDKs   
10.2    Computer Activity 10.1: Send a Message to Azure IoT Hub   
10.2.1    Download and Install Support Tools
10.2.2    Azure Portal – Create the Azure IoT Hub and Device   
10.2.3    Downloads from Git HUB and Build the Library for Use with Visual Studio   
10.2.4    Message Application   
10.3    Summary   
11    Writing C Applications for Azure Sphere   
11.1    Azure Sphere Introduction   
11.2    Avnet Azure Sphere MT3620 Starter Kit
11.3    Computer Activity 11.1: Set Up the Azure Sphere Development Environment   
11.3.1    Part 1: Set Up the SDK and Sample Applications for Visual Studio
11.3.2    Part 2: Device Setup   
11.4    Computer Activity 11.2: Blinking LED Application
11.5    Azure Sphere Project Templates   
11.6    Computer Activity 11.3: Arrays and Pointers   
11.7    Summary   
12    Introduction to Eclipse ThreadX™
12.1    GUIX and GUIX Studio   
12.2    Computer Activity 12.1: Tools Setup   
12.3    Computer Activity 12.2: Create a GUI using GUIX Studio   
12.4    Computer Activity 12.3: Building the Libraries
12.5    Computer Activity 12.4: Creating a Win32 Application
12.6    Summary and Book Conclusion   
A    Bibliography   
A.1    Books   
A.2    Websites
B    INDEX
 





 
   

Please review our refund policy before buying.