Re: [Avr-list] Aversive sur dspic33
> Si si, il est tout à fait possible d'utiliser la toolchain mcc30 comme > toute autre toolchain, avec des Makefiles classiques et compagnie. > C'est juste que pour le moment ce travail n'a pas été fait de notre > côté. aha ça change tout alors :) Bon je garde le patch sur le feu de toute manière, dès que j'aurai remis un peu d'ordre sur les serveurs je ressortirai mon proto de framework du fond de mes disques. Olivier ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
Re: [Avr-list] Aversive sur dspic33
2009/7/14 Simon Derr > Bonjour Olivier, > > > Par contre, je t'avoue que j'hésite à l'intégrer tel quel : > > - la séparation entre les deux architectures est un peu > >trop floue. Dans mes rêves les plus fous, il y aurait > >un repertoire arch/ et un nouveau framework qui saurait > >gérer ça proprement. Même si j'ai commencé à faire un > >proto l'an dernier (basé sur les Makefiles du kernel > >linux-2.6), il reste beaucoup de travail pour finaliser > >ce prototype. > En fait je n'ai pas envoyé le patch pour qu'il soit intégré tel quel. > C'est surtout, disons, un point de départ :) > C'est aussi pour montrer, comme tu l'as remarqué, que le patch est > finalement assez petit. > Comme Simon vient de le dire, le patch est un bon point de depart pour jauger les modifications a faire. On a commence a discuter un peu de notre cote pour modifier un peu l'arborescence d'Aversive, pour prendre en compte les architectures, et la discussion actuelle sur avr-list est la pour recueillir l'avis de tous les utilisateurs (et createurs ;) a ce sujet. Par exemple: aversive - commun - - schelduler - - filtres - - trajectoire - AVR - - fonctions_de_base - - interruptions_appel_schelduler - - pwm - - encoder - DSPIC - - fonctions_de_base - - interruptions_appel_schelduler - - pwm - - encoder etc... > > > - tu dis qu'il manque dans le patch un système de build et > >que tout est mis en dur dans MPLAB. > >Si j'ai bien compris (corrige moi si je me trompe), il > >n'est pas possible d'utiliser le compilateur dspic de > >la même manière qu'une toolchain classique ? Est-ce qu'on > >pourrait imaginer par exemple de compiler pour dspic en > >remplaçant avr-gcc par "dspic-gcc" ? > Si si, il est tout à fait possible d'utiliser la toolchain mcc30 comme > toute autre toolchain, avec des Makefiles classiques et compagnie. > C'est juste que pour le moment ce travail n'a pas été fait de notre > côté. > >Simon > -- Julien Le Guen ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
Re: [Avr-list] Aversive sur dspic33
Bonjour Olivier, > Par contre, je t'avoue que j'hésite à l'intégrer tel quel : > - la séparation entre les deux architectures est un peu > trop floue. Dans mes rêves les plus fous, il y aurait > un repertoire arch/ et un nouveau framework qui saurait > gérer ça proprement. Même si j'ai commencé à faire un > proto l'an dernier (basé sur les Makefiles du kernel > linux-2.6), il reste beaucoup de travail pour finaliser > ce prototype. En fait je n'ai pas envoyé le patch pour qu'il soit intégré tel quel. C'est surtout, disons, un point de départ :) C'est aussi pour montrer, comme tu l'as remarqué, que le patch est finalement assez petit. > - tu dis qu'il manque dans le patch un système de build et > que tout est mis en dur dans MPLAB. > Si j'ai bien compris (corrige moi si je me trompe), il > n'est pas possible d'utiliser le compilateur dspic de > la même manière qu'une toolchain classique ? Est-ce qu'on > pourrait imaginer par exemple de compiler pour dspic en > remplaçant avr-gcc par "dspic-gcc" ? Si si, il est tout à fait possible d'utiliser la toolchain mcc30 comme toute autre toolchain, avec des Makefiles classiques et compagnie. C'est juste que pour le moment ce travail n'a pas été fait de notre côté. Simon ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
Re: [Avr-list] Aversive sur dspic33
Salut Simon, J'ai enfin pris le temps de regarder ton patch en détails -- c'est pas trop tôt, mais bon c'est l'été alors j'ai une excuse ;) -- D'abord merci de remonter tes modifications, ça fait plaisir de voir qu'au finales les modifications pour faire compiler aversive sur un autre microcontrôleur ne sont pas si énormes. Par contre, je t'avoue que j'hésite à l'intégrer tel quel : - la séparation entre les deux architectures est un peu trop floue. Dans mes rêves les plus fous, il y aurait un repertoire arch/ et un nouveau framework qui saurait gérer ça proprement. Même si j'ai commencé à faire un proto l'an dernier (basé sur les Makefiles du kernel linux-2.6), il reste beaucoup de travail pour finaliser ce prototype. - tu dis qu'il manque dans le patch un système de build et que tout est mis en dur dans MPLAB. Si j'ai bien compris (corrige moi si je me trompe), il n'est pas possible d'utiliser le compilateur dspic de la même manière qu'une toolchain classique ? Est-ce qu'on pourrait imaginer par exemple de compiler pour dspic en remplaçant avr-gcc par "dspic-gcc" ? Celà dit, l'idée même qu'aversive puisse devenir multiplateforme me plaît beaucoup, j'ai juste un peu peur de m'embarquer dans une tâche un peu complexe qui n'apportera pas forcément beaucoup aux utilisateurs (et à moi aussi, il faut bien le reconnaître) ;) Comme je le diais sur cette liste il y a quelques mois, d'autres personnes ont également utilisé aversive sur d'autres uC, notamment Monstralopytech qui utiliser un Freescale 68360 et Projet & Tech' qui ont utilisé des PSoC (cypress). Je n'ai pas vraiment d'expérience sur ces architectures, mais s'il est possible d'utiliser le compilateur hors de l'IDE fourni par le fabricant, et de l'intégrer au framework d'aversive, alors je pense que ça peut valoir le coup de le faire. C'est précisémment ce que j'apprécie avec la toolchain avr-gcc / avr-binutils / avr-libc. Je suis preneur d'avis externes s'il y en a ! A+ Olivier Simon Derr wrote: > Je disais donc... > >> Bref, assez de blabla, voici le patch. (en fichier attaché). > > >Simon > > > > > ___ > Avr-list mailing list > Avr-list@droids-corp.org > CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive > WIKI : http://wiki.droids-corp.org/index.php/Aversive > DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ > BUGZILLA : http://bugzilla.droids-corp.org > COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
Re: [Avr-list] Aversive sur dspic33
2009/7/3 GMail : > Salut, > Juste une petite question : pourquoi avoir porté Aversive sur cette > architecture ? Nous avions commencé a envisager cette possibilité pour la > facilité que le module QEI fournissait, mais au final nous nous sommes > rendus compte qu'une solution plus rapide est d'utiliser un compteur > externe, cette solution a en plus l'avantage d'être extensible a volonté, > simplement en ajoutant des puces au bus SPI. > Donc quel est l'avantage de porter aversive ? C'est un défi technique ? On a juste fait le cheminement inverse : on avait choisi le dspic (il faut dire qu'à l'époque Microchip n'avait pas encore changé sa politique de samples) et vu qu'au final on a dû réaliser notre carte asservissement sur une plaque pastillée, avoir tout intégré dans une seule puce en PDIP est quand même bien confortable. Là dessus on a recruté JLG qui nous a dit "Allez, aversive, en plus c'est fait par des potes à moi" (libre à vous maintenant de démentir ;)) Simon ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
Re: [Avr-list] Aversive sur dspic33
Fait comme moi pour ceux qui n jurent que par les pics: tu leur montre une Arduino, tu leur expliques a quel point la programmation de Mcu est simple, tu t'arrange pour en mettre tout plein dans le robot (pour cette étape, t'es avantage si comme nous t'as pas d'elec pour faire les cartes lui même :p), puis tu leur montres comme Aversive fait tout, de la comm a la regulation en passant par l'evitement d'obstacle (quoi, ça fait pas le café ?:D). Et après, l'étape "choix de l'architecture du processeur" est réglée :D En plus sur Mac, tu peux pas utiliser les PICs ! (ok je sors) Antoine Le 3 juil. 2009 à 23:15, Julien Le Guen a écrit : 2009/7/3 GMail Salut, Juste une petite question : pourquoi avoir porté Aversive sur cette architecture ? Nous avions commencé a envisager cette possibilité po ur la facilité que le module QEI fournissait, mais au final nous nou s sommes rendus compte qu'une solution plus rapide est d'utiliser un compteur externe, cette solution a en plus l'avantage d'être extens ible a volonté, simplement en ajoutant des puces au bus SPI. Donc quel est l'avantage de porter aversive ? C'est un défi techniqu e ? J'avoue, c'est de ma faute :D Je suis un AVRien a la base, j'utilise Aversive depuis 2007 je crois, mais chez Igrebot les elecs sont plutot PIC. Je leur ai vante les charmes d'aversive, montre une photo de zer0 a poil et hop, portage en cours :D Plus serieusement, aversive a des tas d'avantages par rapport aux libs fournies par MPLAB et consors, outre le fait que je connaisse deja et que la courbe d'apprentissage est pas (trop) violente. -- Jlg Igrebot 2009, Esial 2005-2007 A+ Antoine Le 3 juil. 2009 à 21:10, Simon Derr a écrit : Salut la jeunesse, Comme certains d'entre vous le savent déjà, mon équipe (I-Grebot) a effectué un portage d'aversive sur dspic33 pour la coupe cette anné e. (dspic33fj128mc802) L'idée étant que ça puisse servir à d'autres, nous espérons que ce travail pourrait à terme être intégré dans aversive. Dans cette optique j'ai tenté de réduire au maximum l'écart entre notre code et ce qui m'a semblé être la version la plus récente des sources officielles (snapshot de la branche b_zer0 du 30 juin). Le code fonctionne en l'état mais il manque dans le patch certaines choses, à savoir surtout un système de build (nous avons pour le moment tout mis en dur dans MPLAB...) et de configuration. Bref, assez de blabla, voici le patch. (en fichier attaché). Simon include/aversive.h | 31 +- include/aversive/irq_lock.h | 17 + include/aversive/parts.h |2 include/dspic/inttypes.h | 13 include/dspic/stdint.h |4 modules/base/scheduler/scheduler.c | 30 ++ modules/devices/encoders/encoders_igrebot/config/ encoders_igrebot_config.h | 33 ++ modules/devices/encoders/encoders_igrebot/encoders_igrebot.c | 115 modules/devices/encoders/encoders_igrebot/encoders_igrebot.h | 47 +++ modules/devices/robot/position_manager/position_manager.c |2 modules/devices/robot/trajectory_manager/trajectory_manager.c | 10 modules/devices/robot/trajectory_manager/trajectory_manager.h |3 modules/hardware/pwm_igrebot/config/pwm_config.h | 52 +++ modules/hardware/pwm_igrebot/pwm_igrebot.c | 136 ++ modules/hardware/pwm_igrebot/pwm_igrebot.h | 54 +++ 15 files changed, 540 insertions(+), 9 deletions(-) ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog -- Julien Le Guen ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
Re: [Avr-list] Aversive sur dspic33
Il faut dire aussi que c'est une bonne manière de passer progressivement à des uC sérieux comme les AVR. :D JD, pour le troll. 2009/7/3 Julien Le Guen : > > > 2009/7/3 GMail >> >> Salut, >> Juste une petite question : pourquoi avoir porté Aversive sur cette >> architecture ? Nous avions commencé a envisager cette possibilité pour la >> facilité que le module QEI fournissait, mais au final nous nous sommes >> rendus compte qu'une solution plus rapide est d'utiliser un compteur >> externe, cette solution a en plus l'avantage d'être extensible a volonté, >> simplement en ajoutant des puces au bus SPI. >> Donc quel est l'avantage de porter aversive ? C'est un défi technique ? > > J'avoue, c'est de ma faute :D > > Je suis un AVRien a la base, j'utilise Aversive depuis 2007 je crois, mais > chez Igrebot les elecs sont plutot PIC. > Je leur ai vante les charmes d'aversive, montre une photo de zer0 a poil et > hop, portage en cours :D > > Plus serieusement, aversive a des tas d'avantages par rapport aux libs > fournies par MPLAB et consors, outre le fait que je connaisse deja et que la > courbe d'apprentissage est pas (trop) violente. > > > -- > Jlg > Igrebot 2009, Esial 2005-2007 > >> >> A+ >> >> Antoine >> >> Le 3 juil. 2009 à 21:10, Simon Derr a écrit : >> >>> Salut la jeunesse, >>> >>> Comme certains d'entre vous le savent déjà, mon équipe (I-Grebot) a >>> effectué un portage d'aversive sur dspic33 pour la coupe cette année. >>> (dspic33fj128mc802) >>> >>> L'idée étant que ça puisse servir à d'autres, nous espérons que ce >>> travail pourrait à terme être intégré dans aversive. >>> >>> Dans cette optique j'ai tenté de réduire au maximum l'écart entre >>> notre code et ce qui m'a semblé être la version la plus récente des >>> sources officielles (snapshot de la branche b_zer0 du 30 juin). >>> >>> Le code fonctionne en l'état mais il manque dans le patch certaines >>> choses, à savoir surtout un système de build (nous avons pour le >>> moment tout mis en dur dans MPLAB...) et de configuration. >>> >>> Bref, assez de blabla, voici le patch. (en fichier attaché). >>> >>> Simon >>> >>> include/aversive.h >>> | 31 +- >>> include/aversive/irq_lock.h >>> | 17 + >>> include/aversive/parts.h >>> | 2 >>> include/dspic/inttypes.h >>> | 13 >>> include/dspic/stdint.h >>> | 4 >>> modules/base/scheduler/scheduler.c >>> | 30 ++ >>> >>> modules/devices/encoders/encoders_igrebot/config/encoders_igrebot_config.h >>> | 33 ++ >>> modules/devices/encoders/encoders_igrebot/encoders_igrebot.c >>> | 115 >>> modules/devices/encoders/encoders_igrebot/encoders_igrebot.h >>> | 47 +++ >>> modules/devices/robot/position_manager/position_manager.c >>> | 2 >>> modules/devices/robot/trajectory_manager/trajectory_manager.c >>> | 10 >>> modules/devices/robot/trajectory_manager/trajectory_manager.h >>> | 3 >>> modules/hardware/pwm_igrebot/config/pwm_config.h >>> | 52 +++ >>> modules/hardware/pwm_igrebot/pwm_igrebot.c >>> | 136 ++ >>> modules/hardware/pwm_igrebot/pwm_igrebot.h >>> | 54 +++ >>> 15 files changed, 540 insertions(+), 9 deletions(-) >>> >>> ___ >>> Avr-list mailing list >>> Avr-list@droids-corp.org >>> CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive >>> WIKI : http://wiki.droids-corp.org/index.php/Aversive >>> DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ >>> BUGZILLA : http://bugzilla.droids-corp.org >>> COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog >> >> ___ >> Avr-list mailing list >> Avr-list@droids-corp.org >> CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive >> WIKI : http://wiki.droids-corp.org/index.php/Aversive >> DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ >> BUGZILLA : http://bugzilla.droids-corp.org >> COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog > > > -- > Julien Le Guen > > ___ > Avr-list mailing list > Avr-list@droids-corp.org > CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive > WIKI : http://wiki.droids-corp.org/index.php/Aversive > DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ > BUGZILLA : http://bugzilla.droids-corp.org > COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog > ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
Re: [Avr-list] Aversive sur dspic33
2009/7/3 GMail > Salut, > Juste une petite question : pourquoi avoir porté Aversive sur cette > architecture ? Nous avions commencé a envisager cette possibilité pour la > facilité que le module QEI fournissait, mais au final nous nous sommes > rendus compte qu'une solution plus rapide est d'utiliser un compteur > externe, cette solution a en plus l'avantage d'être extensible a volonté, > simplement en ajoutant des puces au bus SPI. > Donc quel est l'avantage de porter aversive ? C'est un défi technique ? > J'avoue, c'est de ma faute :D Je suis un AVRien a la base, j'utilise Aversive depuis 2007 je crois, mais chez Igrebot les elecs sont plutot PIC. Je leur ai vante les charmes d'aversive, montre une photo de zer0 a poil et hop, portage en cours :D Plus serieusement, aversive a des tas d'avantages par rapport aux libs fournies par MPLAB et consors, outre le fait que je connaisse deja et que la courbe d'apprentissage est pas (trop) violente. -- Jlg Igrebot 2009, Esial 2005-2007 > > A+ > > Antoine > > Le 3 juil. 2009 à 21:10, Simon Derr a écrit : > > Salut la jeunesse, >> >> Comme certains d'entre vous le savent déjà, mon équipe (I-Grebot) a >> effectué un portage d'aversive sur dspic33 pour la coupe cette année. >> (dspic33fj128mc802) >> >> L'idée étant que ça puisse servir à d'autres, nous espérons que ce >> travail pourrait à terme être intégré dans aversive. >> >> Dans cette optique j'ai tenté de réduire au maximum l'écart entre >> notre code et ce qui m'a semblé être la version la plus récente des >> sources officielles (snapshot de la branche b_zer0 du 30 juin). >> >> Le code fonctionne en l'état mais il manque dans le patch certaines >> choses, à savoir surtout un système de build (nous avons pour le >> moment tout mis en dur dans MPLAB...) et de configuration. >> >> Bref, assez de blabla, voici le patch. (en fichier attaché). >> >> Simon >> >> include/aversive.h >>| 31 +- >> include/aversive/irq_lock.h >>| 17 + >> include/aversive/parts.h >>|2 >> include/dspic/inttypes.h >>| 13 >> include/dspic/stdint.h >>|4 >> modules/base/scheduler/scheduler.c >>| 30 ++ >> modules/devices/encoders/encoders_igrebot/config/encoders_igrebot_config.h >> | 33 ++ >> modules/devices/encoders/encoders_igrebot/encoders_igrebot.c >>| 115 >> modules/devices/encoders/encoders_igrebot/encoders_igrebot.h >>| 47 +++ >> modules/devices/robot/position_manager/position_manager.c >>|2 >> modules/devices/robot/trajectory_manager/trajectory_manager.c >>| 10 >> modules/devices/robot/trajectory_manager/trajectory_manager.h >>|3 >> modules/hardware/pwm_igrebot/config/pwm_config.h >>| 52 +++ >> modules/hardware/pwm_igrebot/pwm_igrebot.c >>| 136 ++ >> modules/hardware/pwm_igrebot/pwm_igrebot.h >>| 54 +++ >> 15 files changed, 540 insertions(+), 9 deletions(-) >> >> ___ >> Avr-list mailing list >> Avr-list@droids-corp.org >> CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive >> WIKI : http://wiki.droids-corp.org/index.php/Aversive >> DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ >> BUGZILLA : http://bugzilla.droids-corp.org >> COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog >> > > ___ > Avr-list mailing list > Avr-list@droids-corp.org > CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive > WIKI : http://wiki.droids-corp.org/index.php/Aversive > DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ > BUGZILLA : http://bugzilla.droids-corp.org > COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog -- Julien Le Guen ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
Re: [Avr-list] Aversive sur dspic33
Salut, Juste une petite question : pourquoi avoir porté Aversive sur cette architecture ? Nous avions commencé a envisager cette possibilité pour la facilité que le module QEI fournissait, mais au final nous nous sommes rendus compte qu'une solution plus rapide est d'utiliser un compteur externe, cette solution a en plus l'avantage d'être extensible a volonté, simplement en ajoutant des puces au bus SPI. Donc quel est l'avantage de porter aversive ? C'est un défi technique ? A+ Antoine Le 3 juil. 2009 à 21:10, Simon Derr a écrit : Salut la jeunesse, Comme certains d'entre vous le savent déjà, mon équipe (I-Grebot) a effectué un portage d'aversive sur dspic33 pour la coupe cette anné e. (dspic33fj128mc802) L'idée étant que ça puisse servir à d'autres, nous espérons que ce travail pourrait à terme être intégré dans aversive. Dans cette optique j'ai tenté de réduire au maximum l'écart entre notre code et ce qui m'a semblé être la version la plus récente des sources officielles (snapshot de la branche b_zer0 du 30 juin). Le code fonctionne en l'état mais il manque dans le patch certaines choses, à savoir surtout un système de build (nous avons pour le moment tout mis en dur dans MPLAB...) et de configuration. Bref, assez de blabla, voici le patch. (en fichier attaché). Simon include/aversive.h | 31 +- include/aversive/irq_lock.h | 17 + include/aversive/parts.h |2 include/dspic/inttypes.h | 13 include/dspic/stdint.h |4 modules/base/scheduler/scheduler.c | 30 ++ modules/devices/encoders/encoders_igrebot/config/ encoders_igrebot_config.h | 33 ++ modules/devices/encoders/encoders_igrebot/encoders_igrebot.c | 115 modules/devices/encoders/encoders_igrebot/encoders_igrebot.h | 47 +++ modules/devices/robot/position_manager/position_manager.c |2 modules/devices/robot/trajectory_manager/trajectory_manager.c | 10 modules/devices/robot/trajectory_manager/trajectory_manager.h |3 modules/hardware/pwm_igrebot/config/pwm_config.h | 52 +++ modules/hardware/pwm_igrebot/pwm_igrebot.c | 136 ++ modules/hardware/pwm_igrebot/pwm_igrebot.h | 54 +++ 15 files changed, 540 insertions(+), 9 deletions(-) ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog ___ Avr-list mailing list Avr-list@droids-corp.org CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive WIKI : http://wiki.droids-corp.org/index.php/Aversive DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/ BUGZILLA : http://bugzilla.droids-corp.org COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
Re: [Avr-list] Aversive sur dspic33
Je disais donc... > Bref, assez de blabla, voici le patch. (en fichier attaché). Simon diff -uNr -x .svn -x '*.o' ../../orig/aversive/include/aversive/irq_lock.h aversive/include/aversive/irq_lock.h --- ../../orig/aversive/include/aversive/irq_lock.h 2007-05-23 19:18:09.0 +0200 +++ aversive/include/aversive/irq_lock.h2009-07-03 20:48:29.0 +0200 @@ -40,6 +40,22 @@ #ifndef _AVERSIVE_IRQ_LOCK_H_ #define _AVERSIVE_IRQ_LOCK_H_ +#ifdef DSPIC +#include "p33f.h" +#define GLOBAL_IRQ_ARE_MASKED() (!(SRbits.IPL==7)) + +#define IRQ_LOCK(flags) do { \ + flags = SRbits.IPL ; \ + cli(); \ + } while(0) + +#define IRQ_UNLOCK(flags) do { \ + SRbits.IPL = flags;\ + } while ( 0 ) + +#else + + #ifdef HOST_VERSION /* we must use 'flags' to avoid a warning */ @@ -62,4 +78,5 @@ #endif /* ! HOST_VERSION */ +#endif /* ! DSPIC */ #endif /* _AVERSIVE_IRQ_LOCK_H_ */ diff -uNr -x .svn -x '*.o' ../../orig/aversive/include/aversive/parts.h aversive/include/aversive/parts.h --- ../../orig/aversive/include/aversive/parts.h2009-01-23 23:53:08.0 +0100 +++ aversive/include/aversive/parts.h 2009-07-03 20:48:29.0 +0200 @@ -269,7 +269,9 @@ #elif defined (__AVR_ATxmega64A3__) #include #else +#ifndef DSPIC #error "This arch is not implemented yet" #endif +#endif #endif /* _AVERSIVE_PARTS_H_ */ diff -uNr -x .svn -x '*.o' ../../orig/aversive/include/aversive.h aversive/include/aversive.h --- ../../orig/aversive/include/aversive.h 2009-05-18 14:19:51.0 +0200 +++ aversive/include/aversive.h 2009-07-03 20:48:29.0 +0200 @@ -29,10 +29,14 @@ #define _AVERSIVE_H_ #include +#include #ifndef HOST_VERSION -#include -#include +# ifndef DSPIC +#define AVR +#include +#include +# endif #endif #include @@ -44,19 +48,27 @@ #define __AVR_LIBC_VERSION__ 0UL #endif -#ifndef HOST_VERSION +#ifdef AVR #if __AVR_LIBC_VERSION__ < 10403UL #include #endif #endif -#define F_CPU ((unsigned long)CONFIG_QUARTZ) +#ifdef DSPIC +# define F_CPU ((CONFIG_QUARTZ)/2) /* Do NOT make it unsigned, it breaks S_MAX(). */ +# define FCY F_CPU +#else +# define F_CPU ((unsigned long)CONFIG_QUARTZ) +#endif #define Hz 1l #define KHz 1000l #define MHz 100l +#ifndef M_PI +# define M_PI 3.141592653589 +#endif /* * a few "mathematical" macros : maximums and minimums @@ -193,7 +205,7 @@ /* a few asm utilities */ -#ifndef HOST_VERSION +#ifdef AVR #ifndef nop #define nop() __asm__ __volatile__ ("NOP\n") /** nop instruction, 1 CPU cycle consumed */ #endif @@ -215,14 +227,21 @@ __asm__ __volatile__ ("ijmp\n"); \ } while(0) #endif +#endif /* AVR */ -#else /* HOST_VERSION */ +#ifdef HOST_VERSION #define nop() do {} while(0) #define nothing() do {} while(0) #define cli() do {} while(0) #define sei() do {} while(0) #endif /* HOST_VERSION */ +#ifdef DSPIC +# define nop() do {__asm__ volatile ("nop");} while(0) +# define nothing() do {} while(0) +# define cli() do {SRbits.IPL=7;} while(0) +# define sei() do {SRbits.IPL=0;} while(0) +#endif /* DSPIC */ /** * little bit toggeling macro * diff -uNr -x .svn -x '*.o' ../../orig/aversive/include/dspic/inttypes.h aversive/include/dspic/inttypes.h --- ../../orig/aversive/include/dspic/inttypes.h1970-01-01 01:00:00.0 +0100 +++ aversive/include/dspic/inttypes.h 2009-07-02 18:52:14.0 +0200 @@ -0,0 +1,13 @@ +#ifndef DSPIC_INTTYPES_H +#define DSPIC_INTTYPES_H + +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed int int16_t; +typedef unsigned int uint16_t; +typedef signed long int int32_t; +typedef unsigned long int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; + +#endif diff -uNr -x .svn -x '*.o' ../../orig/aversive/include/dspic/stdint.h aversive/include/dspic/stdint.h --- ../../orig/aversive/include/dspic/stdint.h 1970-01-01 01:00:00.0 +0100 +++ aversive/include/dspic/stdint.h 2009-07-03 20:48:29.0 +0200 @@ -0,0 +1,4 @@ +#ifndef DSPIC_STDINT_H +#define DSPIC_STDINT_H + +#endif diff -uNr -x .svn -x '*.o' ../../orig/aversive/modules/base/scheduler/scheduler.c aversive/modules/base/scheduler/scheduler.c --- ../../orig/aversive/modules/base/scheduler/scheduler.c 2009-01-29 00:26:01.0 +0100 +++ aversive/modules/base/scheduler/scheduler.c 2009-07-03 20:48:30.0 +0200 @@ -21,15 +21,15 @@ #include -#include #include +#include #include #include #include -/* this file is compiled for AVR version only */ +/* this file is compiled for AVR/DSPIC versions only */ /** declared in scheduler_host.c in case of host version */ struct event_t g_tab_event[SCHEDULER_NB_MAX_EVENT]; @@ -39,6 +39,18 @@ { memset(g_tab_event, 0, sizeof(g_tab_event)); + +#ifdef DSPIC + /* Scheduler uses timer1 on dspic33 */ + T1CON = 0;