The document discusses setting up the development environment for hands-on verification of STM32 microcontroller applications using VeriFast. It describes installing ChibiOS/RT real-time operating system, the STM32 toolchain, VeriFast verification tool, and connecting an STM32 board. The document provides instructions for setting up the environment on Windows and MacOS.
The document discusses the ATS programming language. ATS is presented as a safer alternative to C for systems programming due to its use of dependent types, linear types, and optional garbage collection. It can be compiled to run without a runtime on baremetal systems like an Arduino. The author is looking to spread awareness and use of ATS in Japan by starting a user group and showcasing its use for functional IoT programming.
The document provides instructions for installing the ATS2 programming language compiler on Debian Linux. It includes downloading the source code for ATS2 and its dependencies, installing prerequisite packages, compiling the compiler, and confirming installation is complete by checking the compiler version. The goal is for readers to learn to install ATS2 themselves by following the provided steps.
The document discusses several open hardware and software platforms for hobbyist programmers, including Arduino, MSP430, Pinguino, mbed, FreeRTOS, ChibiOS/RT, and chopstx. Each platform is summarized, including the microcontroller or CPU used, compilers, support for networking, available development boards, and costs. Overall, the document provides an overview of popular open-source hardware and software options for hobbyist IoT development.
Metasepi team meeting #16: Safety on ATS language + MCUKiwamu Okabe
This document summarizes the key topics from meeting #16 of the Metasepi team:
1. The meeting discussed using the ATS programming language for developing Metasepi, an operating system designed with strong typing.
2. A demonstration showed running ATS code on an Arduino and mbed microcontroller platform.
3. ATS is a strongly typed language like ML that uses dependent types, linear types, and optional garbage collection to promote safe systems programming without runtime errors.
The document discusses using the ATS programming language as a safer alternative to C for systems programming. ATS incorporates types like dependent types and linear types that can prevent bugs like Heartbleed. The document provides instructions for installing the ATS compiler on Debian Linux and shows an example FizzBuzz program in both C and ATS.
The document discusses the ATS programming language. ATS is presented as a safer alternative to C for systems programming due to its use of dependent types, linear types, and optional garbage collection. It can be compiled to run without a runtime on baremetal systems like an Arduino. The author is looking to spread awareness and use of ATS in Japan by starting a user group and showcasing its use for functional IoT programming.
The document provides instructions for installing the ATS2 programming language compiler on Debian Linux. It includes downloading the source code for ATS2 and its dependencies, installing prerequisite packages, compiling the compiler, and confirming installation is complete by checking the compiler version. The goal is for readers to learn to install ATS2 themselves by following the provided steps.
The document discusses several open hardware and software platforms for hobbyist programmers, including Arduino, MSP430, Pinguino, mbed, FreeRTOS, ChibiOS/RT, and chopstx. Each platform is summarized, including the microcontroller or CPU used, compilers, support for networking, available development boards, and costs. Overall, the document provides an overview of popular open-source hardware and software options for hobbyist IoT development.
Metasepi team meeting #16: Safety on ATS language + MCUKiwamu Okabe
This document summarizes the key topics from meeting #16 of the Metasepi team:
1. The meeting discussed using the ATS programming language for developing Metasepi, an operating system designed with strong typing.
2. A demonstration showed running ATS code on an Arduino and mbed microcontroller platform.
3. ATS is a strongly typed language like ML that uses dependent types, linear types, and optional garbage collection to promote safe systems programming without runtime errors.
The document discusses using the ATS programming language as a safer alternative to C for systems programming. ATS incorporates types like dependent types and linear types that can prevent bugs like Heartbleed. The document provides instructions for installing the ATS compiler on Debian Linux and shows an example FizzBuzz program in both C and ATS.
Static typing and proof in ATS languageKiwamu Okabe
This document discusses implementing a rock-paper-scissors game in C language. It first defines an enum type for the three options - rock, paper, scissors. It then shows functions to print the name of a selected option, and to determine the winning option and even option based on two input options. However, it notes that the implementation allows for potential run-time errors if the logic in the functions is incorrect.
Embedded application designed by ATS languageKiwamu Okabe
The document discusses using the ATS programming language for embedded applications. It notes that ATS features dependent types, linear types, and optional garbage collection, which could prevent bugs like Heartbleed. The document demonstrates ATS applications running on ESP8266 and Arduino hardware and notes the type of errors ATS is able to capture during compilation. It outlines an agenda to cover ATS language basics, proofs, linear types, comparisons to other languages, and conclusions.
Functional IoT: Programming Language and OSKiwamu Okabe
The document discusses functional programming languages for IoT applications. It describes ATS, a functional language without garbage collection that is compiled to C and supports theorem proving to safely use pointers. ATS has been used to program ESP8266 and Arduino devices. The document provides examples of errors that ATS can catch, like a variable needing to be freed or an unsolved constraint.
This document discusses programming the ESP8266 microcontroller using the ATS programming language. It provides information on the ESP8266 module, the ATS language which features dependent types and linear types, and demonstrates examples of ATS interfaces and applications for GPIO control and blinking an LED. Code examples are referenced from a GitHub repository. The document also mentions an upcoming functional IoT meetup in December to discuss this topic further.
The document introduces Functional IoT, which aims to create an exhaustive catalog of methodologies for strongly typed functional programming languages that can be used for embedded systems and IoT device programming. It discusses that while C/C++ are commonly used for IoT, they lack abilities like avoiding vulnerabilities, having formally verifiable specifications, and maintaining quality; and that Functional IoT will evaluate languages based on demo code running on microcontrollers to determine which languages are best suited. The goal is to determine methodologies that can help address issues like vulnerabilities, specifications, quality and efficiency.
Metasepi team meeting #19: ATS application on ArduinoKiwamu Okabe
* [0] ATS application demo
* [1] What is Metasepi?
* [2] How to create Metasepi?
* [3] What is ATS language?
* [4] Let's read the demo code
* [5] Japan ATS User Group
The document discusses updates to the ATS2 programming language after November 2015, including using SMT solvers like Z3 to type check ATS2 programs. Specifically, the patsolve_smt2 command can convert ATS2 constraints to SMT-LIB format understood by solvers. This allows them to handle constraints over real numbers and potentially type check programs more effectively. Examples are provided for setting up ATS-extsolve and running an ATS2 Fibonacci number program through the Z3 SMT solver.
Metasepi team meeting #17: Invariant captured by ATS's APIKiwamu Okabe
The document summarizes a team meeting discussion about using the ATS programming language. Key points include:
- ATS is a safer systems programming language than C due to features like dependent and linear types that can enforce invariants.
- Linear types in ATS manage memory like resources to help prevent bugs.
- Examples are provided showing how ATS type checking detects errors like using freed variables or accessing out of bounds indices.
- An overview of linear list functions in ATS like make_pair, append, get_at, reverse, and free is given.
The document discusses the Metasepi project, which aims to create a Unix-like operating system using strong typing to avoid runtime errors. It began when the author worked at Ricoh developing embedded devices based on NetBSD and observed quality issues from lack of shared specifications. The Metasepi project hypothesizes that strong types can capture specifications to prevent some runtime errors. The first iteration involved creating a Haskell compiler called jhc to use the strong typing of Haskell for the operating system code. The document debates whether the research institution RIKEN AICS should support continuing the Metasepi project.
"Black Clouds and Silver Linings in Node.js Security" Liran TalJulia Cherniak
Remember eslint-scope and event-stream incidents? As an energetic member of the Node.js Foundation's Security Working Group, Liran will provide a 360 perspective of some black clouds of security horror stories in the JavaScript & Node.js ecosystem and educate on mitigating and building secure applications. We will deep-dive into practical Node.js vulnerabilities and how to protect against them, and cover some of OWASP Top 10. Liran will also introduce initiatives the Node.js Security WG have been undertaking to secure the ecosystem and recent security updates in npm.
My presentation from RedDotRubyConf 2013 in Singapore. Turned out to be a reflection on whether I'd still be a Rubyist in another 5 years, and what are the external trends that might change that. Short story: Yes! Of course. I'll always think like a Rubyist even though things will probably get more polyglot. The arena of web development is perhaps the most unpredictable though.
The document discusses performance testing of various programming languages running on the Java Virtual Machine (JVM). It describes running a simple looping benchmark in Java, Scala, Clojure, JRuby, JPC and JavaScript to see how well each language's bytecodes can be optimized by the JIT compiler. The results show that Java and Scala perform similarly due to similar semantics, while other languages encounter issues like object allocation, lack of inlining, or data type mismatches. The author advocates for tools to help language implementers understand JVM optimization barriers and ensure their languages can achieve high performance.
Monkey-patching in Python: a magic trick or a powerful tool?Elizaveta Shashkova
Monkey-patching is a dynamic modification of a class or a module at runtime.
The Python gives developers a great opportunity to use monkey-patching almost everywhere. But should developers do it? Is it a magic trick or a powerful tool? In this talk we will try to give the answers to these questions and try to figure out pros and cons of using monkey-patching.
First of all we will learn what is monkey-patching in Python and consider some basic examples of using it.
Of course, monkey-patching may cause some problems in the code. We will consider bad ways to use it and try to learn different types of problems monkey-patching may lead to.
Despite of some bugs that may appear in a patched program, monkey-patching is used in a real life rather often. There are some reasons and motives to do it. We will consider the examples of using monkey-patching in real projects like gevent, in some other libraries and in testing. Also we will learn some monkey-patch tricks that helps to solve real-life problems in the Python debugger which is a part of the PyCharm and the PyDev.
After that we will compare using of monkey-patching in Python to using it in an another dynamic language Ruby. Are there any differences between them? Is our reasoning correct for Ruby?
Finally we will conclude all our thoughts and examples and try to give the answer to the question from title.
A Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbertJ On The Beach
The announcement that sun.misc.Unsafe will disappear in Java 9 created a huge buzz in the community and lots of people didnt agree with the idea. While Unsafe have to go away eventually the time in not yet and Oracle finally agreed on that. To replace sun.misc.Unsafe we need a clear set of APIs to achieve the same behavior and performance. VarHandle, Foreign Function Calls, Generic Specialization (Templates) and other proposals try to solve this misery and to replace certain aspects of our beloved class. This talk will introduce the alternatives and explain how and why they will help to replace sun.misc.Unsafe. It uses basic examples to demonstrate what a Post-Apocalyptic Unsafe World will look like.
Ajhc Haskell Compiler with Reentrant GCKiwamu Okabe
The document discusses Ajhc, a Haskell compiler with reentrant garbage collection. Ajhc is based on the jhc Haskell compiler, which produces low-memory footprint binaries that run fast. The document outlines an agenda to demonstrate a NetBSD driver written in Haskell, discuss Metasepi and its goal of building a type-safe operating system, explain Ajhc and its reentrant GC features, and how to write Haskell drivers for kernels. It advocates for using safer programming languages like Haskell in core systems code to prevent bugs.
This document discusses managing a research and development (R&D) lab using Foreman. It begins with an introduction by Julien Pivotto, who is a sysadmin that has used Foreman since 2011 to manage their lab infrastructure. The document then provides an overview of Foreman, describing its key components for provisioning, configuration, monitoring, and reporting. It also discusses the technology stack, supported technologies, plugins, common use cases, and some of the challenges they faced in scaling Foreman to manage their infrastructure across multiple countries and datacenters.
Does Infer dream of design by contract?Kiwamu Okabe
Infer is a static analysis tool that analyzes source code to detect potential bugs such as null pointer dereferences, memory leaks, and resource leaks. It has its own model and checks code based on separation logic. Infer can analyze single files or entire projects made with Make. When run, it will output any issues found like null pointer dereferences along with the line number and a description. The document discusses how Infer could be used to implement design by contract at compile-time by adding assertions that would cause compile errors if violated.
Static typing and proof in ATS languageKiwamu Okabe
This document discusses implementing a rock-paper-scissors game in C language. It first defines an enum type for the three options - rock, paper, scissors. It then shows functions to print the name of a selected option, and to determine the winning option and even option based on two input options. However, it notes that the implementation allows for potential run-time errors if the logic in the functions is incorrect.
Embedded application designed by ATS languageKiwamu Okabe
The document discusses using the ATS programming language for embedded applications. It notes that ATS features dependent types, linear types, and optional garbage collection, which could prevent bugs like Heartbleed. The document demonstrates ATS applications running on ESP8266 and Arduino hardware and notes the type of errors ATS is able to capture during compilation. It outlines an agenda to cover ATS language basics, proofs, linear types, comparisons to other languages, and conclusions.
Functional IoT: Programming Language and OSKiwamu Okabe
The document discusses functional programming languages for IoT applications. It describes ATS, a functional language without garbage collection that is compiled to C and supports theorem proving to safely use pointers. ATS has been used to program ESP8266 and Arduino devices. The document provides examples of errors that ATS can catch, like a variable needing to be freed or an unsolved constraint.
This document discusses programming the ESP8266 microcontroller using the ATS programming language. It provides information on the ESP8266 module, the ATS language which features dependent types and linear types, and demonstrates examples of ATS interfaces and applications for GPIO control and blinking an LED. Code examples are referenced from a GitHub repository. The document also mentions an upcoming functional IoT meetup in December to discuss this topic further.
The document introduces Functional IoT, which aims to create an exhaustive catalog of methodologies for strongly typed functional programming languages that can be used for embedded systems and IoT device programming. It discusses that while C/C++ are commonly used for IoT, they lack abilities like avoiding vulnerabilities, having formally verifiable specifications, and maintaining quality; and that Functional IoT will evaluate languages based on demo code running on microcontrollers to determine which languages are best suited. The goal is to determine methodologies that can help address issues like vulnerabilities, specifications, quality and efficiency.
Metasepi team meeting #19: ATS application on ArduinoKiwamu Okabe
* [0] ATS application demo
* [1] What is Metasepi?
* [2] How to create Metasepi?
* [3] What is ATS language?
* [4] Let's read the demo code
* [5] Japan ATS User Group
The document discusses updates to the ATS2 programming language after November 2015, including using SMT solvers like Z3 to type check ATS2 programs. Specifically, the patsolve_smt2 command can convert ATS2 constraints to SMT-LIB format understood by solvers. This allows them to handle constraints over real numbers and potentially type check programs more effectively. Examples are provided for setting up ATS-extsolve and running an ATS2 Fibonacci number program through the Z3 SMT solver.
Metasepi team meeting #17: Invariant captured by ATS's APIKiwamu Okabe
The document summarizes a team meeting discussion about using the ATS programming language. Key points include:
- ATS is a safer systems programming language than C due to features like dependent and linear types that can enforce invariants.
- Linear types in ATS manage memory like resources to help prevent bugs.
- Examples are provided showing how ATS type checking detects errors like using freed variables or accessing out of bounds indices.
- An overview of linear list functions in ATS like make_pair, append, get_at, reverse, and free is given.
The document discusses the Metasepi project, which aims to create a Unix-like operating system using strong typing to avoid runtime errors. It began when the author worked at Ricoh developing embedded devices based on NetBSD and observed quality issues from lack of shared specifications. The Metasepi project hypothesizes that strong types can capture specifications to prevent some runtime errors. The first iteration involved creating a Haskell compiler called jhc to use the strong typing of Haskell for the operating system code. The document debates whether the research institution RIKEN AICS should support continuing the Metasepi project.
"Black Clouds and Silver Linings in Node.js Security" Liran TalJulia Cherniak
Remember eslint-scope and event-stream incidents? As an energetic member of the Node.js Foundation's Security Working Group, Liran will provide a 360 perspective of some black clouds of security horror stories in the JavaScript & Node.js ecosystem and educate on mitigating and building secure applications. We will deep-dive into practical Node.js vulnerabilities and how to protect against them, and cover some of OWASP Top 10. Liran will also introduce initiatives the Node.js Security WG have been undertaking to secure the ecosystem and recent security updates in npm.
My presentation from RedDotRubyConf 2013 in Singapore. Turned out to be a reflection on whether I'd still be a Rubyist in another 5 years, and what are the external trends that might change that. Short story: Yes! Of course. I'll always think like a Rubyist even though things will probably get more polyglot. The arena of web development is perhaps the most unpredictable though.
The document discusses performance testing of various programming languages running on the Java Virtual Machine (JVM). It describes running a simple looping benchmark in Java, Scala, Clojure, JRuby, JPC and JavaScript to see how well each language's bytecodes can be optimized by the JIT compiler. The results show that Java and Scala perform similarly due to similar semantics, while other languages encounter issues like object allocation, lack of inlining, or data type mismatches. The author advocates for tools to help language implementers understand JVM optimization barriers and ensure their languages can achieve high performance.
Monkey-patching in Python: a magic trick or a powerful tool?Elizaveta Shashkova
Monkey-patching is a dynamic modification of a class or a module at runtime.
The Python gives developers a great opportunity to use monkey-patching almost everywhere. But should developers do it? Is it a magic trick or a powerful tool? In this talk we will try to give the answers to these questions and try to figure out pros and cons of using monkey-patching.
First of all we will learn what is monkey-patching in Python and consider some basic examples of using it.
Of course, monkey-patching may cause some problems in the code. We will consider bad ways to use it and try to learn different types of problems monkey-patching may lead to.
Despite of some bugs that may appear in a patched program, monkey-patching is used in a real life rather often. There are some reasons and motives to do it. We will consider the examples of using monkey-patching in real projects like gevent, in some other libraries and in testing. Also we will learn some monkey-patch tricks that helps to solve real-life problems in the Python debugger which is a part of the PyCharm and the PyDev.
After that we will compare using of monkey-patching in Python to using it in an another dynamic language Ruby. Are there any differences between them? Is our reasoning correct for Ruby?
Finally we will conclude all our thoughts and examples and try to give the answer to the question from title.
A Post-Apocalyptic sun.misc.Unsafe World by Christoph engelbertJ On The Beach
The announcement that sun.misc.Unsafe will disappear in Java 9 created a huge buzz in the community and lots of people didnt agree with the idea. While Unsafe have to go away eventually the time in not yet and Oracle finally agreed on that. To replace sun.misc.Unsafe we need a clear set of APIs to achieve the same behavior and performance. VarHandle, Foreign Function Calls, Generic Specialization (Templates) and other proposals try to solve this misery and to replace certain aspects of our beloved class. This talk will introduce the alternatives and explain how and why they will help to replace sun.misc.Unsafe. It uses basic examples to demonstrate what a Post-Apocalyptic Unsafe World will look like.
Ajhc Haskell Compiler with Reentrant GCKiwamu Okabe
The document discusses Ajhc, a Haskell compiler with reentrant garbage collection. Ajhc is based on the jhc Haskell compiler, which produces low-memory footprint binaries that run fast. The document outlines an agenda to demonstrate a NetBSD driver written in Haskell, discuss Metasepi and its goal of building a type-safe operating system, explain Ajhc and its reentrant GC features, and how to write Haskell drivers for kernels. It advocates for using safer programming languages like Haskell in core systems code to prevent bugs.
This document discusses managing a research and development (R&D) lab using Foreman. It begins with an introduction by Julien Pivotto, who is a sysadmin that has used Foreman since 2011 to manage their lab infrastructure. The document then provides an overview of Foreman, describing its key components for provisioning, configuration, monitoring, and reporting. It also discusses the technology stack, supported technologies, plugins, common use cases, and some of the challenges they faced in scaling Foreman to manage their infrastructure across multiple countries and datacenters.
Does Infer dream of design by contract?Kiwamu Okabe
Infer is a static analysis tool that analyzes source code to detect potential bugs such as null pointer dereferences, memory leaks, and resource leaks. It has its own model and checks code based on separation logic. Infer can analyze single files or entire projects made with Make. When run, it will output any issues found like null pointer dereferences along with the line number and a description. The document discusses how Infer could be used to implement design by contract at compile-time by adding assertions that would cause compile errors if violated.
GENERIC provides a language-independent way to represent program structures and expressions as tree structures. The document outlines the different types of tree nodes used to represent various language elements like declarations, statements, functions, and types. Key nodes include IDENTIFIER_NODE for identifiers, TYPE for type specifications, DECLARATIONS for declarations, STATEMENTS for statements, and FUNCTION_DECL for function definitions. Attributes are represented as TREE_LIST structures and containers can be either TREE_LIST or TREE_VEC nodes.
The document discusses using the ATS functional programming language to develop safer IoT applications for the ESP8266 WiFi module. ATS supports dependent types, linear types, and optional memory management features that could help prevent common issues like memory safety bugs. The document outlines a demo project implementing JSON output on the ESP8266 using ATS and points out how the type system helps catch errors related to freeing memory correctly. It also advertises an upcoming meetup to discuss functional IoT development further.
This document describes the configuration of two network interfaces - virbr0 and virbr0-nic. Virbr0 is a bridge interface with IP 192.168.122.1 and MAC 52:54:00:ca:8f:0a that is currently in the DOWN state. Virbr0-nic is a slave interface of virbr0 with the same MAC and is also in the DOWN state.
Hot Potato is a tool that combines three vulnerabilities - NetBIOS Name Service spoofing, Web Proxy Auto-Discovery Protocol man-in-the-middle attacks, and HTTP to SMB relaying - to perform privilege escalation on Windows systems. It takes advantage of legacy Windows protocols like NetBIOS and WPAD to trick applications into sending NTLM authentication credentials over HTTP, which are then relayed back over SMB to authenticate at a higher privilege level. Microsoft released patches in 2016 to address issues like local HTTP to SMB relaying and secure WPAD resolution. Disabling vulnerable legacy protocols, requiring SMB signing, and using more secure authentication methods like NTLMv2 or Kerberos can help prevent such privilege escalation attacks.
Hands-on VeriFast with STM32 microcontroller @ OsakaKiwamu Okabe
The document discusses setting up a development environment for the ChibiOS/RT real-time operating system and VeriFast model checker on Windows and macOS systems. It provides instructions for installing necessary tools like GCC ARM, make, CMake, libUSB, ST-Link, ChibiOS/RT, and VeriFast from sources. It also explains downloading a custom ChibiOS/RT source code that is compatible with VeriFast verification.
Hands-on VeriFast with STM32 microcontroller @ NagoyaKiwamu Okabe
This document describes setting up a development environment for working with the ChibiOS/RT real-time operating system and STM32 microcontrollers using the VeriFast verification tool on Windows or macOS systems. It provides instructions for installing necessary software packages like Git, GCC, CMake and VeriFast as well as downloading customized ChibiOS/RT source code for building sample applications and verifying them using VeriFast.
RTOS application verified by VeriFast, and future planKiwamu Okabe
The document discusses VeriFast, a verification tool for C and Java programs. It provides examples of how VeriFast has been used to verify real-time operating system (RTOS) applications and find bugs in the Linux kernel by analyzing programs annotated with preconditions and postconditions. Details are given on how to use VeriFast by writing assertions as comments in code and how it can statically verify programs using a style of "static design by contract". An RTOS called ChibiOS/RT is described and an example is shown of verifying state using VeriFast on an application running on this RTOS on a STM32 microcontroller board.
This document provides an introduction to the VeriFast program verifier. It describes how to set up VeriFast, including downloading required files. It explains that VeriFast can verify single-threaded and multi-threaded C/Java programs annotated with preconditions and postconditions written in separation logic, and that it avoids illegal memory accesses like buffer overflows. The document demonstrates running VeriFast on sample code, showing how it finds errors, and provides references for more information.
Smart.js: JavaScript engine running on tiny MCUKiwamu Okabe
Smart.js is a JavaScript engine that can run on ESP8266, a low-power WiFi microcontroller module. It allows writing firmware for ESP8266 using JavaScript instead of C. The document describes how to install Smart.js on ESP8266 by downloading the firmware from GitHub and using esptool to flash it onto the device. It then shows commands to configure WiFi and run JavaScript code directly on the ESP8266 by connecting to its serial console. Data can be sent over WiFi to a dashboard for visualization. Cesanta Software provides several other products related to embedded JavaScript usage.
Emacs verilog-mode is coming to Debian, againKiwamu Okabe
The document discusses bringing the Emacs verilog-mode package to Debian. It details that verilog-mode provides syntax highlighting and other features for editing Verilog code. The author files an ITP (Intent to Package) request to add verilog-mode to Debian. Instructions are provided on using git-buildpackage to manage the package sources and releases from the upstream GitHub repository. This will make verilog-mode easily available to Emacs users on Debian systems.
Spark Summit EU talk by William BentonSpark Summit
The document discusses containerizing Spark clusters on Kubernetes. It describes how the author's Spark cluster looked in 2014 running on Mesos with networked storage. It then covers motivations for microservices architectures and how Spark fits into this. The document outlines architectures for analytics and applications, including responsibilities like transformation, aggregation, training models, and more. It also discusses legacy architectures like data warehouses and Hadoop-style data lakes. Finally, it covers practical considerations and potential pitfalls of containerized Spark clusters like scheduling, security, and storage options.
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
On the heals of Luis Lavena's RailsConf talk "Infiltrating Ruby Onto The Enterprise Death Star Using Guerilla Tactics" comes a local and frank talk about the current state of Open Source Software (OSS) participation from Windows developers. Learn what OSS is, what motivates its contributors, and how OSS can make you a stronger developer. Be prepared to fall in love with writing software again!
We will start off with a 101 introduction to both the Ruby programming language and the Ruby on Rails web application framework. You will learn about ActiveRecord, a powerful ORM that maps rich objects to your databases, and the latest components to use it with SQL Server. As a Rails core contributor and author of the SQL Server stack, I will give you a modern insight into both that will allow you to leverage your legacy data with Ruby.
Lastly, I will review the bleeding edge tools being actively created for Windows developers to ease the transition to Ruby, Rails and OSS from a POSIX driven world. Many things have changed. It is time to learn and perform some occupational maintenance.
Ephemeral DevOps: Adventures in Managing Short-Lived SystemsPriyanka Aash
This talk will explore the concepts and experiences of using configuration management in a highly disposable environment of ephemeral virtual machines. It will cover why an operations team may desire such an environment, the tools the presenter used to build one, and most importantly, the sorts of failures, accomplishments and considerations encountered during the journey.
(Source: RSA Conference USA 2018)
Thunderbolts and Lightning: Very Very Frighteningblowmenowpls
People keep talking about Thunderbolt DMA attacks as though they're a foregone conclusion. Thus far, we haven't seen one that doesn't involve using a Thunderbolt to FireWire adapter. This kind of attack, when performed against current hardware, is subject to the same limitations and mitigations as the FireWire DMA attacks we've seen since Kiwicon's very own Metlstorm winlockpwned his way to fame in 2006.
In this talk, rzn and snare will discuss their approach to attacking systems with a Thunderbolt port. Will our heroes triumph over evil, or will they get hit by a bus?
This document discusses modifying the parser for the VeriFast verifier to better support verifying C code. VeriFast currently uses a Camlp4 parser that is a subset of C99, which can cause issues when verifying real C code that uses aspects beyond this subset. The document proposes patching VeriFast's parser to add support for parsing semicolons without declarations, hard tabs in string literals, the inline keyword, and operators in macros. The goal is to use the modified parser to verify code from the NetBSD kernel as a test case.
From an Oscon 2009 talk we gave this year in San Jose, California.
It's about when to use virtualization technologies, and when to containerize (similar, but a bit different.).
NetDevOps Developer Environments with Vagrant @ SCALE16xHank Preston
From SCALE16X March 11, 2018
Add some serious developer cred to your approach to NetDevOps and network development by exploring how the OpenSource tool Vagrant can be used to quickly “up” networking platforms on your laptop for fast development, code testing, API exploration and more! In this session we’ll cover the basics of using Vagrant, focusing on the networking elements of managing interfaces, protocols, and automating the initial provisioning with another OpenSource tool, Ansible. Leave with everything you need to get started today!
This document provides an overview of distributed version control systems (DVCS) and introduces the basic usage of Git. It discusses the advantages of DVCS over centralized version control systems, including greater independence, integrity and flexibility to experiment and innovate. The document explains the basic Git commands for creating a repository, making commits, and sharing changes between remote repositories. It also covers some key Git concepts like hashes, the three-stage workflow, and stash for temporarily storing changes.
From KubeCon to ContainerDays, eBPF is trendy in the Cloud Native world. What is eBPF, and why is it revolutionary, and what can it bring to you specifically?
Through concrete examples applied to observability, networking, and security, this talk will explain the principles of eBPF and its concrete advantages to connect and secure Cloud Native applications.
This talk will explain what is eBPF, why it is revolutionary is several fields, give examples of tools using eBPF and what they gain from it, and open up to the future of that technology.
IPv6 is slowly making its way into our environments and we need to be aware of how it impacts the systems we manage. This presentation takes us through a basic review of the protocol from a pentesters perspective
This document is a summary of a webinar on securing container deployments. It lists several important items to consider when securing containers including: running builds separately from production clusters; treating containers as immutable; avoiding privileged containers; keeping hosts updated; encrypting secrets; and preventing container drift. The document provides instructions on how to provide feedback on the webinar series and lists upcoming webinar topics.
Similar to Hands-on VeriFast with STM32 microcontroller (20)
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
1. Hands-on VeriFast with STM32
microcontroller
Hands-on VeriFast with STM32
microcontroller
Hands-on VeriFast with STM32
microcontroller
Hands-on VeriFast with STM32
microcontroller
Hands-on VeriFast with STM32
microcontroller
Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe
2. Table of ContentsTable of ContentsTable of ContentsTable of ContentsTable of Contents
☆ Introduce ChibiOS/RT which is a RTOS☆ Introduce ChibiOS/RT which is a RTOS☆ Introduce ChibiOS/RT which is a RTOS☆ Introduce ChibiOS/RT which is a RTOS☆ Introduce ChibiOS/RT which is a RTOS
☆ Get development environment for ChibiOS/RT☆ Get development environment for ChibiOS/RT☆ Get development environment for ChibiOS/RT☆ Get development environment for ChibiOS/RT☆ Get development environment for ChibiOS/RT
☆ Build sample application on ChibiOS/RT☆ Build sample application on ChibiOS/RT☆ Build sample application on ChibiOS/RT☆ Build sample application on ChibiOS/RT☆ Build sample application on ChibiOS/RT
☆ Introduce STM32 microcontroller☆ Introduce STM32 microcontroller☆ Introduce STM32 microcontroller☆ Introduce STM32 microcontroller☆ Introduce STM32 microcontroller
☆ Run the application on STM32 board☆ Run the application on STM32 board☆ Run the application on STM32 board☆ Run the application on STM32 board☆ Run the application on STM32 board
☆ Introduce VeriFast☆ Introduce VeriFast☆ Introduce VeriFast☆ Introduce VeriFast☆ Introduce VeriFast
☆ Verify the application using VeriFast☆ Verify the application using VeriFast☆ Verify the application using VeriFast☆ Verify the application using VeriFast☆ Verify the application using VeriFast
3. What's ChibiOS/RT?What's ChibiOS/RT?What's ChibiOS/RT?What's ChibiOS/RT?What's ChibiOS/RT?
☆ http://www.chibios.org/☆ http://www.chibios.org/☆ http://www.chibios.org/☆ http://www.chibios.org/☆ http://www.chibios.org/
☆ Simple/Small/Fast/Portable real-time OS☆ Simple/Small/Fast/Portable real-time OS☆ Simple/Small/Fast/Portable real-time OS☆ Simple/Small/Fast/Portable real-time OS☆ Simple/Small/Fast/Portable real-time OS
☆ Run on ARM Cortex-M, Arduino Uno, PowerPC
e200
☆ Run on ARM Cortex-M, Arduino Uno, PowerPC
e200
☆ Run on ARM Cortex-M, Arduino Uno, PowerPC
e200
☆ Run on ARM Cortex-M, Arduino Uno, PowerPC
e200
☆ Run on ARM Cortex-M, Arduino Uno, PowerPC
e200
☆ Context Switch (STM32F4xx): 0.40 µsec☆ Context Switch (STM32F4xx): 0.40 µsec☆ Context Switch (STM32F4xx): 0.40 µsec☆ Context Switch (STM32F4xx): 0.40 µsec☆ Context Switch (STM32F4xx): 0.40 µsec
☆ Kernel Size (STM32F4xx): 6172 byte☆ Kernel Size (STM32F4xx): 6172 byte☆ Kernel Size (STM32F4xx): 6172 byte☆ Kernel Size (STM32F4xx): 6172 byte☆ Kernel Size (STM32F4xx): 6172 byte
4. Get the devel-environment #WindowsGet the devel-environment #WindowsGet the devel-environment #WindowsGet the devel-environment #WindowsGet the devel-environment #Windows
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Windows.en.md
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Windows.en.md
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Windows.en.md
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Windows.en.md
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Windows.en.md
☆ Install following:☆ Install following:☆ Install following:☆ Install following:☆ Install following:
*�https://git-for-windows.github.io/
*�https://launchpad.net/gcc-arm-embedded/+download
*�https://ttssh2.osdn.jp/index.html.en
*�https://cygwin.com/
*�https://git-for-windows.github.io/
*�https://launchpad.net/gcc-arm-embedded/+download
*�https://ttssh2.osdn.jp/index.html.en
*�https://cygwin.com/
*�https://git-for-windows.github.io/
*�https://launchpad.net/gcc-arm-embedded/+download
*�https://ttssh2.osdn.jp/index.html.en
*�https://cygwin.com/
*�https://git-for-windows.github.io/
*�https://launchpad.net/gcc-arm-embedded/+download
*�https://ttssh2.osdn.jp/index.html.en
*�https://cygwin.com/
*�https://git-for-windows.github.io/
*�https://launchpad.net/gcc-arm-embedded/+download
*�https://ttssh2.osdn.jp/index.html.en
*�https://cygwin.com/
☆ Install following cygwin packages☆ Install following cygwin packages☆ Install following cygwin packages☆ Install following cygwin packages☆ Install following cygwin packages
*�cmake
*�libusb1.0-devel
*�cmake
*�libusb1.0-devel
*�cmake
*�libusb1.0-devel
*�cmake
*�libusb1.0-devel
*�cmake
*�libusb1.0-devel
5. Get the devel-environment #WindowsGet the devel-environment #WindowsGet the devel-environment #WindowsGet the devel-environment #WindowsGet the devel-environment #Windows
☆ Open cygwin terminal, and install "stlink":☆ Open cygwin terminal, and install "stlink":☆ Open cygwin terminal, and install "stlink":☆ Open cygwin terminal, and install "stlink":☆ Open cygwin terminal, and install "stlink":
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�make�install)
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�make�install)
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�make�install)
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�make�install)
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�make�install)
☆ Download VeriFast from following URL, unzip it
and set PATH to "verifast-XXXXXXX/bin" directory.
☆ Download VeriFast from following URL, unzip it
and set PATH to "verifast-XXXXXXX/bin" directory.
☆ Download VeriFast from following URL, unzip it
and set PATH to "verifast-XXXXXXX/bin" directory.
☆ Download VeriFast from following URL, unzip it
and set PATH to "verifast-XXXXXXX/bin" directory.
☆ Download VeriFast from following URL, unzip it
and set PATH to "verifast-XXXXXXX/bin" directory.
https://github.com/verifast/verifast#binarieshttps://github.com/verifast/verifast#binarieshttps://github.com/verifast/verifast#binarieshttps://github.com/verifast/verifast#binarieshttps://github.com/verifast/verifast#binaries
6. Get the devel-environment #WindowsGet the devel-environment #WindowsGet the devel-environment #WindowsGet the devel-environment #WindowsGet the devel-environment #Windows
☆ Open cygwin terminal, and checkout custom
ChibiOS/RT source code:w
☆ Open cygwin terminal, and checkout custom
ChibiOS/RT source code:w
☆ Open cygwin terminal, and checkout custom
ChibiOS/RT source code:w
☆ Open cygwin terminal, and checkout custom
ChibiOS/RT source code:w
☆ Open cygwin terminal, and checkout custom
ChibiOS/RT source code:w
$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git
8. Get the devel-environment #MacOSGet the devel-environment #MacOSGet the devel-environment #MacOSGet the devel-environment #MacOSGet the devel-environment #MacOS
☆ Download VeriFast, unzip it and set PATH:☆ Download VeriFast, unzip it and set PATH:☆ Download VeriFast, unzip it and set PATH:☆ Download VeriFast, unzip it and set PATH:☆ Download VeriFast, unzip it and set PATH:
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly-osx.tar.gz
$�tar�xf�verifast-nightly-osx.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly-osx.tar.gz
$�tar�xf�verifast-nightly-osx.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly-osx.tar.gz
$�tar�xf�verifast-nightly-osx.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly-osx.tar.gz
$�tar�xf�verifast-nightly-osx.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly-osx.tar.gz
$�tar�xf�verifast-nightly-osx.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
☆ Checkout custom ChibiOS/RT source code:☆ Checkout custom ChibiOS/RT source code:☆ Checkout custom ChibiOS/RT source code:☆ Checkout custom ChibiOS/RT source code:☆ Checkout custom ChibiOS/RT source code:
$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git
9. Get the devel-environment #LinuxGet the devel-environment #LinuxGet the devel-environment #LinuxGet the devel-environment #LinuxGet the devel-environment #Linux
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Linux.en.md
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Linux.en.md
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Linux.en.md
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Linux.en.md
Detail:�https://github.com/fpiot/chibios-verifast/blob/master/doc/
README.Linux.en.md
☆ Install deb packages:☆ Install deb packages:☆ Install deb packages:☆ Install deb packages:☆ Install deb packages:
$�sudo�apt-get�install�wget�git�libgtk2.0-0�libusb-1.0-0-dev�libgtk-3-dev�
build-essential�cmake�gcc-arm-none-eabi�gdb-arm-none-eabi�picocom
$�sudo�apt-get�install�wget�git�libgtk2.0-0�libusb-1.0-0-dev�libgtk-3-dev�
build-essential�cmake�gcc-arm-none-eabi�gdb-arm-none-eabi�picocom
$�sudo�apt-get�install�wget�git�libgtk2.0-0�libusb-1.0-0-dev�libgtk-3-dev�
build-essential�cmake�gcc-arm-none-eabi�gdb-arm-none-eabi�picocom
$�sudo�apt-get�install�wget�git�libgtk2.0-0�libusb-1.0-0-dev�libgtk-3-dev�
build-essential�cmake�gcc-arm-none-eabi�gdb-arm-none-eabi�picocom
$�sudo�apt-get�install�wget�git�libgtk2.0-0�libusb-1.0-0-dev�libgtk-3-dev�
build-essential�cmake�gcc-arm-none-eabi�gdb-arm-none-eabi�picocom
☆ Install "stlink":☆ Install "stlink":☆ Install "stlink":☆ Install "stlink":☆ Install "stlink":
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�sudo�make�install)
$�sudo�ldconfig
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�sudo�make�install)
$�sudo�ldconfig
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�sudo�make�install)
$�sudo�ldconfig
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�sudo�make�install)
$�sudo�ldconfig
$�git�clone�https://github.com/texane/stlink.git
$�(cd�stlink�&&�make)
$�(cd�stlink/build/Release�&&�sudo�make�install)
$�sudo�ldconfig
10. Get the devel-environment #LinuxGet the devel-environment #LinuxGet the devel-environment #LinuxGet the devel-environment #LinuxGet the devel-environment #Linux
☆ Download VeriFast, unzip it and set PATH:☆ Download VeriFast, unzip it and set PATH:☆ Download VeriFast, unzip it and set PATH:☆ Download VeriFast, unzip it and set PATH:☆ Download VeriFast, unzip it and set PATH:
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly.tar.gz
$�tar�xf�verifast-nightly.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly.tar.gz
$�tar�xf�verifast-nightly.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly.tar.gz
$�tar�xf�verifast-nightly.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly.tar.gz
$�tar�xf�verifast-nightly.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
$�wget�
http://82076e0e62875f063ae8-929808a701855dfb71539d0a4342d4be.r54.cf5.rackcdn.
com/verifast-nightly.tar.gz
$�tar�xf�verifast-nightly.tar.gz
$�mv�verifast-*/�verifast
$�export�PATH=`pwd`/verifast/bin:$PATH
☆ Checkout custom ChibiOS/RT source code:☆ Checkout custom ChibiOS/RT source code:☆ Checkout custom ChibiOS/RT source code:☆ Checkout custom ChibiOS/RT source code:☆ Checkout custom ChibiOS/RT source code:
$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git$�git�clone�https://github.com/fpiot/chibios-verifast.git
11. Build a ChibiOS applicationBuild a ChibiOS applicationBuild a ChibiOS applicationBuild a ChibiOS applicationBuild a ChibiOS application
☆ Finally build the code:☆ Finally build the code:☆ Finally build the code:☆ Finally build the code:☆ Finally build the code:
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make
13. What's STM32?What's STM32?What's STM32?What's STM32?What's STM32?
http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-
arm-cortex-mcus.html
http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-
arm-cortex-mcus.html
http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-
arm-cortex-mcus.html
http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-
arm-cortex-mcus.html
http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-
arm-cortex-mcus.html
The STM32 family of 32-bit Flash microcontrollers
based on the ARM Cortex-M processor is designed
to offer new degrees of freedom to MCU users. It
offers a 32-bit product range that combines very
high performance, real-time capabilities, digital
signal processing, and low-power, low-voltage
operation, while maintaining full integration and
ease of development.
The STM32 family of 32-bit Flash microcontrollers
based on the ARM Cortex-M processor is designed
to offer new degrees of freedom to MCU users. It
offers a 32-bit product range that combines very
high performance, real-time capabilities, digital
signal processing, and low-power, low-voltage
operation, while maintaining full integration and
ease of development.
The STM32 family of 32-bit Flash microcontrollers
based on the ARM Cortex-M processor is designed
to offer new degrees of freedom to MCU users. It
offers a 32-bit product range that combines very
high performance, real-time capabilities, digital
signal processing, and low-power, low-voltage
operation, while maintaining full integration and
ease of development.
The STM32 family of 32-bit Flash microcontrollers
based on the ARM Cortex-M processor is designed
to offer new degrees of freedom to MCU users. It
offers a 32-bit product range that combines very
high performance, real-time capabilities, digital
signal processing, and low-power, low-voltage
operation, while maintaining full integration and
ease of development.
The STM32 family of 32-bit Flash microcontrollers
based on the ARM Cortex-M processor is designed
to offer new degrees of freedom to MCU users. It
offers a 32-bit product range that combines very
high performance, real-time capabilities, digital
signal processing, and low-power, low-voltage
operation, while maintaining full integration and
ease of development.
14. You can free to get own STM32 board!You can free to get own STM32 board!You can free to get own STM32 board!You can free to get own STM32 board!You can free to get own STM32 board!
https://developer.mbed.org/platforms/ST-Nucleo-F091RC/https://developer.mbed.org/platforms/ST-Nucleo-F091RC/https://developer.mbed.org/platforms/ST-Nucleo-F091RC/https://developer.mbed.org/platforms/ST-Nucleo-F091RC/https://developer.mbed.org/platforms/ST-Nucleo-F091RC/
☆ "NUCLEO-F091RC"☆ "NUCLEO-F091RC"☆ "NUCLEO-F091RC"☆ "NUCLEO-F091RC"☆ "NUCLEO-F091RC"
☆ ARM Cortex-M0 CPU / 256 KB Flash / 32 KB SRAM☆ ARM Cortex-M0 CPU / 256 KB Flash / 32 KB SRAM☆ ARM Cortex-M0 CPU / 256 KB Flash / 32 KB SRAM☆ ARM Cortex-M0 CPU / 256 KB Flash / 32 KB SRAM☆ ARM Cortex-M0 CPU / 256 KB Flash / 32 KB SRAM
☆ ADC / DAC / RTC / I2C / USART / SPI / CAN / HDMI
CEC
☆ ADC / DAC / RTC / I2C / USART / SPI / CAN / HDMI
CEC
☆ ADC / DAC / RTC / I2C / USART / SPI / CAN / HDMI
CEC
☆ ADC / DAC / RTC / I2C / USART / SPI / CAN / HDMI
CEC
☆ ADC / DAC / RTC / I2C / USART / SPI / CAN / HDMI
CEC
☆ Able to download fiwmware and debug it using
GDB
☆ Able to download fiwmware and debug it using
GDB
☆ Able to download fiwmware and debug it using
GDB
☆ Able to download fiwmware and debug it using
GDB
☆ Able to download fiwmware and debug it using
GDB
☆ Thanks a lot, STMicroelectronics!☆ Thanks a lot, STMicroelectronics!☆ Thanks a lot, STMicroelectronics!☆ Thanks a lot, STMicroelectronics!☆ Thanks a lot, STMicroelectronics!
15. How to run application? #WindowsHow to run application? #WindowsHow to run application? #WindowsHow to run application? #WindowsHow to run application? #Windows
☆ Connect the board to your PC using USB cable☆ Connect the board to your PC using USB cable☆ Connect the board to your PC using USB cable☆ Connect the board to your PC using USB cable☆ Connect the board to your PC using USB cable
☆ Open cygwin terminal, kick "st-util":☆ Open cygwin terminal, kick "st-util":☆ Open cygwin terminal, kick "st-util":☆ Open cygwin terminal, kick "st-util":☆ Open cygwin terminal, kick "st-util":
$�(cd�/usr/local/lib�&&�st-util)$�(cd�/usr/local/lib�&&�st-util)$�(cd�/usr/local/lib�&&�st-util)$�(cd�/usr/local/lib�&&�st-util)$�(cd�/usr/local/lib�&&�st-util)
☆ Open another cygwin terminal, and dowload
application into the board:
☆ Open another cygwin terminal, and dowload
application into the board:
☆ Open another cygwin terminal, and dowload
application into the board:
☆ Open another cygwin terminal, and dowload
application into the board:
☆ Open another cygwin terminal, and dowload
application into the board:
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
16. How to run application? #WindowsHow to run application? #WindowsHow to run application? #WindowsHow to run application? #WindowsHow to run application? #Windows
☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:
(gdb)�c(gdb)�c(gdb)�c(gdb)�c(gdb)�c
☆ Open serial console using TeraTerm with baud
rate 38400
☆ Open serial console using TeraTerm with baud
rate 38400
☆ Open serial console using TeraTerm with baud
rate 38400
☆ Open serial console using TeraTerm with baud
rate 38400
☆ Open serial console using TeraTerm with baud
rate 38400
☆ Push "USER" button on the board☆ Push "USER" button on the board☆ Push "USER" button on the board☆ Push "USER" button on the board☆ Push "USER" button on the board
17. How to run application? #MacOSHow to run application? #MacOSHow to run application? #MacOSHow to run application? #MacOSHow to run application? #MacOS
☆ Connect the board to your Mac using USB cable☆ Connect the board to your Mac using USB cable☆ Connect the board to your Mac using USB cable☆ Connect the board to your Mac using USB cable☆ Connect the board to your Mac using USB cable
☆ Kick "st-util":☆ Kick "st-util":☆ Kick "st-util":☆ Kick "st-util":☆ Kick "st-util":
$�st-util$�st-util$�st-util$�st-util$�st-util
☆ Open another terminal, and download
application into the board:
☆ Open another terminal, and download
application into the board:
☆ Open another terminal, and download
application into the board:
☆ Open another terminal, and download
application into the board:
☆ Open another terminal, and download
application into the board:
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
18. How to run application? #MacOSHow to run application? #MacOSHow to run application? #MacOSHow to run application? #MacOSHow to run application? #MacOS
☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:
(gdb)�c(gdb)�c(gdb)�c(gdb)�c(gdb)�c
☆ Open another terminal, and open serial console:☆ Open another terminal, and open serial console:☆ Open another terminal, and open serial console:☆ Open another terminal, and open serial console:☆ Open another terminal, and open serial console:
$�picocom�-b�38400�/dev/tty.usbmodem1423$�picocom�-b�38400�/dev/tty.usbmodem1423$�picocom�-b�38400�/dev/tty.usbmodem1423$�picocom�-b�38400�/dev/tty.usbmodem1423$�picocom�-b�38400�/dev/tty.usbmodem1423
☆ Push "USER" button on the board☆ Push "USER" button on the board☆ Push "USER" button on the board☆ Push "USER" button on the board☆ Push "USER" button on the board
19. How to run application? #LinuxHow to run application? #LinuxHow to run application? #LinuxHow to run application? #LinuxHow to run application? #Linux
☆ Connect the board to your PC using USB cable☆ Connect the board to your PC using USB cable☆ Connect the board to your PC using USB cable☆ Connect the board to your PC using USB cable☆ Connect the board to your PC using USB cable
☆ Kick "st-util":☆ Kick "st-util":☆ Kick "st-util":☆ Kick "st-util":☆ Kick "st-util":
$�sudo�st-util$�sudo�st-util$�sudo�st-util$�sudo�st-util$�sudo�st-util
☆ Open another terminal, and download
application into the board:
☆ Open another terminal, and download
application into the board:
☆ Open another terminal, and download
application into the board:
☆ Open another terminal, and download
application into the board:
☆ Open another terminal, and download
application into the board:
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�gdbwrite
20. How to run application? #LinuxHow to run application? #LinuxHow to run application? #LinuxHow to run application? #LinuxHow to run application? #Linux
☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:☆ Continue application from GDB prompt:
(gdb)�c(gdb)�c(gdb)�c(gdb)�c(gdb)�c
☆ Open another terminal, and open serial console:☆ Open another terminal, and open serial console:☆ Open another terminal, and open serial console:☆ Open another terminal, and open serial console:☆ Open another terminal, and open serial console:
$�picocom�-b�38400�/dev/ttyACM0$�picocom�-b�38400�/dev/ttyACM0$�picocom�-b�38400�/dev/ttyACM0$�picocom�-b�38400�/dev/ttyACM0$�picocom�-b�38400�/dev/ttyACM0
☆ Push "USER" button on the board☆ Push "USER" button on the board☆ Push "USER" button on the board☆ Push "USER" button on the board☆ Push "USER" button on the board
21. Do you see test log of ChibiOS?Do you see test log of ChibiOS?Do you see test log of ChibiOS?Do you see test log of ChibiOS?Do you see test log of ChibiOS?
☆ You will see following log on serial console:☆ You will see following log on serial console:☆ You will see following log on serial console:☆ You will see following log on serial console:☆ You will see following log on serial console:
***�ChibiOS/RT�test�suite
***
***�Kernel:�������3.1.5
***�Compiled:�����Jan�15�2017�-�20:38:01
***�Compiler:�����GCC�4.8.4�20140725�(release)�[ARM/embedded-4_8-branch�
revision�213147]
***�Architecture:�ARMv6-M
***�Core�Variant:�Cortex-M0
***�Port�Info:����Preemption�through�NMI
***�Platform:�����STM32F091xC�Entry�Level�Access�Line�devices
***�Test�Board:���STMicroelectronics�NUCLEO-F091RC
***�ChibiOS/RT�test�suite
***
***�Kernel:�������3.1.5
***�Compiled:�����Jan�15�2017�-�20:38:01
***�Compiler:�����GCC�4.8.4�20140725�(release)�[ARM/embedded-4_8-branch�
revision�213147]
***�Architecture:�ARMv6-M
***�Core�Variant:�Cortex-M0
***�Port�Info:����Preemption�through�NMI
***�Platform:�����STM32F091xC�Entry�Level�Access�Line�devices
***�Test�Board:���STMicroelectronics�NUCLEO-F091RC
***�ChibiOS/RT�test�suite
***
***�Kernel:�������3.1.5
***�Compiled:�����Jan�15�2017�-�20:38:01
***�Compiler:�����GCC�4.8.4�20140725�(release)�[ARM/embedded-4_8-branch�
revision�213147]
***�Architecture:�ARMv6-M
***�Core�Variant:�Cortex-M0
***�Port�Info:����Preemption�through�NMI
***�Platform:�����STM32F091xC�Entry�Level�Access�Line�devices
***�Test�Board:���STMicroelectronics�NUCLEO-F091RC
***�ChibiOS/RT�test�suite
***
***�Kernel:�������3.1.5
***�Compiled:�����Jan�15�2017�-�20:38:01
***�Compiler:�����GCC�4.8.4�20140725�(release)�[ARM/embedded-4_8-branch�
revision�213147]
***�Architecture:�ARMv6-M
***�Core�Variant:�Cortex-M0
***�Port�Info:����Preemption�through�NMI
***�Platform:�����STM32F091xC�Entry�Level�Access�Line�devices
***�Test�Board:���STMicroelectronics�NUCLEO-F091RC
***�ChibiOS/RT�test�suite
***
***�Kernel:�������3.1.5
***�Compiled:�����Jan�15�2017�-�20:38:01
***�Compiler:�����GCC�4.8.4�20140725�(release)�[ARM/embedded-4_8-branch�
revision�213147]
***�Architecture:�ARMv6-M
***�Core�Variant:�Cortex-M0
***�Port�Info:����Preemption�through�NMI
***�Platform:�����STM32F091xC�Entry�Level�Access�Line�devices
***�Test�Board:���STMicroelectronics�NUCLEO-F091RC
23. What's VeriFast?What's VeriFast?What's VeriFast?What's VeriFast?What's VeriFast?
☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast
☆ A verifier for single-threaded and multithreaded
C language programs annotated with
preconditions and postconditions written in
separation logic.
☆ A verifier for single-threaded and multithreaded
C language programs annotated with
preconditions and postconditions written in
separation logic.
☆ A verifier for single-threaded and multithreaded
C language programs annotated with
preconditions and postconditions written in
separation logic.
☆ A verifier for single-threaded and multithreaded
C language programs annotated with
preconditions and postconditions written in
separation logic.
☆ A verifier for single-threaded and multithreaded
C language programs annotated with
preconditions and postconditions written in
separation logic.
☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.
24. How to verify C code using VeriFast?How to verify C code using VeriFast?How to verify C code using VeriFast?How to verify C code using VeriFast?How to verify C code using VeriFast?
Please read VeriFast Tutorial:Please read VeriFast Tutorial:Please read VeriFast Tutorial:Please read VeriFast Tutorial:Please read VeriFast Tutorial:
☆ English:☆ English:☆ English:☆ English:☆ English:
https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdfhttps://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdfhttps://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdfhttps://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdfhttps://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf
☆ Japanese:☆ Japanese:☆ Japanese:☆ Japanese:☆ Japanese:
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
25. How to verify application?How to verify application?How to verify application?How to verify application?How to verify application?
Simply kick GNU make on your terminal:Simply kick GNU make on your terminal:Simply kick GNU make on your terminal:Simply kick GNU make on your terminal:Simply kick GNU make on your terminal:
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�vfide
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�vfide
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�vfide
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�vfide
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F091RC-NUCLEO
$�make�vfide
26. What should be verified on ChibiOS?What should be verified on ChibiOS?What should be verified on ChibiOS?What should be verified on ChibiOS?What should be verified on ChibiOS?
☆ ChibiOS has own system states☆ ChibiOS has own system states☆ ChibiOS has own system states☆ ChibiOS has own system states☆ ChibiOS has own system states
27. The state chart means...The state chart means...The state chart means...The state chart means...The state chart means...
☆ Application start at "Init" state☆ Application start at "Init" state☆ Application start at "Init" state☆ Application start at "Init" state☆ Application start at "Init" state
☆ Change into "HALInited" state calling halInit()☆ Change into "HALInited" state calling halInit()☆ Change into "HALInited" state calling halInit()☆ Change into "HALInited" state calling halInit()☆ Change into "HALInited" state calling halInit()
☆ Change into "Thread" state calling chSysInit()☆ Change into "Thread" state calling chSysInit()☆ Change into "Thread" state calling chSysInit()☆ Change into "Thread" state calling chSysInit()☆ Change into "Thread" state calling chSysInit()
☆ You can call some ChibiOS API on "Thread" state☆ You can call some ChibiOS API on "Thread" state☆ You can call some ChibiOS API on "Thread" state☆ You can call some ChibiOS API on "Thread" state☆ You can call some ChibiOS API on "Thread" state
But run-time error is caused by violation. We would
like to capture it on verification using VeriFast.
But run-time error is caused by violation. We would
like to capture it on verification using VeriFast.
But run-time error is caused by violation. We would
like to capture it on verification using VeriFast.
But run-time error is caused by violation. We would
like to capture it on verification using VeriFast.
But run-time error is caused by violation. We would
like to capture it on verification using VeriFast.
31. Then you will see error on verificationThen you will see error on verificationThen you will see error on verificationThen you will see error on verificationThen you will see error on verification
32. HomeworkHomeworkHomeworkHomeworkHomework
☆ Verify ChibiOS/RT thread blinking LED☆ Verify ChibiOS/RT thread blinking LED☆ Verify ChibiOS/RT thread blinking LED☆ Verify ChibiOS/RT thread blinking LED☆ Verify ChibiOS/RT thread blinking LED
☆ Verify chEvtBroadcastI() which can be call from
I-Locked or S-Locked state
☆ Verify chEvtBroadcastI() which can be call from
I-Locked or S-Locked state
☆ Verify chEvtBroadcastI() which can be call from
I-Locked or S-Locked state
☆ Verify chEvtBroadcastI() which can be call from
I-Locked or S-Locked state
☆ Verify chEvtBroadcastI() which can be call from
I-Locked or S-Locked state
http://chibios.sourceforge.net/html/
group__events.html#ga0c3fcdef2ba14d8b6b6da5aa4113f18b
http://chibios.sourceforge.net/html/
group__events.html#ga0c3fcdef2ba14d8b6b6da5aa4113f18b
http://chibios.sourceforge.net/html/
group__events.html#ga0c3fcdef2ba14d8b6b6da5aa4113f18b
http://chibios.sourceforge.net/html/
group__events.html#ga0c3fcdef2ba14d8b6b6da5aa4113f18b
http://chibios.sourceforge.net/html/
group__events.html#ga0c3fcdef2ba14d8b6b6da5aa4113f18b
☆ Verify following more complex application:☆ Verify following more complex application:☆ Verify following more complex application:☆ Verify following more complex application:☆ Verify following more complex application:
chibios-verifast/ChibiOS_16.1.6/demos/STM32/RT-STM32F746G-DISCOVERY-LWIP-
FATFS-USB
chibios-verifast/ChibiOS_16.1.6/demos/STM32/RT-STM32F746G-DISCOVERY-LWIP-
FATFS-USB
chibios-verifast/ChibiOS_16.1.6/demos/STM32/RT-STM32F746G-DISCOVERY-LWIP-
FATFS-USB
chibios-verifast/ChibiOS_16.1.6/demos/STM32/RT-STM32F746G-DISCOVERY-LWIP-
FATFS-USB
chibios-verifast/ChibiOS_16.1.6/demos/STM32/RT-STM32F746G-DISCOVERY-LWIP-
FATFS-USB
33. Special thanksSpecial thanksSpecial thanksSpecial thanksSpecial thanks
☆ STMicroelectronics provides STM32 boards.☆ STMicroelectronics provides STM32 boards.☆ STMicroelectronics provides STM32 boards.☆ STMicroelectronics provides STM32 boards.☆ STMicroelectronics provides STM32 boards.
☆ Eiwa System Management, Inc. provides this
meeting room.
☆ Eiwa System Management, Inc. provides this
meeting room.
☆ Eiwa System Management, Inc. provides this
meeting room.
☆ Eiwa System Management, Inc. provides this
meeting room.
☆ Eiwa System Management, Inc. provides this
meeting room.
☆ @ruicc supports around MacOS environment.☆ @ruicc supports around MacOS environment.☆ @ruicc supports around MacOS environment.☆ @ruicc supports around MacOS environment.☆ @ruicc supports around MacOS environment.
☆ @eldesh supports around Windows
environment, and gives advice usage of VeriFast.
☆ @eldesh supports around Windows
environment, and gives advice usage of VeriFast.
☆ @eldesh supports around Windows
environment, and gives advice usage of VeriFast.
☆ @eldesh supports around Windows
environment, and gives advice usage of VeriFast.
☆ @eldesh supports around Windows
environment, and gives advice usage of VeriFast.