Bueno nuevamente aca estoy peleando con el bendito compilador de SDCC que no logro hacerlo andar, cree un directorio en el C raiz para ese fin pero alguna de las mias estare haciendo ya que no logro hacerlo compilar.
Si alguien me puede dar una manito en la estructura de los directorios para el skeleton y donde tengo que poner los include y demas archivos por que debe ser que en alguno me estoy equivocando y por eso no me compila.
ODIO LA MALDITA CONSOLA Y EL COMP. POR TEXTO DEL SDCC >:( >:( >:( >:( (muy enojado) Viva el CCS ;D
Estoy trabajando en base al midibox64E.
Bueno y sino a duras penas voy a tener que migrar al Asm que entiendo muy poco pero bueno de alguna manera tengo que sacarlo adelante. Sino tendre que reescribir partes de las librerias al C del CCS que no es 100% compatible con el ansi. >:(
Como si fuera poco se me ocurre dejar de fumar justo ahora : entre esto y la falta de cigarillos en cualquier momento camino por el techo!!!.
Bueno ya logre instalar todo y bueno realice algunas pruebas.
El problema aparece aca jejejeje!!! no logro entender por el momento a que hace referencia cuando pone la palabra “__wparam” en el final de la sentencia
Bueno todavia no lo entiendo mucho por que da muchas vueltas este C definiendo cosas que podrian estar en el header del pic pero bueno de a poco voy encaminando.
__wparam is a special, SDCC PIC16 port specific keyword. It should be used in the declaration and definition of a function as you showed above.
It instructs the compiler to output ASM which will pass the first byte of the arguments to the function using the WREG register, rather than the stack (FSR1 (which is swapped in the wrapper with FSR2, so be careful if you try to access it directly)). This has the primary function of reducing argument passing overheads on functions with a single byte argument, but also has side-effects upon the use of the SDCC internal temporary registers (r0x**) and the behaviour of the optimiser, and as such it is usually handy on functions with no arguments (as above).
If you’re developing an app and writing custom functions, I recommend it’s use… unless you are using inlines (hidden feature ;)), in which case it’s mostly OK, but inlines are alpha, so I recommend you just quickly check the output to be sure.
Short version:
Don’t mess with it :) Just leave it where you see it, and leave it out where you see it’s left out.
Thanks Stryd_one te entiendo perfectamente ;D, lamento no poder escribirte en ingles por que mi escritura es muy mala :-[, pero no asi mi lectura.
Bueno resumiendo no es mas que algo similar al pragma que realmente a este nivel no creo que tenga mucho sentido usarla como dijo el amigo, pero me quedan 2 interrogantes primero por que la implementan a cada rato y segundo no entiendo por que al final y con esa sintaxis.
Seguire investigando y probare a eliminarla ya que el compilador me lo da como error.
Pregunta adicional fuera del tema: que pasa si en el programa tengo declarado 2 DIN4 y de repente uno de los 2 lo elimino del hard por que no lo uso.(obiamente apagando , desconectando y reiniciando el hard).
Per ejemplo supongamos que tengo un modibox con la aplicacion que controla 64 botones pero el segundo modulo DIN4 lo conecto solamente el dia que necesito usar los otros 32 botones,como si fuera un modulo de expancion, la aplicacion corre lo mas bien o se trabaria??? yo por lo que vi como trabaja el programa no habria ningun problema en quitar tanto DIN, DOUT y en el caso de los AIN hay que poner a tierra las entradas libres. Estoy en lo correcto???
Thanks Stryd_one te entiendo perfectamente ;D, lamento no poder escribirte en ingles por que mi escritura es muy mala :-[, pero no asi mi lectura.
i understand english but i can t write it properly etcetc
Bueno resumiendo no es mas que algo similar al pragma que realmente a este nivel no creo que tenga mucho sentido usarla como dijo el amigo, pero me quedan 2 interrogantes primero por que la implementan a cada rato y segundo no entiendo por que al final y con esa sintaxis.
2 questions:
a)why is it implementing it (the function) all the time?
b)i also don t understand why it implements it always at the end and with that syntax
Seguire investigando y probare a eliminarla ya que el compilador me lo da como error.
i ll keep on searcing and i ll try to eliminate it since the compiler outputs it as an error
Pregunta adicional fuera del tema: que pasa si en el programa tengo declarado 2 DIN4 y de repente uno de los 2 lo elimino del hard por que no lo uso.(obiamente apagando , desconectando y reiniciando el hard).
te contesto yo: no pasa nada
Per ejemplo supongamos que tengo un modibox con la aplicacion que controla 64 botones pero el segundo modulo DIN4 lo conecto solamente el dia que necesito usar los otros 32 botones,como si fuera un modulo de expancion, la aplicacion corre lo mas bien o se trabaria??? yo por lo que vi como trabaja el programa no habria ningun problema en quitar tanto DIN, DOUT y en el caso de los AIN hay que poner a tierra las entradas libres. Estoy en lo correcto???
correcto, por ejemplo yo utilizo unos minijacks estereofonicos para conectar AINs externos, cuando los desenchufo el pin se conecta automaticamente a GND
If the compiler outputs an error about __wparam, then you have done something wrong with the toolchain setup - the code is fine.
I think that you must be running an old version of SDCC, or that the makefile is not working correctly.
Please copy and paste from the command line, everything that you see when you run “make”
Also, type:
sh --version
sdcc --version
gpasm --version
make --version
And paste the output. So, you should paste something like this:
C:\Documents and Settings\stryd_one>sh --version
GNU bash, version 2.04.0(1)-release (i686-pc-msys)
Copyright 1999 Free Software Foundation, Inc.
C:\Documents and Settings\stryd_one>sdcc --version
SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.8.0 #5117 (Mar 23 2008) (MINGW32)
C:\Documents and Settings\stryd_one>gpasm --version
gpasm-0.13.5 beta
C:\Documents and Settings\stryd_one>make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-pc-mingw32
C:\Documents and Settings\stryd_one>
Gracias Cimo por la traduccion y las respuestas, este fin de semana no me dio tiempo para trabajar en el projecto ni aparecer en el foro pero bueno trabajo es trabajo
Thanks Styd_one I intal step-by-step tutorial sended for you
This is my screen
C:\Documents and Settings\Eduardo>sh --version
GNU bash, version 2.04.0(1)-release (i686-pc-msys)
Copyright 1999 Free Software Foundation, Inc.
C:\Documents and Settings\Eduardo>sdcc --version
SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.8.0 #5
117 (Mar 23 2008) (MINGW32)
C:\Documents and Settings\Eduardo>gpasm --version
gpasm-0.13.5 beta
C:\Documents and Settings\Eduardo>make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-pc-mingw32
C:\Documents and Settings\Eduardo>
;D
Any idea??? alguna idea ya que los datos son iguales. :-[
Otra duda que me la puedes resolver Cimo para compilar siempre tengo que usar el Gpasm o tambien se puede el Mpasmwin de microchips???
Exactly. All is good there, you have the right tools, and they are correctly found in the path.
The problem must be something else…
Gpasm o tambien se puede el Mpasmwin de microchips
Only old projects use MPASM, new projects should use GPASM.
Eduy:
Can you also paste the messages you see, when you run ‘make’?
Which code are you compiling? Did you download the .zip file from ucapps.de? Maybe you could attach the code here, or you can email it to me if you would prefer - just PM me for my address
Hi Styd_one thanks for help me, sorry I write in spanish beacous is to long for my realy bad eanglish.
Como para programar y desarollar en micros yo trabajo con otros programas de c, estos que usan para el Mios son completamente distintos y realmente tengo que empesar a conocerlos como trabajan por eso mis errores al usarlos.
Mi idea es la siguiente : por el momento estoy utilizando el midibox64e_v2_2b.zip y el mios-autotools-skeleton-1.9f-r1.zip descargado de ucaps (obiamente descomprimido) para realizar las pruebas de compilacion a ASM y luego a HEX, (supuestamente estos archivos estan correctamente y se deberian compilar sin problemas). La idea es primero convertir esos para saber bien como es la utilisacion de los programas tanto el SDCC, Make, Gpasm, etc para luego comensar a realizar las modificaciones y trabajar en el codigo generado por mi.
Agradeceria que me comenten como es el orden de uso de los programas con sus respectivas letras de opciones y las extenciones de los archivos que se deben aplicar en los mismos.
Por el momento lo que estoy haciendo es usando el SDCC con la opcion -c para compilar del C al ASM que se me generan errores soble todo con los __wparam que todavia no lo pude solucionar, y luego supuestamente uso el Make (todavia no encontre cual es la opcion correcta que debo utilisar -???)y supuestamente despues debo convertirlo a Hex con el Gpasm.
Seguramente debo estar utilisando los programas en el orden incorrecto o con opciones que no corresponden.
Realmente no si me estoy volviendo viejo e idiota ??? o solamente es falta de vacaciones.
Si yo tambien para mis desarollos uso el Mplab ide y el Mpasm aunque normalmente desarollo en C y con el compilador de CCS y puedo sacar directamente el Hex desde el ;D.
Pero lamentablemente como no son son compatible con el Mios :-[ no puedo usarlo y tengo que dejarlo de lado por lo cual practicamente tengo que empesar de 0 con el manejo de estos nuevos programas, asi que agradesco si pueden encaminarme con estos nuvos programas por que estoy mas perdido que chupete en la oreja :P.
Lo que mas me lleva a la locura es el manejo para utilizarlos ya que no puedo compilar una aplicacion desde 0 y por el contenido que tiene el programa interno de la aplicacion ya logre comprenderla como trabaja y no tengo problemas ( por ahora ) en modificarla, pero sin compilarlas hasta tenerlas en el Hex para cargarlo en el micro con el mios no sirve de nada.
Eduy, I don’t mind the spanish posts, the translator (foxlingo/autotrans) is doing a good job, I hope my English posts are OK - you seem to be reading them just fine
MPLAB/MPASM are no longer used for MIOS. Use GPUtils/GPASM instead.
mios-autotools-skeleton-1.9f-r1.zip
That is not supported, it really should be removed from the wiki. It was an experiment done by one user, and does not really work. Use the skeleton you can download from ucapps.de download page