Page html trop lourde

Postby blacktigris » Sat Nov 14, 2009 12:00 am

Bonjour,

Le compilateur de CodeWarrior m'indique une erreur de dépassement de mémoire car j'utilise des photos sur la page html.
Est-ce-que l'adaptation d'une carte SD proposé par Henri Laidet permet de résoudre cette limitation de mémoire ? Ou y-a-t'il une autre solution ?
Merci de vos réponsees

Ludo
blacktigris
 
Posts: 211
Joined: Thu Jan 02, 2014 10:41 am

Postby hlaidet » Sun Nov 15, 2009 12:00 am

Bonjour Ludo,

Le MCF52231 n'a que 128ko de flash pour le code et les pages html.
L'ajout d'une carte SD augmente un peu le code mais il n'y a plus de page html en flash.
La limite des 128ko n'est plus un problème et on peut placer des images dans les pages html.

Matériel: il faut choisir une SD ou MicroSD de 2Go maxi car les grosses capacités ne fonctionnent pas.
Une MicroSD avec adaptateur SD est facile à trouver et pas chère.
On a même la possibilité de souder les fils directement sur l'adaptateur.

On peut connecter la carte SD soit:
- sur les entrées ANA mais on en perd 4
- sur les réseaux RN1 et RN2 (voir schéma "HardDigiLogger.pdf")

Logiciel: "DigiButler_V30 AAAA MM JJ.zip"
Tu dois éditer "ipport.h" et ajuster quelques defines:
#define SPI_USE_PTC 1 ----- en commentaire = SD sur ana ou hors commentaire = SD sur RN1&2
#define HL_DATA_LOGGER 1 -- en commentaire inutile
#define HL_PLC 1 ---------- en commentaire inutile
#define DHCP_CLIENT 1 ----- en commentaire si IP fixe

puis si IP fixe éditer "main.c" pour modifier l'IP

Maintenant, on ne se sert plus de "freescale_static_ffs.c" qui est devenu inutile.
J'ai placé dans ce fichier "freescale_static_ffs.c" un #ifdef STATIC_FFS pour éliminer le code lors de la compilation.
Si tu exécute "emg_static_ffs.exe", "freescale_static_ffs.c" est régénéré et tu dois remettre le #ifdef STATIC_FFS à la main sinon tu auras encore un dépassement de mémoire.

La carte peut être formatée en FAT16 ou FAT32.

ATTENTION IMPORTANT:
Le file system ne prend pas en charge les noms longs.
Il faut passer tous les noms au format 8+3.
Sans oublier dans les fichiers html ("variables.htm").

Le chargement des fichiers html sur la carte SD de Digibutler se fait avec un soft de transport:
"H_Trans.exe" ou "H_DigiPLC.exe".
Les 2 font le transfert PC Digibutler.

Il y a quelques commandes ajoutées au moniteur: "cd, dir, del, mkdir, type"
qui permettent de voir ce qu'il y a sur la carte SD.

sources: http://pagesperso-orange.fr/HLaidet/Digibutler.htm

Cordialement
Henri
hlaidet
 
Posts: 61
Joined: Thu Jan 02, 2014 10:44 am

Postby blacktigris » Sun Nov 15, 2009 12:00 am

Merci Henri,

Ca marche impeccablement !
Mon seul problème, c'est que j'ai perdu les fonctions du port série de la Digibutler. Je lui faisait envoyer des commandes RS232 en 9600Bauds mais depuis la mise à jour, plus rien.
D'aprés ce que j'ai compris, tu utilises le port série pour une caméra. Est-ce-que je peux supprimer les fichiers concernant la caméra et récupérer ceux des version intiale d'Elektor pour récupérer la fonction printf ?
Merci pour ton support
Ludo
blacktigris
 
Posts: 211
Joined: Thu Jan 02, 2014 10:41 am

Postby hlaidet » Sun Nov 15, 2009 12:00 am

Re bonjour Ludo,

Le port COM utilisé pour la caméra est uart2 dispo sur J6 2et3 (fonction alternative 3 de SDA et SCL).
De plus, si #define CAMERA_TASK 1 (dans "ipport.h") est mis en commentaire, le code caméra n'est pas compilé.
Donc uart2 hors de cause.

L'uart0, celui de la DE9 est utilisé par le moniteur de debug et a un baudrate de 115200 bauds (modifiable dans "iuart.c").
C'est celui utilisé par "printf".

Les modifications que j'ai faites dans "iuart.c" sont:
- réduction de mémoire pour les uarts inutilisés.
aucune influence sur les échanges.
- passage uart0 en IT (#define POLLED_UART en commentaire)
change la dynamique des échanges.
- ajout fonction "iuart_ioctl" pour détourner les accès uart0
quand on a un client telnet connecté.
aucune influence si pas de client telnet connecté.


Tu as 2 options:
1- Tes commandes sont sans réponses du matériel connecté.
pas de modification autre que le baudrate car "printf" fonctionne toujours.
le moniteur de debug ne recevant pas de caractère reste muet.
2- Il y a des réponses du matériel connecté ( protocole )
tu dois éliminer le moniteur de debug qui utilise l'uart0 et perturbe le dialogue.
pour dévalider l'utilisation de l'uart0 par le moniteur de debug,
il faut mettre en commentaire #define IN_MENUS 1 ("ipport.h").
ce qui va éliminer le code dans "tk_misc.c".

L'utilisation de l'uart0 devrait fonctionner.

Cordialement
Henri
hlaidet
 
Posts: 61
Joined: Thu Jan 02, 2014 10:44 am

Postby blacktigris » Sun Nov 15, 2009 12:00 am

Merci pour ta réponse,

J'ai refais des essais, mais toujours pas de commande RS232.
J'ai rebranché le port série du PC pour contrôler avec Hyperterminal, voici ce qu'il me donne au reset du Digibutler:

Elektor SW Version 1.2.4

Copyright 2008 by Freescale Semiconductor Inc.
Use of this software is controlled by the agreement
found in the project LICENSE.H file.
Init done...

InterNiche ColdFireLite TCP/IP for ColdFire, v3.0

Copyright 1997-2006 by InterNiche Technologies.
All rights reserved.
Preparing device for networking
Ethernet started on Iface: 0


Aprés "Ethernet started on Iface: 0", il n'indique plus son adresse IP comme auparavant. Les commandes RS232 envoyées par la page web n'arrive plus. Je peux pourtant pinguer l'adresse et afficher la page web qui est sur la carte SD. J'ai remis UART_TXBUFSIZE à 528, ça ne change rien.
Si tu as des idées..
Bonne soirée

Ludo
blacktigris
 
Posts: 211
Joined: Thu Jan 02, 2014 10:41 am

Postby hlaidet » Mon Nov 16, 2009 12:00 am

Bonjour Ludo,

Je pense savoir d'ou vient le problème.

blacktigris a écrit: "Les commandes RS232 envoyées par la page web"

"envoyées par la page web" est certainemant la clé.

Dans "freescale_static_ffs_utils.c", il faut enlever le commentaire de la ligne:
// {"serial", form_serial_function},

En effet pour faire des économies de flash quand on valide toutes les options, j'avais supprimé les fonctionnalités que je n'utilisais pas.
Dont le serial com.

Je pense que tu peux restaurer "iuart.c" et remettre #define IN_MENUS 1 car "form_serial_function" ne fait que du printf et peut donc cohabiter avec le moniteur de debug.

Cordialement
Henri
hlaidet
 
Posts: 61
Joined: Thu Jan 02, 2014 10:44 am

Postby blacktigris » Mon Nov 16, 2009 12:00 am

Bonjour Henri,

tout marche maintenant à merveille !

Je ne te dis pas "à charge de revanche", ce serait prétencieux de ma part, mais, mes compliments pour ton travail et un grand merci pour ton support et ta disponibilité.

Bonne soirée

Ludo
blacktigris
 
Posts: 211
Joined: Thu Jan 02, 2014 10:41 am

Postby blacktigris » Wed Dec 02, 2009 12:00 am

Bonsoir,

La page html enregistrée sur la carte SD comporte un grand nombre de boutons, chacun envoyant un code RS232 différent sur l'uart0.
Si je clique sur plusieurs boutons à la suite, les 3 ou 4 premiers codes sont envoyés sur le port RS232 et puis il se bloque pendant quelques secondes puis les codes suivants arrivent tout à tour, plus ou moins rapidement.
Quand j'utilise cette page web avec la version d'origine d'Elektor (page web en flash dans freescale_static_ffs.c), tout se passe bien, les codes sortent bien au rythme des clics sur les boutons.
J'ai tenté plusieurs modifs, mais sans succés.

Une idée ?

Merci,
Ludo
blacktigris
 
Posts: 211
Joined: Thu Jan 02, 2014 10:41 am


Return to DigiButler (04&05-2008)

Who is online

Users browsing this forum: No registered users and 1 guest