I (at) R @ VR-probleem met een code

7

7rots51

Guest
Hoi
wanneer ik een project met onderstaande code met I (at) R @ VR c0mpiler (CPU: AT90S8515) en debuggen met $ py, ik zie dat het programma verlaten, terwijl de lus!zonder reason.if ik sprintf te printf, is er geen probleem.

Is dit mijn probleem of is c0mpiler probleem?#
include "stdio.h"
void main (void)
(
unsigned int kkk;
char bufff [6];

bufff [5] = 0;

while (1) (
KKK = 1234;
sprintf (bufff, "% u", kkk);
)
)

 
Hoi,

heb je proberen om de while-lus in een for-lus?
Ik herinner me dat ik had een soortgelijk probleem en met een for-lus het probleem was opgelost.

groeten

 
Het zou het geval kunnen zijn uw string is niet genoeg om volledige output forvalue van kkk.Zoals uw string buff is gedefinieerd als stack variabele, wanneer de output wordt gedaan sprintf kon overide de stack en leiden tot corruptie, dan gedrag is undefined.
Incrcease buff grootte tot 20 laten we zeggen, en probeer het opnieuw.

 
In IAR C-SPY 2.28a,
UC is Atmega128 alle werkt prima ....

 
Hoi,

Het kan nodig zijn voor de uitvoering van de printf functie, of 'stub' it
uit, zoals dit is de prontf functie die ik gebruik, maak ik een back-up en
wijziging van de bestaande 'printf.c' bestand dat in een van
de IAR abonneelijsten (INC denk ik):static void put_one_char (char c, void * dummy)
(
tx_byte (PRINT_PORT, c);
/ * Of opmerking bovengenoemde line-out als u c-spion * /
) / * Let op deze lijn OK (ongebruikte 'dummy') * /int printf (const char * format, ...) / * Onze belangrijkste item * /
(
va_list AP;
int nr_of_chars;

va_start (AP, formaat); / * Variabele argument beginnen * /
nr_of_chars = _formatted_write (formaat, put_one_char, (void *) 0, AP);
va_end (AP); / * Variabele argument einde * /
return (nr_of_chars); / * Volgens ANSI * /
)

 

Welcome to EDABoard.com

Sponsor

Back
Top