We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I am new to 8051 and uVision.
I am able to get print to serial to work using register level code, but when I use printf the code goes into a hard run.
It is likely obvious to an experienced user so I am including a demo program below.
Note I am using a CAST 8051 core in an FPGA, and have 32K code and xdata rams.
Can anyone help?
#include <stdio.h>#include <reg51t.h>void init_serial0() { TH1 = (unsigned char) 250; PCON |= 0x80; // SMOD1=1 (double bit rate) TMOD = 0x20; // Timer1 in auto-reload mode TCON = 0x40; // Timer1 Run SCON = 0x50; // 8-bit UART Mode, Timer1-driven, REN=1}void wait(void) { unsigned int i,j,x; for(i=0; i<10000; i++) for(j=0; j<50; j++) x++;}void main () { PMOD = 1; // set GPIO out as push-pull P0 = 0; init_serial0(); printf("hello ..\n"); while(1) { wait(); P0 = 0x80; // led on wait(); P0 = 0; // led off }}