Ikbel - Développeur C
Ref : 131027B002-
78200 MANTES-LA-JOLIE
-
Ingénieur de développement, Développeur (41 ans)
-
Freelance
Avril 2013-Septembre 2013 : Entreprise Sysma, Aix-en-Provence – 6 mois
Etudes et développements sur les logiciels WinATS et Marathon dédiés pour l’acquisition et le pilotage de données
o Réalisation des essais sur des cartes d’acquisition et de pilotage : configuration des voies analogiques, numériques, PWM, fréquence, etc et visualisation temps réel des voies
o Rénovation des IHMs de WinATS : développement des nouvelles IHMs sous Visual studio 2010 avec la technologie .NET4
o Documentation pour les IHMs rénovées
Environnement technique : .NET 4, Windows Forms, C#, Visual Basic, Telerik, Microsoft SQL Server 2005 compact edition, Visual studio 2010
o Réalisation d’un driver d’acquisition et de pilotage pour le logiciel Marathon avec une carte PCI Express sous le système d’exploitation temps réel RTX
Environnement technique : Carte NI PCIe-6320, Driver NI DAQmx, C++, Visual Studio 2010
o Développement d’un outil de conversion du format : XATS, WATS, ATS des essais de WinATS vers le format MDS utilisé dans les essais de DCNS
Environnement technique : C#, XML, Visual Studio 2010
Novembre 2012-Janvier 2013 : Faculté des sciences de Luminy, 3 mois
Développement d’une messagerie instantanée sur un réseau informatique
o Spécifications fonctionnelles et techniques de la messagerie
o Modèle conceptuel et modèle relationnel de la messagerie avec la méthode Merise
o Communication client/serveur
o Gestion des comptes des utilisateurs de la messagerie
o Conception et développement des conversations publiques et privées de la messagerie
o Conception et développement des événements et notifications des utilisateurs
o Rédaction de l’annexe technique de la messagerie
o Environnement technique : NodeJS, SocketIO, Express, HTML5/CSS3, BootStrap, JavaScript, PhpMyAdmin/MySql
Février 2013-Avril 2013 : Faculté des sciences de Luminy, 3 mois
Réalisation d’un site de sondage
o Création des comptes et identification des utilisateurs du site de sondage
o Création des sondages constitués par une question et plusieurs réponses
o Comptabilisation et affichage de nombres des voix pour chaque réponse
o Consultation et suppression des sondages crées par les utilisateurs
o Utilisation de la méthode de conception Modèle-Vue-Contrôleur pour organiser les IHMs de l’application
o Utilisation des formulaires pour les différentes fonctionnalités du sondage
o Utilisation de la programmation orientée objet en PHP pour la partie contrôle de l’application
o Gestion des interactions avec une base de données pour la partie modèle de l’application
o Environnement technique : PHP, HTML, BootStrap, PhpMyAdmin/MySql
Octobre 2011-Septembre 2012 : Laboratoire TIMA, Grenoble – 12 mois
Post-doctorat dans l’équipe SLS, Projet européen EURETILE
o Réalisation d’un protocole de préemption pour les tâches matérielles sur les systèmes sur puces programmables (SoPC) au niveau RTL
Méthodes utilisées: checkpoints et chaines de scan orthogonal
Modification du design de tâches matérielles au niveau RTL : Machine à états finis : ajout des états supplémentaires et des signaux de contrôle pour la préemption. Unité d’exécution : ajout des éléments logiques dans le chemin de données pour ré-utiliser les éléments et les connexions fonctionnels au cours du scan orthogonal
Environnement technique : VHDL, XST (ISE 10.1 Xilinx), ISE Simulator (ISim), SoPC Virtex 5
o Réalisation de l’interface, entre un modèle de programmation (DAL), développé par le laboratoire ETH à Zurich, et le système d’exploitation développé à TIMA, DNA-OS
Etude et tests de la spécification XML de DAL : applications, architecture, etc
Etude du contrôleur master-slave de DAL pour exécuter des scénarios d’applications concurrentielles sur des architectures multi-processeurs sous Linux
Mise en place de l’interface entre la spécification DAL et DNA-OS
Spécification DAL
Les scénarios d’applications représentés par une machine à états finis en XML Les applications représentées par des process network KPN en XML (processus, connexions, canaux de communication,…) Les sources de processus (.c, .h)
Interface réalisée : Parser XML (XMLStarlet) Script Shell (Bash) : génération du code C du contrôleur master-slave pour DNA.
Rédaction des documents techniques de l’interface réalisée
Ecriture des livrables et présentations des travaux dans les réunions internes
Environnement technique : C, Bash, XMLStarlet, Linux (Debian), DNA-OS, chaine de compilation : APES, processeur ARM, simulateur de plateformes : Rabbits-SoClib
Janvier 2008-Juillet 2011 : Laboratoire LEAT, Sophia Antipolis – 4 ans
Thèse de doctorat dans l’équipe MCSOC, Projet ANR FOSFOR
o Placement et ordonnancement de tâches matérielles sur les systèmes sur puces programmables
o Modèles de tâches étudiés:
Temps-réel
Indépendantes et périodiques
Dépendantes et périodiques (graphes acycliques orientés)
Des points de préemption libres et prédéfinis
o Méthodes de résolution proposées
Deux solveurs de programmation en entiers mixtes linéaire et non-linéaire dans l’environnement AIMMS
Méta-heuristique des Abeilles
Heuristiques de placement et d’ordonnancement avec technique de prédiction, réutilisation, ASAP et best fitting
o Ordonnancement RTEMS : préemptif selon les priorités
o Communication et synchronisation entre les tâches
Tâches matérielles : Réseau sur puce (Network on chip) de type Fat Tree, synchronisation par les files de messages en utilisant les conventions de système d’exploitation RTEMS
Tâches logicielles/tâches logicielles et matérielles : MPCI et mémoire partagée
Communication globale : bus système AHB
o Rédaction de livrables et présentation des travaux dans les réunions internes
o Publication des travaux réalisés dans des conférences et des revues internationales
o Environnement technique : VHDL, XST (ISE 11.3 Xilinx), EDK 11.3, PlanAhead 11.1 (Xilinx), langage C++ (Visual Studio 2005), SoPC Virtex 5 SX 50, AIMMS
Juillet 2007-Décembre 2007 : laboratoire I3S – CNRS, Sophia Antipolis – 6 mois
Reconfiguration partielle dynamique sur FPGA
o Prise en main d’une plateforme de développement Xilinx ML405
o Etude des différentes méthodes de reconfiguration sur FPGA : statique/dynamique, partielle/totale
o Réalisation d’un contrôleur VGA reconfigurable dynamiquement
o Utilisation de l’outil EDK 8.2 pour développer la plateforme matérielle et logicielle
Intégration du processeur configurable Microblaze, des coeurs IP dédiés : HWICAP, SystemACE CNTRL, UART, SDRAM, GPIO, etc. et IP personnalisé pour le module statique du contrôleur VGA dans la plateforme matérielle du système.
Création des wrappers des coeurs IPs intégrés
Création des communications par bus OPB entre le processeur configurable Microblaze et les IPs crées
Communication entre Microblaze et SystemACE pour accéder aux bitstreams de modules partiels reconfigurables sauvegardés sur la mémoire flash
Communication à travers le bus LMB entre Microblaze et le block BRAM qui sauvegarde la plateforme logicielle
Développement de la plateforme logicielle : écriture de l’application stand alone (.elf) exécutée par Microblaze et qui commande l’interface de reconfiguration interne au FPGA (ICAP) pour reconfigurer dynamiquement les modules partiels reconfigurables du contrôleur VGA
o Utilisation de l’outil ISE 8.2.01 pour la synthèse (netlist)
Application du flot Early PR de la reconfiguration partielle dynamique basé sur les modules
Exportation de la plateforme matérielle statique de EDK vers ISE comme module statique du contrôleur VGA
Développement des modules partiels reconfigurables du contrôleur VGA
Création des communications par des bus macros entre le module statique et les modules partiels reconfigurables instanciés dans le module globale
Génération des netlists de tous les modules
o Utilisation de l’outil PlanAhead 9.2.1
Importation des netlists de ISE et le fichier de contraintes .ucf
Définition des localisations de modules partiels reconfigurables sur le dispositif (floorplanning)
Ajout des contraintes temporelles et de localisation des ports utilisés sur le dispositif du fichier .ucf.
Mapping, placement/routage et la création des bitstreams du système et de modules partiels reconfigurables
o Environnement technique : VHDL, C (Software Development Kit - SDK Xlinx), outils de Xilinx : ISE, EDK, PlanAhead, SoPC Virtex 4 FX20
Janvier 2008-Aout 2011 : Polytech’Sophia Antipolis – 4 ans
Vacataire et Attaché temporaire d’enseignement et de recherche
o Enseignement des travaux pratiques de la matière Programmation VHDL dans la discipline de l’informatique industrielle pour la 4 ème année du cycle ingénieur à Polytech’Sophia Antipolis – Spécialité génie électronique (Bac+4)
Etude des connaissances nécessaires de VHDL
Simulation en ModelSim des composants numériques: FIFO synchrone, afficheur 7 segments, registres, machine à états finis, etc
Etude de styles de description: comportemental, flot de données, structurel
o Enseignement des travaux pratiques et des travaux dirigés de matières: logique séquentielle et logique combinatoire pour la 1 ère et la 2 ème année du cycle integré préparatoire à Polytech’Sophia Antipolis (Bac+1 et Bac+2)
Etude de systèmes de numération, des opérations logiques, des diagrammes de Karnaugh, des logigrammes et des différents codes : Gray, ASCII, etc.
Manipulation des portes logiques et leurs câblages
Réalisation des montages des dispositifs automatiques
Réalisation des montages des circuits combinatoires : multiplexeurs, additionneur et des circuits séquentiels : bascules, compteurs, registres à décalage, etc.
Utilisation de l’outil CAO Quartus II de Altera pour concevoir les circuits numériques
DIPLOMES
2012-2013 : Formation complémentaire en informatique, université Aix-Marseille
2008-2011 : Doctorat en électronique, laboratoire LEAT, Sophia Antipolis
2006-2008 : Master en télécommunications, école supérieure des communications de Tunis
2003-2006 : Ingénierie en informatique, école nationale des sciences de l’informatique, Tunis
2001-2003 : Deux années préparatoires mathématiques physiques au cycle de formation des ingénieurs, Tunis
PROJETS D’ETUDES
2005-2006 : Stage de mémoire de fin d’études au sein de la société BITAKA, Tunis, Tunisie : « Mise en place d’une carte salaire pour porteurs non bancarisés »
o Environnement technique : JAVA (Jbuilder), SQL, UML, Dev-C++ (programmation TPE), carte à puce
2004-2005 : Stage d’immersion en entreprise au sein du district de Tunisie Télécoms, Tozeur, Tunisie : « Création d’un logiciel de gestion des employés »
o Environnement technique : PHP, SQL, Dreamwaver MX, EasyPhp 2004-2005 : Projet de fin d’année : « Création d’un logiciel de gestion des ressources humaines »
o Environnement technique : Oracle 9i, JAVA (Jbuilder), UML 2003-2004 : Projet d’été : « Simulation graphique de la suppression et l’adjonction dans les arbres AVL »
o Environnement technique : Turbo C 2003-2004 : Mini-projet de 3 mois du module Conception et Programmation Orientée Objet : « Simulation d’un jeu de casse briques »
o Environnement technique : C++, MFC, Visual Studio
COMPETENCES PROFESSIONELLES
Méthodes de Conception : Merise, UML.
Systèmes : Linux, Windows.
SGBD : Oracle, SQL Server 2005 compact edition, MySql.
Langages de programmation :
o C, Bash (Unix)
o C++, C# (Visual Studio)
o Java (Eclipse SE)
o VHDL (ModelSim, ISE)
Développement web : XML, HTML, CSS, NodeJS, JavaScript, JQuery, PHP
Environnement de développement
o Outils de CAO de Xilinx : ISE, EDK, PlanAhead
o Environnement AIMMS : solveurs de programmation mathématique en entiers mixtes
o Microsoft Visual Studio 2005/2010, Eclipse, ModelSim
Macro-composants: FPGAs Virtex de Xilinx
LANGUES
Anglais : lu, écrit, parlé
Français : lu, écrit, parlé
Arabe : maternelle, lu, écrit, parlé