 The presentation now will cover the new free IDE for STM32, which is AC6 System World Bench, which is provided free of charge to you on the community website which is associated. And I will present to you this. System World Bench for STM32 is an embedded system IDE developed by AC6, a small French company, for programming STM32 microcontrollers. It's based on Eclipse. It can be used on Windows, on Linux, and soon on MacOS X, and can be installed either using a standalone installer or very convenient, just have to download the installer on the internet and run it. Or, if you have your own Eclipse installation and want to use it, you can use it and just install it as a set of plugins. Under Eclipse. And once installed, you will be able to update it through the standard Eclipse mechanism. The idea of this IDE is to integrate all project activities in one environment and to allow it to collaborate, cooperate with all other Eclipse plugins, mainly all team management systems, source code management systems, program reporting, etc., etc. Does it move or not? No. What's happening? The architecture of System World Bench for MCU is a set of Eclipse plugins with the main STM32 project in the middle that allows you to define which board you use, which MCU, which firmware library you want to use, because we have with the STM32 the ability to use either the legacy STP-REF library or create projects using the HAL library project. And then these are two different projects so that you can share the same library for different programs that you can build and then debug, flash the image and deploy to the final system. And to this you can add your own autosys, USB stacks, user libraries, etc., etc. So I will just show you quickly how to create a program and then debug it. You'll see that it's very simple. Creating a program when you want to start working with System World Bench for STM32, you will first create a project, create a standard CC++ project for Eclipse, give it a name of course, create as a kind of project an AC6 MCU project where you can create either an executable project or a library project. So if you have your own libraries that you want to integrate in your systems, you can create these as a library and then reference them from your own project. And then you select the program tool chain, which is the AC6 MCU GCC-based tool chain which is delivered with plugins. Then you have to choose the proper MCU to use and the board to use because we support all the STM32 MCUs, all the families, everything that is available today is supported and we will support the new chips as soon as they are available, generally available. And we support also all the evaluation boards provided by ST Micro Electronics. So you can choose the family, the series of the STM32 to simplify selection. Here I've chosen STM32 F4 and then the board on which you want to work. Either a standard STM32 provided board like the STM Nuclear F411RE or you can create your own board because of course you will not always use evaluation boards but you may create your own board. You just have to create a new custom board and then you specify which are the MCU that you put on it, a few characteristics of the board and then create the project. Then you will have the ability to choose which firmware you want to use. For STM32 processors you can have either the STD Period Legacy Library or the new hardware abstraction layer, Cube Library. So you have to choose which one you want. Of course you may want to work bare meter without any firmware on the board in which case you just select don't load any firmware. And then the firmware will be automatically downloaded from the ST website. You don't have to take care of it. It will be done the first time you need it and then you will get your firmware downloaded. It is analyzed by the tool and the various components are available and you can select just the basic firmware or you can add all the additional firmware available either provided by ST or provided by third party. You just click the one you need and then you create your project. Then you will get your completely populated workspace with the project that you have created containing your program which of course for now is empty. The main program that we provide in this case is empty. And the library program with the standard file firmware library that you have selected. You also may have selected on the previous screen to load the whole firmware as provided by ST my very electronics so that you can copy paste for example some demo code from the provided software. We do not do that for you because there are too many variations depending on the board you are starting from but you may just open the project that is still closed on this screen. The last one. And then copy paste things into your project. The code in this global project will never be compiled automatically but all the code you put in your program project or in the library project will be automatically compiled when you push the build button on which the arrow is pointing now. And then when you build it you will get some output in the lower window at the end here finishing by the size of the generated code and you will have both a debugable file which allows you to debug the program and a binary file which can be flashed directly on the board. And then your program is ready to be debugged. Debugging is as seamless as creating the project and compiling it. Of course you can modify your code and just have to recompile each time. To debug you have two ways to start the debug. There is the fast track possibility which is just one click away from building. You just select for example in the debug menu a small icon which looks like a small bug in the tool menu at the top. You select debug as AC6 STM32 CC++ program and it will start the debugger automatically. It will configure everything from the currently selected program project. But sometimes you want to be able to customize a bit the way the debugger will start for example not having a red point at main but at some other place to have the system started normally somewhere else. So in this case you can use the custom track instead of selecting debug as AC6 STM32 CC++ program you select debug configurations. And then you create your own configuration. You will choose of course an MCU program, debugger, create one and then you will be able on the system on the debug configuration to choose the program to debug if you have several programs to debug the project from which it's coming and mainly in the second screen choose which red point to put how to start with your program etc. And you will see at this level that we use OpenOCD to control the debugging through the JTAG probe and then you can also change the configuration script for OpenOCD if you have specific needs on your board it's mainly needed when you are custom board where you may have to provide your own script. And then debugging will be done on the standard debugging interface of Eclipse with all the facilities the ability to single step, step in a function, step over a function with red points with watches to look at variables plus a few specific things provided by the standard STM32 debugging plugin for example some abilities, specific abilities for visualizing memory and visualization of all the MCU specific IO registers and you have one window that allows you to see all the IO registers from your STM32 chip and for each register here that's the general registers the next slide we will have the IO registers and for each peripheral device for example the user there is several ones you have user one with control register one and every bit is decoded and you see every bit its value you can change the value when you are starting your program and you discover that you have some configuration to change you can update your registers, test the result and then correct your code to provide the proper configuration having a nice ID is one thing but having an associated community website allowed to have all the support all the evolution provided through internet there is a specific website which is OpenSTM32.org 3W OpenSTM32.org that is the entry point to access the tool to use it to exchange on usage of the tool exchanging some tips asking questions, getting answers etc etc with the facts, with the forums etc to support the tool this website is the need you to register the website to access to everything including downloading the installer and getting all installation instructions of code you will find of course also here documentation for system world bench for STM32 some forums to discuss some facts, some blogs with insight on STM32 development tips and tricks on system world bench for STM32 use etc etc and of course you are welcome to participate in this adventure because that is something that just start registration is free, the tool is free everything is free on the website and once registered you can browse all the websites really online documentation and you may if you are interested to participate ask to become an author that allow you to have your own blog where you can post your thoughts and discuss with others and provide input to the community the OpenSTM32 website is live now the Windows based version of system world bench for STM32 is free and free to download by everybody the Linux version is in beta beta status so you have to request to be a beta tester if you are willing to participate and check it and return information on how it works for you and the macro S6 version will be ready next semester next quarter the roadmap for evolution of system world bench for STM32 release 1.0 is available now it release all the tips and evaluation boards available today from STM32 it supports firmware at the STD period for HAL format Q format wherever appropriate that is all boards today are supported by QMX and by the HAL library while the newest boards are not available for STD period and it runs 1.0 on Windows 1.1 which is expected the next month will be a minor release may support some new devices as they get out and will support Linux as development host we test it and validate it on UBITU version 12.04 and 14.04 the long term support releases of UBITU and we will always support the last two LTS releases of UBITU of course that does not mean it will not work on other platforms but we don't test it we can test it on all Linux platforms then second next quarter of 2015 there will be release 1.2 a minor release 2 may as always support new devices and will support Mac OS X as a development environment development is in the last phase it will go to beta when 1.1 gets out and then will be released a few months after and release 2 is expected end of the year with more features available and of course more chips supported and independently from the scheduled updates on which we will have new versions of the installers you will have regularly updates available to the standard Eclipse update mechanism just by clicking check for updates under Linux Eclipse excuse me and that allow to correct bugs to provide updated versions of some tools for example the GCC version we use is the latest linaro version so when linaro provide a bug fix or a new version you will be able to just install it by updating your system world bench for STM32 installation you may have some new features under user interface of course newly release STM32 chips that will be supported in the days or weeks after their general availability that means that the support in the tool will usually be available when you can get the board from ST micro electronics and if you have special arrangement with ST micro electronics to have advanced versions of the tools or the boards we can provide you usually advanced versions of the support tool so thank you for your attention