Compiler et implémenter la démo de ChibiOS

Introduction

Afin de prendre en main chibiOS et de rentrer dans le vif du sujet, nous allons commencer par compiler, en guise d'essai, le programme de démonstration fournit avec chibiOS. Il sera considéré que le lecteur est capable de lui même d'installer les programmes spécifiés, et, soit de comprendre, soit de se documenter.

Téléchargement des divers outils

1- Afin d'utiliser chibiOS, nous devons déjà le télécharger.
Nous vous conseillons d'utiliser la version 1.0.0. pour réaliser votre premier essai car c'est sur cette dernière que nous travaillerons par la suite.
La documentation détaillée de chibiOS (en anglais) se trouve sur le site principal.
Note: chibiOS peut être décompressé dans le dossier de travail de votre choix car nous travaillerons pour ce premier exemple en ligne de commande en se plaçant dans le répertoire de travail (vous verrez pas la suite). En revanche, plus loin, nous automatiserons le processus de "compilation-implémentation-run-debugage" ce qui nécessitera de travailler avec un chemin ne contenant aucun espace. Les dossiers comme "Document and Settings" ou "Progam Files" ne pourront être utilisé. De plus, il est vivement conseillé de travailler à la racine de votre disque.
Je vous propose de prendre directement cette bonne habitude.
 
2- Créer un dossier ARM à la racine du disque (sous windows: "C:\ARM").
Ce dossier contiendra les divers outils de compilation nécessaires à nos projets. Dans ce dossier, nous allons créer un nouveau dossier appelé "projets" et décompresser chibiOS dedans.
Note: Nous allons utiliser maintenant des outils issus du toolchain Yagarto. Ce projet met en place un ensemble d'outil comprenant tout ce qu'il faut pour développer-compiler-debugger.
 
3- Relier la carte STM32-P103 au PC au travers de la sonde JTAG. 
Vous prendrez évidément soin d'installer les drivers de ladite sonde. Afin de pouvoir interfacer PC et carte, nous avons besoin d'un outil capable d'effectuer les communications entre ces deux périphériques. Cet outil se nomme openOCD. Il s'agit d'un serveur permettant de transcrire des messages de type telnet ou de debug en messages compréhensibles par la sonde JTAG, ceci permettant de programmer la carte et de deboger le programme in situ.
 
4- Installer cet outil directement dans le dossier précédemment créé (C:\ARM).
Au cours de l'installation, veillez à choisir l'option automatique de modification de la variable PATH (en cas d'oubli, il est évidement possible de le faire manuellement).
 
5- Installer de la même façon les outils yagarto tools et yagarto GNU ARM toolchain.
Le premier vous fournira un ensemble d'outils nécessaire à la compilation et le second des utilitaires tels que le makefile.
NOTE: ces deux ensemble d'outils doivent être installé dans des dossiers du même nom dans votre répertoire C:\ARM

Compilation de la démo

1- Nous devons tout d'abord commencer par nous placer dans le dossier de la démo. Nous utiliserons évidément le portage de notre carte, c'est à dire la démo pour STM32-P103 dans le dossier ChibiOS_1.0.0\demos\ARMCM3-STM32F103-GCC.
Pour cela, ouvrez un nouvel invite de commande (sous Windows: démarrer/exécuter/cmd).
Taper la commande:

cd C:\ARM\projets\ChibiOS_1.0.0\demos\ARMCM3-STM32F103-GCC

2- Pour compiler, vous devez vous assurer que le projet est propre, c'est à dire qu'aucun fichier issu de compilation précédente n'existe encore. Le but étant bien-sûr de recompiler l'ensemble du projet. 
Utiliser la commande:

make clean

Puis, compiler le projet dans son ensemble en utilisant:

make all

De multiples fichiers devraient avoir été créés: il s'agit de fichiers de divers extensions représentant les différents "morceaux" du fichier de compilation final. Dans votre dossier principal (celui dans lequel nous travaillerons) vous devriez avoir deux fichiers finaux ch.bin et ch.elf
Le premier représente le programme compilé, en binaire, à implémenter dans votre carte. Le second représente le même programme auquel a été ajouté des options de débugage, des points d'arrêts et pleins de choses utiles pour débuger, c'est à dire vérifier le bon fonctionnement du programme.

Transmition du programme à la carte

1- Nous allons en premier lieu devoir définir pour openOCD un fichier de configuration lui expliquant comment se connecter à notre carte en particulier.
- créer un fichier maconf.cfg dans C:\ARM par exemple.
- insérer les lignes suivantes:
  1. #******
  2. # fichier de configuration par Miroslav, pour des détails
  3. # ou des options supplémentaires, consulter la documentation
  4. #******
  5. #
  6. # --
  7. # définition du port pour le serveur telnet 4444
  8. # openOCD permet en effet de définir une connexion de type telnet
  9. # en localhost avec la carte (celle-ci devenant en quelque sorte le serveur).
  10. telnet_port 4444
  11. # --
  12. # définit le premier port sur lequel écouter la réponse de GDB provenant de la carte
  13. # (les informations de débugage).
  14. # Le système écoute sur le port indiqué puis sur le port+1 etc...
  15. # jusqu'à obtenir le signal.
  16. gdb_port 3333
  17. # --
  18. # définit le drive à utiliser pour la connexion.
  19. # Ici celui fourni par le fabricant (ftdi2xx)
  20. interface ft2232
  21. # --
  22. # description du type de branchement JTAG. Ici nous utiliserons le Olimex JTAG-Tiny
  23. ft2232_device_desc "Olimex OpenOCD JTAG TINY A"
  24. # --
  25. # définition du modèle des GPIO (quelle patte sert à quoi!) de notre modèle
  26. #(ici toujours le modèle standard Olimex-JTAG)
  27. ft2232_layout olimex-jtag
  28. # --
  29. # fournit l'ID du fabricant du connecteur et l'ID Produit exact.
  30. ft2232_vid_pid 0x15ba 0x0004
  31. # --
  32. # définition de la vitesse maximale de connexion
  33. #(ne doit pas dépasser 1/6 de la valeur du processeur de la carte)
  34. # pour le driver ftd2xx la vitesse se calcule comme suit:
  35. # maxSpeed= 6Mhz/(nombre+1)
  36. jtag_speed 20
  37. # --
  38. # définit le temps qu'openOCD doit attendre avant toute nouvelle opération
  39. # de type nSRST (en ms)
  40. jtag_nsrst_delay 200
  41. # --
  42. # définit le temps qu'openOCD doit attendre avant toute nouvelle
  43. # opération de type nTRST (en ms)
  44. jtag_ntrst_delay 200
  45. # --
  46. # définit la forme des signaux utilisés comme reset de la connexion
  47. reset_config trst_and_srst separate
  48. # --
  49. # définit différentes tailles d'instructions et de registres
  50. jtag_device 4 0x1 0xf 0xe
  51. jtag_device 5 0x1 0x1 0x1e
  52. # --
  53. # définit l'action par défaut lors du démarrage de la connexion:
  54. # ici on lance toujours un rdaemon_startup reset
  55. # --
  56. # définit à quelle carte se connecter (jusqu'à présent nous travaillions
  57. # sur le type de connection: ici, ce qu'il y a à l'autre bout du fil!)
  58. # Ici nous indiquons que le type de notre carte est cortex-m3
  59. # puis qu'elle fonctionne en little endian (ordre des bits d'un mot binaire:
  60. # en Little Endian, le bit de point de plus faible est à gauche)
  61. # ce sera la connexion 0 (par défault)
  62. target cortex_m3 little run_and_init 0
  63. # --
  64. # définit ce qui doit être fait lorsque la connexion est établie.
  65. # Ici nous laissons tourner le programme déjà existant puis l'on s'arrête.
  66. # Nous laissons donc tourner la carte définie par la connexion 0 durant 30ms
  67. run_and_halt_time 0 30
  68. # --
  69. # définit l'espace que peut utiliser le debug sur la carte.
  70. # Ici sur la connexion 0, le debug peut utiliser les 16384 octets commencant à l'adresse
  71. 0x20000000
  72. # nobackup signifie que lorsque q'un programme est envoyé,
  73. # toute la zone de debug est systématiquement réécrite.
  74. working_area 0 0x20000000 16384 nobackup
  75. # --
  76. # définit la zone dans la flash à utiliser
  77. flash bank stm32x 0x08000000 0x00010000 0 0 0
  78.  
2- Ouvrir une nouvelle invite de commande et se placer à nouveau dans le dossier du projet:
cd C:\ARM\projets\ChibiOS_1.0.0\demos\ARMCM3-STM32F103-GCC
puis lancer un nouveau serveur de connexion distante:
  1. openocd-ftd2xx -f C:\ARM\maconf.cfg
  2.  
Cette invite de commande a maintenant créée un serveur distant qui se trouve virtuellement sur la carte. Nous devons à présent nous y connecter pour envoyer notre programme
 
3- Se connecter au serveur distant. Pour cela, -sans fermer la fenêtre actuelle du serveur crée-, ouvrir une nouvelle invite de commande et lancer:
  1. telnet localhost 4444
  2.  
Votre invite de commande s'est transformée en invite de requête sur un serveur distant. Tout ce que vous ferez dans cette fenêtre aura une incidence sur le serveur (la carte) comme le prouve la fenêtre-serveur.
 
4- Pour transférer et lancer le programme, il suffit de lancer la séquence suivante:
  1. soft_reset_halt
  2. wait_halt
  3. poll
  4. flash probe 0
  5. stm32x mass_erase 0
  6. flash write_bank 0 ch.bin 0
  7. soft_reset_halt
  8. resume
  9.  
Cette séquence initialise la carte, efface la mémoire, la remplie avec notre fichier ch.bin puis lance le programme.

Conclusion

Sur votre carte, une petite LED doit s'être mise à clignoter!
Certes cela semble bien peu et décevant au vue de la complexité de la manœuvre. Relativisons!
D'une part cette manœuvre est indépendante de la complexité du code à compiler et transmettre.
D'autres part si l'on ne voit qu'une simple LED il se passe en réalité beaucoup plus! C'est un noyau complet qui tourne et s'exécute la dessous, avec notamment un test et un benchmark de l'ensemble des fonctions.
Pour s'en convaincre, même si je ne décrirai pas la procédure dans l'article, le lecteur est invité à brancher un câble série entre son ordinateur et celui de la carte et d'observer les résultats de cette procédure de test.
 
Utiliser une connexion hyperterminal (Accessoire/Communications/HyperTerminal) en détection automatique sur le bon port COM :
- baudrate: 38400
- bit de stop: 1
- aucune parité
- pas de contrôle de flux
La procédure de test démarre lorsque l'on appuie sur le bouton poussoir.
 
 
Votre note : Aucun(e) Moyenne : 3.7 (13 votes)

Commentaires

Portrait de Walteradals

Любое строительство начинается с земляных работ. Это может быть подготовка выемки под фундамент, рытье траншей для коммуникаций, погрузка и вывоз грунта, благоустройство прилегающей территории. Кроме того, не всегда работы начинаются на подготовленной площадке. Иногда необходимо предварительно освободить ее от предыдущих застроек, вывезти строительный мусор и разровнять площадку для последующего строительства. Такая первичная подготовка очень важна для будущей постройки. От рациональности проведения земляных работ напрямую зависит срок эксплуатации будущего сооружения. Неспроста трудоемкость земляных работ составляет около 20% от общих трудозатрат, а денежные расходы этой части строительной сметы составляют примерно 15% от общей сметы.
Земляные работы могут осуществляться с использованием физического труда рабочего или с помощью автоматизированных механизмов. Ручной труд уместно применять, если необходимо выполнить небольшой объем работ на участке с легким грунтом или если нет технической возможности доставить оборудование на место проведения работ. В противном случае целесообразно будет прибегнуть к помощи техники — это обеспечит более быстрое и качественное выполнение задачи.
Качество выполнения земляных работ во многом зависит от того, какая техника будет работать на участке. Современная техника призвана сделать трудовой процесс максимально удобным. В зависимости от вида и стадии работ, на строительстве бывают необходимы самосвалы, погрузчики, экскаваторы. Не каждый застройщик готов приобрести в собственность весь это автопарк, но есть возможность взять технику в аренду на время проведения земляных работ.
Мы готовы предоставить вам всю необходимую спецтехнику на период проведения земляных работ. В нашем распоряжении имеются современные рабочие машины, оснащенные по последнему слову техники.
Разработка котлована и вывоз грунта — основной вид работ на любой строительной площадке, поэтому сложно представить строительную площадку без использования самосвалов или грузовиков. Грузоподъемность самосвала меньше, чем обычного грузовика, но функциональность намного больше. Аренда самосвалов значительно сокращает временные и человеческие затраты на разгрузочные работы. Нашей организацией осуществляется аренда самосвалов Scania, Man и Камаз с объемами кузова от 15 до 26 кубометров.
Для оптимизации рабочего процесса любые погрузочные работы осуществляют с помощью современной техники. Аренда экскаватора-погрузчика — рациональное решение, которое сэкономит время и затраты на оплату труда разнорабочих. Если возникла необходимость просто погрузить и вывезти строительный мусор или грунт, то аренда погрузчика BOBCAT для вас - оптимальный вариант. Малогабаритный и одновременно мощный агрегат эффективно справляется с возложенными на него задачами с помощью сменного навесного оборудования. Посредством смены рабочего оборудования погрузчик можно трансформировать в траншеекопатель, каток, снегоочиститель, культиватор, бетоносмеситель.
Дороже обойдется аренда экскаватора-погрузчика JCB 3cx — это один из самых передовых погрузчиков в мире. Чудо техники британского производства способно эффективно работать практически в любых климатических условиях. Погрузчик обладает хорошей проходимостью за счет одинакового размера задних и передних колес. Модель JCB 3cx работает с любыми видами грунта: камень, щебенка, песок, уголь и другие материалы не составляют для него трудностей. Кроме совершенствования рабочих качеств, британские машиностроители особое внимание уделили эргономике модели, благодаря чему JCB 3cx отличается легкостью в управлении.
Дополнительно возможна аренда вспомогательного оборудования:
1) гидравлический молот;
2) траншейный ковш шириной 0,3 м;
3) грейфер.
Вся предлагаемая нами техника пребывала в эксплуатации не более 3-х лет, что гарантирует ее надежность и работоспособность. При необходимости ускорить строительный процесс мы можем сотрудничать с вами круглосуточно в трехсменном режиме.
Перейти аренда эксковатора погрузчика JCB 3cx

Utilisateur non enregistré

viagra without prescription viagra without prescription viagra without a doctor prescription viagra without prescription

Utilisateur non enregistré

Заказал комплексные услуги продвижения здесь и остался доволен. Всем советую!

Portrait de StevieAdect
Portrait de FrankWeelo
Utilisateur non enregistré

Ngay cả khi Titan gel không giúp tăng dương vật của bạn với kích thước mong muốn, sau đó, trong những gì tôi có thể chắc chắn, sẽ cải thiện hiệu lực của bạn, trong bất kỳ trường hợp nào, điều quan trọng là!
Tất cả giấy chứng nhận phù hợp được gửi trong hộp với thuốc, kiểm tra qua Internet - mọi thứ đều theo thứ tự.
Kem, trước khi đi vào hoạt động, đã được thử nghiệm lâm sàng trên động vật và tình nguyện viên. Trong 94 trường hợp, chiều dài mong muốn của dương vật thu được trong vòng 2 tháng.
Bạn có thể ghé thăm trang web chính thức của nhà sản xuất và nhà cung cấp kem Titan Gel:
[url=http://titangelvn.wikidot.com/]http://titangelvn.wikidot.com/[/url]

Utilisateur non enregistré

order by phone cheap cialis out of date cialis cialis einfach kaufen de buy cialis cialis 20 mg internet Buy Cheap Cialis in us cialis sales u cyalis

Portrait de PatrickSaunc

В жизни могут случиться различные ситуации, где человек не знает, как себя вести. Иногда без помощи со стороны не справится. Чтобы быть готовым к этому, всегда нужно знать контакты людей, которые могут помочь в этих ситуациях.
Одна из самых неприятных ситуаций – уголовное производство. Конечно может быть что угодно, и вы можете быть кем угодно, но адвокат всегда может пригодиться.
Каждый человек нашей страны имеет право на защиту со стороны законодательства. Это означает, что те люди, которых задерживает полиция, независимо от того, в каком преступлении подозревается человек, он имеет право получить квалифицированную помощь от адвоката. Конечно, можно понадеяться, что следователь отыщет бесплатного защитника, но это время и нет гарантий, что ваши права будут защищены на высшем уровне. Ведь ситуации бывают разные, а выпутываться из обстоятельств нужно сразу, с минимальными последствиями.
Поэтому не нужно ждать что кто то назначенный станет решать бесплатно ваши проблемы. В сложных ситуациях вам нужен адвокат по уголовным делам. Воронеж – город, который предоставит вам такого человека. Посетите портал http://advokat36vrn.ru/ugolovnoe/ и вы убедитесь, что вашим делом будет заниматься настоящий профессионал.
С самых первых страниц портала вы начнете принимать полезную информацию о том, как вести себя в сложившейся ситуации, самое главное не принимать никаких решений самостоятельно и не подписывать никаких бумаг без согласования.
В уголовном процессе каждое слово и действие имеют значение, и может использовано по делу, как доказательство. Согласно предписаниям статьи 75 УПК РФ показания, которые были получены в процессе расследования, могут быть использованы и, скорее всего, будут использоваться в качестве доказательств. Давже в том случае если уже по завершению следствия обвиняемый откажется от своих показаний, ничего не поможет.
Если вы привлекли к делу адвоката не сразу, то необходимо все максимально точно рассказать и вспомнить, какие документы подписывали и что рассказывали следователям и другим сотрудникам полиции.
Нужно помнить, что уголовный адвокат в воронеже поможет лишь в том случае, когда вы будете четко следовать его указаниям. В работе вашего защитника очень важно доверие и сотрудничество. Не бойтесь рассказать даже самое сокровенное. Никакие ваши тайны адвокат не расскажет, ведь вся полученная информация является конфиденциальной. К функциям защитника относится и сохранение информации, которая была получена в ходе общения с клиентом.
Конечно не нужно надеяться на то, что при обращении к адвокату решаться все проблемы сразу в один миг. Каждое уголовное дело уникально и не может быть одного пути. Каждая деталь важна, нет неважных нюансов, все обстоятельства необходимы для воссоздания полной картины и поиска нужных фактов.
Если ваш защитник с ходу начинает обещать вам быстрый вариант решения и не спешит анализировать детали, то ищите другого адвоката. Каждое дело требует длительного изучения и на начальных стадиях никто не сможет гарантировать позитивного исхода.
Хороший адвокат по уголовным делам изначально разрабатывает вместе со своим клиентом особую стратегию, которой неукоснительно следует на протяжении всего процесса ведя его к положительному результату.
В огромном перечне услуг оказывемых адвокатом можно выделить следующие позиции:

- осуществление защиты на досудебном следствии;
- защита интересов потерпевших;
- представительство потерпевших и свидетелей на различных стадиях;
- написание исков и участие в уголовном процессе от имени гражданских истцов, ответчиков;
- составление различных процессуальных документов.

На данный момент рынок услуг просто пестрит предложениями по решению уголовных вопросов, но не все они качественные. Заходите на сайт http://advokat36vrn.ru/ugolovnoe/ и получайте только лучшие консультации. Доверьте представительство своих интересов профессионалам, ведь в уголовном процессе нет времени менять адвокатов, нужно сразу начинать борьбу на результат.
Перейти телефон адвоката по уголовным делам воронеж