Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2036 connectés 

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  21324  21325  21326  ..  27185  27186  27187  27188  27189  27190
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°2239858
ratibus
Posté le 08-10-2014 à 20:24:38  profilanswer
 

Reprise du message précédent :

gfive a écrit :


Bon, ils me proposent 48k et pas de prime.... Je suis doute.


C'est ce que t'avais demandé non ? (flemme de relire l'histo :D)

mood
Publicité
Posté le 08-10-2014 à 20:24:38  profilanswer
 

n°2239859
gfive
Posté le 08-10-2014 à 20:34:51  profilanswer
 

ratibus a écrit :


C'est ce que t'avais demandé non ? (flemme de relire l'histo :D)


48 oui. Après j'aurais pas dot non a la prime en plus :o

 

Mais entre temps y'a eu du mouvement ici... Demain je vais les rappeler pour avoir des détails sur le projet sur lequel ils veulent me mettre au depart .


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2239860
nraynaud
lol
Posté le 08-10-2014 à 21:00:48  profilanswer
 

bon j'ai des moteurs BLDC (avec et sans capteurs), des transistors, des drivers, des MCU avec leur toolchain, des datasheets et des AN, une alim de PC, un multimètre, une chiée de résistances et de condos, des comparateurs, un oscilo 2 voies, une piscine pleine de gelée de groseille et 2 catcheuses naines en bikini.
 
 Je me couche pas tant que j'ai pas un moteur qui tourne en boucle fermée.


---------------
trainoo.com, c'est fini
n°2239861
0x90
Posté le 08-10-2014 à 21:22:20  profilanswer
 

masklinn a écrit :


Là je vois pas comment ça pourrait arriver sauf bug dans l'implé. En lisant la spec, je vois pas de condition qui termineraient en NaN avec un truc qui matcherait StringNumericLiteral, sauf parseInt avec une base invalide...

 

Non mais je cherche plus bas qu'au niveau js et pas spécifiquement dans ce language, quelque part
dans la conversion decimal->binaire des flottants (quelque part au niveau des algos dragon4/grisu3).

 

Intuitivement je me dis que c'est pas possible (on fait juste un changement de base), mais
y'avait peut-être moyen d'exprimer un truc équivalent à 0*inf d'une manière que je voyais pas,
ou quelque chose dans cet esprit.


Message édité par 0x90 le 08-10-2014 à 21:24:19

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°2239864
nraynaud
lol
Posté le 08-10-2014 à 23:36:49  profilanswer
 

le pire truc du monde, c'est googler et tomber sur un serveur d'un ancien prof [:pingouino]


---------------
trainoo.com, c'est fini
n°2239866
nraynaud
lol
Posté le 09-10-2014 à 07:10:14  profilanswer
 

'tain je suis paumé grave.

 

j'ai un registre mapé en mémoire, il est write only, quand j'écris dedans, un truc se passe. Je veux pas que le compilo optimise les write ou fasse le malin sur les sous-expressions. est-ce que volatile est vraiment le bon outil ? ça concerne pas plutôt la lecture ?

Message cité 1 fois
Message édité par nraynaud le 09-10-2014 à 07:52:00

---------------
trainoo.com, c'est fini
n°2239867
beel1
Posté le 09-10-2014 à 07:32:27  profilanswer
 

Si
 
Normalement t'as des pragmas pour ce genre de chose mais c'est compilo-dépendant

n°2239868
beel1
Posté le 09-10-2014 à 07:34:55  profilanswer
 

M'enfin si c'est write-only t'as pas de raison de manipuler ton registre plus que ça

n°2239869
el muchach​o
Comfortably Numb
Posté le 09-10-2014 à 07:39:33  profilanswer
 

Encore une fois, strictement rien compris à ton post.

 

Un registre "mappé en mémoire" ???
"write only" ? Ca veut dire quoi ? Qu'on ne peut pas le lire ? Si oui, à quoi ça sert ?
edit: "The most frequent occurrences of write-only memories are where the memory locations are registers or an integrated circuit being used to control, or pass information to, hardware outside the processor."

 

Moi je comprends volatile comme le fait que le compilo est obligé d'aller lire la variable en RAM avant de l'utiliser et de la mettre à jour aussitôt écrite. Autrement dit, toute modification du registre est aussitôt répercutée sur l'adresse de la variable en RAM alors qu'en temps normal, le compilo pourrait se contenter de mettre à jour cette dernière uniquement à la fin d'une boucle, par exemple. Donc ça désactive effectivement de nombreuses optimisations.

 

Si quelqu'un d'autre a une meilleure explication, je suis intéressé.

Message cité 1 fois
Message édité par el muchacho le 09-10-2014 à 08:03:39

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2239870
nraynaud
lol
Posté le 09-10-2014 à 08:07:35  profilanswer
 

el muchacho a écrit :

Encore une fois, strictement rien compris à ton post.
 
Un registre "mappé en mémoire" ???
"write only" ? Ca veut dire quoi ? Qu'on ne peut pas le lire ? Si oui, à quoi ça sert ?
 
Moi je comprends volatile comme le fait que le compilo est obligé d'aller lire la variable en RAM avant de l'utiliser et de la mettre à jour aussitôt écrite. Autrement dit, toute modification du registre est aussitôt répercutée sur l'adresse de la variable en RAM alors qu'en temps normal, le compilo pourrait se contenter de mettre à jour cette dernière uniquement à la fin d'une boucle, par exemple. Donc ça désactive effectivement de nombreuses optimisations.
 
Si quelqu'un d'autre a une meilleure explication, je suis intéressé.


ben c'est un registre qui a une adresse dans la mémoire. pour écrire dedans, tu écris la mémoire à une adresse spéciale et ça écrit dedans (il hijack simplement le bus).
il est write only parce que quand tu écris, ça change un certain nombre de trucs au niveau du matériel, si tu le lis, tu recevra 0 (garanti). Y'a un autre registre pour voir l'état du matos.
 
 
dans mon cas, c'est le registre set/reset des GPIO. accroche-toi à ton slip.  
Y'a 16 pins dans le groupe. Y'a un registre normal qui reflète l'état des pins tu peux le lire ou l'écrire, mais t'est obligé d'écrire les 32bits d'un coup. Du coup il sert un peu à rien en écriture, si t'es en train de jouer avec 3 pins et que les pins d'à côté sont gérés par un autre sous-système tu vas tout foutre en l'air en écrasant tout d'un coup.
du coup y'a 2 autres mécanismes pour changer l'état des pins.
1) le bit-banding : t'as un endroit ailleurs en mémoire où chaque bit du registre est visible sous forme d'un mot de 32bits. du coup tu peux aller écrire là-dedans et ça va changer que ton bit. Le problème c'est qu'il faut aller changer les pins qui t'intéressent une par une, et du coup c'est pas très atomique et ça peut se voir de l'extérieur.
2) la feinte de l'ours rusé atomique. Y'a un deuxième registre de 32 bits: les 16 bits de poids fort sont les pins que tu veux passer à zéro (reset) et les 16 bits de poids faible sont les pins que tu veux passer à 1 (set). Du coup tous les pins qui n'apparaissent ni dans le demi-mot de reset, ni dans celui de set restent comme ils étaient, mais pour ceux que tu vas changer, c'est simultané. Mais quand tu vas lire là-dedans tu reçois zéro, pour voir l'état des pins il y a le registre normal. Évidemment, il faut surtout pas optimiser les write dans ce registre, écrire une valeur puis immédiatement en écrire une autre a un effet sur le matériel (style au premier write tu reset toute les pins qui t'intéressent et au deuxième coup tu mets ton bit pattern, si y'a un pont en H derrière, il va te dire merci).


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 09-10-2014 à 08:07:35  profilanswer
 

n°2239871
beel1
Posté le 09-10-2014 à 08:20:16  profilanswer
 

Oui donc voilà, tu bufferises ta valeur, tu l'écris dans le registre, et basta

n°2239872
beel1
Posté le 09-10-2014 à 08:53:19  profilanswer
 

M'enfin si tu actives l'optimiseur sur des trucs aussi critiques t'as pas fini de criser [:fing fang fung]

n°2239876
koskoz
They see me trollin they hatin
Posté le 09-10-2014 à 10:31:39  profilanswer
 

Old shit is old : http://cvsweb.openbsd.org/cgi-bin/ [...] web-markup
 
C'est le diff cvs en dessous ? Parce que si c'est le cas j'arrive pas à le lire [:greg2]


---------------
Twitter
n°2239877
R3g
fonctionnaire certifié ITIL
Posté le 09-10-2014 à 10:36:31  profilanswer
 

koskoz a écrit :

Old shit is old : http://cvsweb.openbsd.org/cgi-bin/ [...] web-markup
 
C'est le diff cvs en dessous ? Parce que si c'est le cas j'arrive pas à le lire [:greg2]


non le diff est là : http://cvsweb.openbsd.org/cgi-bin/ [...] 2=1.18&f=h


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2239878
koskoz
They see me trollin they hatin
Posté le 09-10-2014 à 10:41:57  profilanswer
 


 
Merci.


---------------
Twitter
n°2239879
theShockWa​ve
I work at a firm named Koslow
Posté le 09-10-2014 à 11:17:53  profilanswer
 


Tu peux pas t'en sortir avec des barrières mémoires ?
Tu encapsules ton registre dans une classe qui fout des barrières autour des écritures pour toi et ca devrait être tout mignon tout propre


Message édité par theShockWave le 09-10-2014 à 13:54:25

---------------
last.fm
n°2239881
___alt
Posté le 09-10-2014 à 12:37:15  profilanswer
 

FUCK YEAH BIBLE !
 
http://i.imgur.com/7ExUWr4.jpg


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2239885
nraynaud
lol
Posté le 09-10-2014 à 13:04:47  profilanswer
 

nraynaud a écrit :

bon j'ai des moteurs BLDC (avec et sans capteurs), des transistors, des drivers, des MCU avec leur toolchain, des datasheets et des AN, une alim de PC, un multimètre, une chiée de résistances et de condos, des comparateurs, un oscilo 2 voies, une piscine pleine de gelée de groseille et 2 catcheuses naines en bikini.
 
 Je me couche pas tant que j'ai pas un moteur qui tourne en boucle fermée.


ça fait 16h, j'arrive même pas à capter le comportement de la chose en boucle ouverte :/


---------------
trainoo.com, c'est fini
n°2239887
0x90
Posté le 09-10-2014 à 13:54:40  profilanswer
 

beel1 a écrit :

M'enfin si tu actives l'optimiseur sur des trucs aussi critiques t'as pas fini de criser [:fing fang fung]

 

Et d'un autre côté si tu actives pas un minimum d'optim dans gcc tu rates des warnings :/

 

Vu que dans ce cas le gcc est vieux (donc pas moyen de désactiver les optims localement),
je crois que je mettrais plutôt un petit bout d'assembleur dans une fonction dédiée,
au moins ça met en evidence qu'on est pas du tout entrain de spécifier un algorithme.

Message cité 1 fois
Message édité par 0x90 le 09-10-2014 à 13:56:35

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°2239888
nraynaud
lol
Posté le 09-10-2014 à 13:57:35  profilanswer
 

c'est en Ada [:moule_bite]


---------------
trainoo.com, c'est fini
n°2239889
0x90
Posté le 09-10-2014 à 13:58:20  profilanswer
 
n°2239890
sligor
Posté le 09-10-2014 à 15:22:29  profilanswer
 

nraynaud a écrit :

'tain je suis paumé grave.
 
j'ai un registre mapé en mémoire, il est write only, quand j'écris dedans, un truc se passe. Je veux pas que le compilo optimise les write ou fasse le malin sur les sous-expressions. est-ce que volatile est vraiment le bon outil ? ça concerne pas plutôt la lecture ?


non les volatiles c'est dégueulasse et en plus ça peu être buggué sur certaines version de gcc
 
 
l'idéal c'est d'utiliser des fonctions d'écriture et de lecture,
par exemple le kernel linux utilise des fonctions de ce genre là:

Citation :


9.4.2. Accessing I/O Memory
 
On some platforms, you may get away with using the return value from ioremap as a pointer. Such use is not portable, and, increasingly, the kernel developers have been working to eliminate any such use. The proper way of getting at I/O memory is via a set of functions (defined via <asm/io.h> ) provided for that purpose.
 
To read from I/O memory, use one of the following:
 
unsigned int ioread8(void *addr);
unsigned int ioread16(void *addr);
unsigned int ioread32(void *addr);
 
Here, addr should be an address obtained from ioremap (perhaps with an integer offset); the return value is what was read from the given I/O memory.
 
There is a similar set of functions for writing to I/O memory:
 
void iowrite8(u8 value, void *addr);
void iowrite16(u16 value, void *addr);
void iowrite32(u32 value, void *addr);
 
http://www.makelinux.net/ldd3/chp-9-sect-4


 
ces fonctions sont écrites de telle sorte que on est sur que l'écriture se fait au moins une et une seule foi et de façon ordonnée (avec des barrières sur certaines architectures)
ça permet au passage d'avoir du code portable sans les risques de merde du volatile.

Message cité 1 fois
Message édité par sligor le 09-10-2014 à 15:23:09

---------------
qwerty-fr
n°2239891
theShockWa​ve
I work at a firm named Koslow
Posté le 09-10-2014 à 15:32:35  profilanswer
 

J'avais parlé d'encapsuler la lecture et les barrières en premier  [:cerveau thalis]


---------------
last.fm
n°2239892
0x90
Posté le 09-10-2014 à 15:45:11  profilanswer
 

sligor a écrit :


non les volatiles c'est dégueulasse et en plus ça peu être buggué sur certaines version de gcc
[...]


 
C'est pas plutôt que les volatiles c'est un truc qui concerne la lecture et pas l'écriture ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°2239893
sligor
Posté le 09-10-2014 à 16:09:35  profilanswer
 

0x90 a écrit :


 
C'est pas plutôt que les volatiles c'est un truc qui concerne la lecture et pas l'écriture ?


non non, si on fait ça:
 

Code :
  1. extern volatile int *a;
  2. void f()
  3. {
  4.   *a=5;
  5.   *a=3;
  6. }


 
il est censé écrire 2 fois dans a, alors que sans le volatile il virera la première écriture "inutile"
 

Citation :

For every read from or write to a volatile variable that
would be performed by a straightforward interpreter
for C, exactly one load from or store to the memory lo-
cation(s) allocated to the variable must be performed.


 
sauf que c'est fragile et dangereux de base à cause de bugs ( http://www.cs.utah.edu/~regehr/pap [...] eprint.pdf ), et que sur certaine plateformes/bus c'est insuffisant pour ordonnancer correctement les accès.


Message édité par sligor le 09-10-2014 à 16:14:53

---------------
qwerty-fr
n°2239896
theShockWa​ve
I work at a firm named Koslow
Posté le 09-10-2014 à 16:40:22  profilanswer
 

Mais quel langage de merde :  [:cannot be unseen]  
http://www.lua.org/pil/19.1.html


---------------
last.fm
n°2239901
lorill
Posté le 09-10-2014 à 17:23:34  profilanswer
 

lolwut ?

n°2239907
masklinn
í dag viðrar vel til loftárása
Posté le 09-10-2014 à 17:52:53  profilanswer
 


C'est… original [:pingouino]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2239908
Shinuza
This is unexecpected
Posté le 09-10-2014 à 18:07:08  profilanswer
 

masklinn a écrit :


C'est… nil


FYP


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2239909
Elmoricq
Posté le 09-10-2014 à 18:14:44  profilanswer
 


 
Du coup si je comprends bien, sa réponse c'est :
 
 


n°2239913
theShockWa​ve
I work at a firm named Koslow
Posté le 09-10-2014 à 19:29:56  profilanswer
 

masklinn a écrit :


C'est… original [:pingouino]


 
Maiouais ! Et ils ont aussi de la doc officielle sur les listes : http://www.lua.org/pil/11.3.html
 [:mister mystere]


---------------
last.fm
n°2239914
masklinn
í dag viðrar vel til loftárása
Posté le 09-10-2014 à 19:37:11  profilanswer
 

theShockWave a écrit :

Maiouais ! Et ils ont aussi de la doc officielle sur les listes : http://www.lua.org/pil/11.3.html
 [:mister mystere]


J'ai du mal a voir l'intérêt d'une page de doc là dessus, mais ça me choque pas plus que ça.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2239915
theShockWa​ve
I work at a firm named Koslow
Posté le 09-10-2014 à 19:40:16  profilanswer
 

C'est moins choquant que pour l'array, oui, mais c'est vraiment lourd d'avoir un langage où même les structures de données les plus bateaux ne sont pas standardisées.


---------------
last.fm
n°2239917
nraynaud
lol
Posté le 09-10-2014 à 19:58:37  profilanswer
 

comme en C ?


---------------
trainoo.com, c'est fini
n°2239920
masklinn
í dag viðrar vel til loftárása
Posté le 09-10-2014 à 20:31:48  profilanswer
 

theShockWave a écrit :

C'est moins choquant que pour l'array, oui, mais c'est vraiment lourd d'avoir un langage où même les structures de données les plus bateaux ne sont pas standardisées.


Ouais enfin c'est une linked list là. Dans un langage haut niveau c'est une structure utile quand t'es basé immutabilité et récursion sinon bof.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2239922
nraynaud
lol
Posté le 09-10-2014 à 21:06:12  profilanswer
 

Code :
  1. task body PWM is
  2.      onPeriod   : Time_Span;
  3.      offPeriod  : Time_Span;
  4.      period     : Time_Span;
  5.      Next_Start : Time      := Clock;
  6.      PWM_On     : Boolean   := True;
  7.   begin
  8.      loop
  9.         period    := Microseconds (1_000_000) / PWMFrequency;
  10.         onPeriod  := period /2;
  11.         offPeriod := period /2;
  12.         if (PWM_On) then
  13.            Off (Pattern (Next_LED));
  14.            PWM_On     := False;
  15.            Next_Start := Next_Start + offPeriod;
  16.         else
  17.            On (Pattern (Next_LED));
  18.            PWM_On     := True;
  19.            Next_Start := Next_Start + onPeriod;
  20.         end if;
  21.         delay until Next_Start;
  22.      end loop;
  23.   end PWM;


vous voyez un bug évident là ? je deviens fou :fou:


Message édité par nraynaud le 09-10-2014 à 21:18:54

---------------
trainoo.com, c'est fini
n°2239924
sligor
Posté le 09-10-2014 à 21:17:36  profilanswer
 

ouai mets une balise code=ada :fou:


---------------
qwerty-fr
n°2239925
nraynaud
lol
Posté le 09-10-2014 à 21:21:34  profilanswer
 

je savais pas que ça passait.
 
J'ai l'impression que c'est un truc d'attardé genre la granularité du scheduler, parce qu'à certaines fréquence j'ai une réponse parfaite et à d'autre c'est n'importe quoi , mais on voit bien que le n'importe quoi tombe sur sur des endroits privilégiés.
 
Et plus la fréquence baisse et plus il est capable de suivre ce que je lui dit. Reste à trouver une putain de doc :fou: ça fait une demi-heure que je google je trouve rien sur comment on règle le scheduler.


---------------
trainoo.com, c'est fini
n°2239926
flo850
moi je
Posté le 09-10-2014 à 21:28:30  profilanswer
 

Est ce que c'est possible que le temps d'exécution de ton code soit supérieur  a offperiod ?


---------------

n°2239927
sligor
Posté le 09-10-2014 à 21:32:47  profilanswer
 

ça serait plus simple avec un oscilloscope


---------------
qwerty-fr
n°2239928
nraynaud
lol
Posté le 09-10-2014 à 21:34:22  profilanswer
 

non, on parle d'un cortex-M3 à 148MHz, et ça marche bien qu'à des fréquences d'autour de 10Hz
 
sur ma fraiseuse j'ai des process qui tourne à 60kHz sans pb.
 
'tain je trouve pas la doc de ce putain de scheduler :fou:


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  21324  21325  21326  ..  27185  27186  27187  27188  27189  27190

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)