{"product_id":"applying-c-for-the-iot-with-linux-9781871962611","title":"Applying C For The IoT With Linux","description":"\u003cp\u003e\u003cb\u003eApplying C\u003c\/b\u003e is the book you need if you are programming for Single Board Computers (SBCs) that run Linux, or if you do any coding in C that interacts with the hardware. As there isn't a good name for this body of knowledge, it isn't easy to find a single source for it. This book gathers together all of these low-level, hardware-oriented and often hardware-specific ideas. As such it is a moderately advanced book. This is not to say that it is difficult, but it does presuppose that you already know how to program in C and that you know the basic idioms of C.\u003c\/p\u003e\u003cp\u003eStarting off from the very simple task of making a program run automatically, we look at how your program works with user-mode Linux. If you are working with hardware, arithmetic cannot be ignored and separate chapters are devoted to integer, fixed-point and floating-point arithmetic. Equally, to handle I\/O you need to have a good grasp of files and the pseudo file system. The dev\/mem file coupled with memory-mapped files makes it possible to work with raw memory without leaving user mode. Sockets are general-purpose way of communicating over networks and similar infrastructure and here the focus is on sending data over the internet and for this we build a web client and a server.\u003c\/p\u003e\u003cp\u003eNext we consider graphics, which you might find unusual in a book on small systems, but today even small systems have GPUs and graphics comes as standard. It is common to think of adding low-cost output devices such as 7-segment displays to IoT devices, but with low cost HDMI\/DVI displays available it becomes cost effective to simply use the built-in graphics hardware.\u003c\/p\u003e\u003cp\u003eAfter this we turn to the idea of multi-tasking using Pthreads. As well as looking at threads, we consider locking, using mutex and condition variables, and scheduling. Although interrupts don't exist in user-mode Linux, we can get very close using poll and threading. Now that multiple cores are a feature of even low-cost SBC, in later chapters we cover managing cores, look at C11's atomics and introduce its memory models and barriers. Finally we take a short look at how to mix assembler with C. \u003c\/p\u003e\u003cp\u003e\u003cstrong\u003e\u003cb\u003eHarry Fairhead\u003c\/b\u003e\u003c\/strong\u003e has a hardware background and, having worked with microprocessors and electronics in general, for many years, he is an enthusiastic proponent of the IoT. He is the author of \u003ci\u003e\u003cb\u003eFundamental C: Getting Closer To The Machine and his \u003c\/b\u003e\u003c\/i\u003eother recent titles include \u003ci\u003e\u003cb\u003eRaspberry Pi IoT in C\u003c\/b\u003e\u003c\/i\u003e and \u003ci\u003e\u003cb\u003eMicro: bit IoT in C\u003c\/b\u003e\u003c\/i\u003e. \u003c\/p\u003e\u003cbr\u003e","brand":"I\/O Press","offers":[{"title":"Default Title","offer_id":51453981294866,"sku":"9781871962611","price":25.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/4771\/8930\/files\/img_20296252-45ba-4351-a880-c02432c1fead.jpg?v=1751988843","url":"https:\/\/surprise-castle.myshopify.com\/products\/applying-c-for-the-iot-with-linux-9781871962611","provider":"Surprise Castle","version":"1.0","type":"link"}