Embedded.Linux.Tunisia
training embedded linux (inscription à l'addresse [email protected])
- Workshop/form Le prix est unique: 45 Dinars (les 2 jours).
on vous propose deux workshop/formation :
- Workshop/formation sur Linux embarqué pour entrer dans la communauté open source: 2 jours.
- Workshop/formation sur STM32 avec environnement open source: 2 jours.
- Workshop/formation sur Android pour 2 niveaux: 2 jours pour débutant et 2 jours pour avancé. N'importe quel étudiant peut organiser un groupe de 20 personnes max pour le weekend (per exemple)
07/05/2018
A Orange, on cherche des stagiaires pour améliorer l'application Android "Opeech" sous Google Store (4Mb). Merci d’envoyer vos suggestions.
==1er workshop (Linux embarqué)===========================
formation accéleré:(Linux embarqué)
Nombre: pour une vingtaine de personnes (20 max)
prix: 25 Dinars.
Objectif :
* Connaitre les différents outils d’un ingénieur linux embarqué en vivant son quotidien.
* Connaitre les secrets du linux embarqué.
* Comment construire un petit système Linux embarqué.
* Comment fonctionne Linux.
* Comment debugger Linux.
* Comment écrire des drivers Linux.
* Valeur ajouté : à la fin du workshop, L’étudiant doit continuer le travail sur le Linux embarqué en utilisant un émulateur (sans carte ou avec carte) en compilant
l'Android, application DirectFB, firewalls... pour maitriser l’environnement de développement/débogage des grandes entreprises comme Samsung, stmicroelectronics,
broadcom…
Premiere partie: (environnement)
• Construire un système embarqué à partir de rien sur un émulateur ARM.
• Cross-compilation, Distribution Linux, Kernel, émulateur.
• Busybox NFS, Initramfs, U-boot, memory map, sysfs, procfs...
• Des exemples sur la Pandaboard.
Deuxiéme partie:(Développement)
• L’outil GIT et son importance dans l’embarqué.
• Linux device drivers : Communication avec les applications user.
• Virtual file system VFS, system call,libc, l’interne de Linux.
• Makefile, Bugzilla.
• Debug Kernel/User. Gdbserver.
Lors de la formation, des clé USB seront distribués contenant l’environnement de travail.
Apportez votre PC avec Windows 7 ou XP installé (Le mieux un PC supportant instructions VTx voir avec l’outil CPU-Z).
Commencer à voir pour se préparer:http://free-electrons.com/doc/unix_linux_introduction_fr.pdf
Merci de me contacter pour organiser une présentation gratuite sur "libre de l'embarqué Linux/STM32/Android" et une autre sur "Google Maps sur Android" dans votre école.
un workshop intensif de 2 journées sera organisé:
Nombre: pour une vingtaine de personnes (20 max)
prix des 2 journées: 45 Dinars.
La formation dure toute la journée de suite avec des pauses.
Contenu :
30% théorie
70 % pratique
(d'après l'expérience, avec la pratique, l'étudiant ne s'ennui pas)
Objectif :
* s'introduire dans la programmation des jeux video.
* comment stocker des données dans les application Android et l'utilisation de SQL.
* Connaitre la progammation des messages et réseau Android.
* Connaitre le développement des services android, google mapping...
Premier jour: (avec plusque 30 ateliers disponible)
• 2D/3D:Quelque techniques grahiques 2D et 3D pour faire des jeux en utilisant les threads, surfaceview,
les fonts personalisés, les assets.
• Téléphonie:Appel, surveillance de l'état, journal d'appels, blocage des appels, auto-réponse, mode avion,
comment Obtenir le numéro de téléphone, l'IMEI, et la carte SIM ID, activation du Bluetooth.
• Messagerie: Envoi de messages SMS, Surveillance de l'état de SMS, suivi et interception des messages SMS.
• Programmation Réseau: Connexion aux Serveurs utilisant le protocole HTTP GET et POST,
Téléchargement de donnees binaires, Consommer des services Web XML et JSON Web Services,
obtention de l'adresse IP de l'Appareil,Création de socket serveur et client, bluetooth chat.
Deuxieme jour:
• Google Maps: Affichage, zoom, modes de cartes, navigation, marqueurs, geocoding..
• LBS (Location-Based data Services): Obtention Lieu géographique Grâce au GPS, Wi-Fi ou les réseaux cellulaires,
Surveillance d'un emplacement, BroadcastReceiver à trouver des emplacements, logging.
• Hardware: capturer des images avec la caméra, caractéristiques matérielles, GPS, HW boutons,
lampe de poche, code à barre.
• La persistance des données: Sauvegarde et chargement des préférences de l'utilisateur,
écran de préférences, Enregistrement de fichiers au répertoire de données, du cache, stockage externe,
Joindre des fichiers à votre projet, Création et utilisation de bases de données SQLite programmation,
SQLite.
http://developer.android.com/training/index.html
==3 eme workshop (Android débutant)========================
Objectif :
* Comment débuter dans la programmation Android en utilisant le SDK de Google Android.
* Connaitre les bases de la programmation Android (sur la derniere version Jellybean).
* Connaitre les composants d'une application Android et la démarrer sur l'émulateur.
* Connaitre l'interface utilisateur de l'Android et son "design".
* Comment publier une application android.
un workshop intensif de 2 journées sera organisé:
Nombre: pour une vingtaine de personnes (20 max)
prix des 2 journées: 45 Dinars.
La formation dure toute la journée de suite avec des pauses.
Contenu :
30% théorie
70 % pratique
(d'après l'expérience, avec la pratique, l'étudiant ne s'ennui pas)
Premier jour: (avec plusque 30 ateliers disponible)
• Introduction dans le language JAVA & l'orienté objet
• Introduction dans environment android sur émulateur ou un smartphone.
• Les fondamentaux de l'android: Premier programme, activité (cycle de vie, naviguer entre les activités,
passer des données entre les activités), les intents (implicites & explcites), les broadcaster/broadcast receiver,
changer le théme et style.
• javascript appelant du code Android, python sur android, auto start de l'application lors du boot du smartphone.
Deuxieme jour:
• Les vues basiques: tous les type de Boutons, Check box, Time/Date Pickers, positionnement linearlayout,
FrameLayout,..., scrollview, les Menus Option & Context, Boites de Dialogs (les fragments), view pager, progress
bar (avec thread)
• Listview (personalisé, multiple...), spinner view, Gallery, image switcher, gridview, utilisation des
fragments pour afficher les details.
• Comment préparer votre demande de déploiement, déploiment à travers webserver, installation vers SD,
Comment publier gratuitement une application Android.
http://developer.android.com/training/index.html
Getting Started | Android Developers Android Training provides a collection of classes that aim to help you build great apps for Android. Each class explains the steps required to solve a problem or implement a feature using code snippets and sample code for you to use in your apps.
29/09/2013
==2 eme workshop (STM32)===============================
un workshop intensif de 2 journées sera organisé:
Nombre: pour une vingtaine de personnes (20 max)
prix des 2 journées: 45 Dinars.
La formation dure toute la journée de suite avec des pauses.
Contenu :
30% théorie
70 % pratique
(d'après l'expérience, avec la pratique, l'étudiant ne s'ennui pas)
Objectif :
* Comprendre l’architecture de la dernière version de stm32: stm32f4 discovery (meilleur microcontrôleur dans le monde).
* Savoir comment configurer l’environnement Linux open source pour developper/debugger sur la STM32 et éviter les environnement payant IAR…
* Savoir comment démarrer les 22 exemples du firmware pour projets sur la stm32f4.
* Savoir comment debugger sous STM32.
* Savoir le fonctionnement des principaux périphériques Timers, SPI,I2C,I2S, ADC, DAC… MEMS (microphone, accéléromètre,…) , DMA à travers
un exemple d’un lecteur/enregistreur Wave audio et des exemples de la robotique.
Valeur ajouté : à la fin du workshop, l’étudiant pourra commencer à développer des grands projets avec la STM32F4 sur un environnement free et gratuit.
Premier jour: (environnement)
• Présentation de la STM32: la carte, le Marché, Matériel,power supply…
• Pourquoi Linux ? Bienvenu dans l’open source.
• Configurer Linux pour développer et debugger sur STM32.
• Installation et contenu du firmware STM32F4: librairies, projets, optimisation….
• Architecture de la STM32 par des dessins simples et efficaces: Cortex-M, FPU, registres, pipeline, mémoire…
• Les interruptions: NVIC, Interruption Timer…
• exemple « IO_Toggle »de FW sur Linux: fichiers nécessaire, link, makefile, sections mémoire…
• Compilation/éxecution/debug « IO_Toggle »: allumer les 4 leds en alternance.
• GPIO: configuration, (Pull-up/Pull-down/Push-Pull),
• comment lire la doc de STM32/ST.
Deuxième jour : (des exercices sur les périphériques)
• Systick, Les timers, PWM, registres compare/capture… et leur importances pour la robotiques (exemple : Moteur/Servomoteur).
• EXTI, DMA, l’accéléromètre.
• Audio à travers l’exemple du lecteur/enregistreur audio : Wave, Microphone MEMS.
• Conversion analogique-numérique: échantillonnage, ADC/DAC.
• USB OTG FS/HS, FAT FS.
• Protocole de communications: USART, SPI,I2C, I2S.
• Un tour sur les autres périphériques: Power management, watchdog, ethernet,…
Lors de la formation, des clé USB seront distribués contenant l’environnement de travail plus des cartes STM32F4 (9 cartes sont disponibles).
Apportez donc vos PC avec Windows 7 ou XP installé (Le mieux un PC supportant instructions VTx voir avec l’outil CPU-Z).
Apportez plus de cartes STM32F4 pour plus de tests (elle vaut entre 38 et 50 Dinars voir souilah ou farnell ou RS composant à Tunis)
Et apportez si vous avez des écouteurs pour le TP de l’audio.
Commencer à voir pour se préparer:
http://www.st.com/internet/evalboard/product/252419.jsp
STM32F4DISCOVERY Discovery kit for STM32F407/417 lines - with STM32F407VG MCU - STMicroelectronics STM32F4DISCOVERY - description, STMicroelectronics, STM32F4DISCOVERY
En résumé, on vous propose deux workshop/formation :
- Workshop/formation sur Linux embarqué pour entrer dans la communauté open source: 2 jours.
- Workshop/formation sur STM32 avec environnement open source: 2 jours.
- Workshop/formation sur Android pour 2 niveaux: 2 jours pour débutant et 2 jours pour avancé.
N'importe quel étudiant peut organiser un groupe de 20 personnes max pour le weekend (per exemple).
Workshop/formation peut être fait dans l'école ou dans une salle professionelle. Le prix est unique: 45 Dinars (les 2 jours).
contacter au : 28.293.611 ou email: [email protected]
L’objectif est que l’étudiant maitrise l’embarqué :
- Coté Software Noyau : Linux embarqué (exemples sur Pandaboard).
- Coté Hardware : STM32.
- Coté Software Application : Android.
Voir les détails "précis" des formations.
13/06/2013
http://asia.cnet.com/samsung-galaxy-s4-zoom-announced-62221599.htm
Samsung Galaxy S4 Zoom announced The Korean electronics giant releases yet another variant of the Galaxy S4, featuring a 16-megapixel camera, 10x optical zoom and a built-in optical image stabilizer.
13/06/2013
Samsung Galaxy S2 and S3 – ADB Device Driver [android]
Here are the steps I followed to get the phones connected and visible via the ADB interface:
1.Disconnect the phone from USB
2.Using USBDeview, I deinstalled all previously installed drivers relating to the phone (Look for Samsung Android as the device name).[http://download.cnet.com/USBDeview/3000-2094_4-10614190.html]
3.Installed the latest version of Kies (v2.3 at this time)[http://www.samsung.com/uk/kies/]
4.Connected the phone via USB and waited for all of the components to be detected and initialized
5.Ran “adb kill-server” (adb can be found under /platform-tools)
6.Ran “adb start-server”
7.Ran “adb devices”. At this point I can see both my Samsung S2 and S3 phones as available devices.
USBDeview Keeping track of your USB devices is easy with NirSoft's USBDeview.
13/06/2013
Pourquoi Waze a fait tourner la tête de Google Google a officialisé mardi soir le rachat de la start-up israélienne, qui a aussi été approchée par Apple et convoitée par Facebook.
Mutexes and Semaphores Demystified
by Michael Barr
The question "What is the difference between a mutex and a semaphore?" is short and easily phrased. Answering it is more difficult. In this first installment of a series of articles on the proper use of a real-time operating system (RTOS), we examine the important differences between a mutex and a semaphore.
After conversations with countless embedded software developers over many years, I have concluded that even very experienced RTOS users have trouble distinguishing the proper uses of mutexes and semaphores. This is unfortunate and dangerous, as misuse of either RTOS primitive can easily lead to unintended errors in embedded systems that could turn them into life-threatening products.
In this article, I aim to distinguish these two important RTOS primitives once and for all, by debunking a popular myth about their similarity.
Mutex vs. Semaphore
The Myth: Mutexes and semaphores are similar or even interchangeable.
The Truth: While mutexes and semaphores have similarities in their implementation, they should always be used differently.
The most common (but nonetheless incorrect) answer to the question posed at the top is that mutexes and semaphores are very similar, with the only significant difference being that semaphores can count higher than one. Nearly all engineers seem to properly understand that a mutex is a binary flag used to protect a shared resource by ensuring mutual exclusion inside critical sections of code. But when asked to expand on how to use a "counting semaphore," most engineers—varying only in their degree of confidence—express some flavor of the textbook opinion that these are used to protect several equivalent resources. 1
It is easiest to explain why the "multiple resource" scenario is flawed by way of an analogy. If you think of a mutex as a key owned by the operating system, it is easy to see that an individual mutex is analogous to the bathroom key owned by an urban coffee shop. At the coffee shop, there is one bathroom and one bathroom key. If you ask to use the bathroom when the key is not available, you are asked to wait in a queue for the key. By a very similar protocol, a mutex helps multiple tasks serialize their accesses to shared global resources and gives waiting tasks a place to wait for their turn.
This simple resource protection protocol does not scale to the case of two equivalent bathrooms. If a semaphore were a generalization of a mutex able to protect two or more identical shared resources, then in our analogy, it would be a basket containing two identical keys (i.e., each of the keys would work in either bathroom door).
A semaphore cannot solve a multiple identical resource problem on its own. The visitor only knows that he has a key, not yet which bathroom is free. If you try to use a semaphore like this, you’ll find you always need other state information—itself typically a shared resource protected via a separate mutex. 2 It turns out the best way to design a two-bathroom coffee shop is to offer distinct keys to distinct bathrooms (e.g., men’s vs. women’s), which is analogous to using two distinct mutexes.
The correct use of a semaphore is for signaling from one task to another. A mutex is meant to be taken and released, always in that order, by each task that uses the shared resource it protects. By contrast, tasks that use semaphores either signal or wait—not both. For example, Task 1 may contain code to post (i.e., signal or increment) a particular semaphore when the "power" button is pressed and Task 2, which wakes the display, pends on that same semaphore. In this scenario, one task is the producer of the event signal; the other the consumer.
To summarize with an example, heres how to use a mutex:
/* Task 1 */
mutexWait(mutex_mens_room);
// Safely use shared resource
mutexRelease(mutex_mens_room);
/* Task 2 */
mutexWait(mutex_mens_room);
// Safely use shared resource
mutexRelease(mutex_mens_room);
By contrast, you should always use a semaphore like this:
/* Task 1 - Producer */
semPost(sem_power_btn); // Send the signal
/* Task 2 - Consumer */
semPend(sem_power_btn); // Wait for signal
Importantly, semaphores can also be used to signal from an interrupt service routine (ISR) to a task. Signaling a semaphore is a non-blocking RTOS behavior and thus ISR safe. Because this technique eliminates the error-prone need to disable interrupts at the task level, signaling from within an ISR is an excellent way to make embedded software more reliable by design.
Priority Inversion
Another important distinction between a mutex and a semaphore is that the proper use of a mutex to protect a shared resource can have a dangerous unintended side effect. Any two RTOS tasks that operate at different priorities and coordinate via a mutex, create the opportunity for priority inversion. The risk is that a third task that does not need that mutex—but operates at a priority between the other tasks—may from time to time interfere with the proper ex*****on of the high priority task.
An unbounded priority inversion can spell disaster in a real-time system, as it violates one of the critical assumptions underlying the Rate Monotonic Algorithm (RMA). Since RMA is the optimal method of assigning relative priorities to real-time tasks and the only way to ensure multiple tasks with deadlines will always meet them, it is a very bad thing to risk breaking one of its assumptions. Additionally, a priority inversion in the field is a very difficult type of problem to debug, as it is not easily reproducible.
Fortunately, the risk of priority inversion can be eliminated by changing the operating system’s internal implementation of mutexes. Of course, this adds to the overhead cost of acquiring and releasing mutexes. Fortunately, it is not necessary to change the implementation of semaphores, which do not cause priority inversion when used for signaling. This is a second important reason for having distinct APIs for these two very different RTOS primitives.
The History of Semaphores and Mutexes
The cause of the widespread modern confusion between mutexes and semaphores is historical, as it dates all the way back to the 1974 invention of the Semaphore (capital, in this article) by Djikstra. Prior to that date, none of the interrupt-safe task synchronization and signaling mechanisms known to computer scientists was efficiently scalable for use by more than two tasks. Dijkstra's revolutionary, safe-and-scalable Semaphore was applied in both critical section protection and signaling. And thus the confusion began.
However, it later became obvious to operating system developers, after the appearance of the priority-based preemptive RTOS (e.g., VRTX, ca. 1980), publication of academic papers establishing RMA and the problems caused by priority inversion, and a paper on priority inheritance protocols in 1990, 3 it became apparent that mutexes must be more than just semaphores with a binary counter.
Unfortunately, many sources of information, including textbooks, user manuals, and wikis, perpetuate the historical confusion and make matters worse by introducing the additional names "binary semaphore" (for mutex) and "counting semaphore."
I hope this article helps you understand, use, and explain mutexes and semaphores as distinct tools.
Click here to claim your Sponsored Listing.
Category
Contact the school
Address
Tunis
2000