STC8G1K08A minimales UART-Hello-World-Demo
Siehe auch:
- Besorgt über die Firmware-Größe? Siehe STC8G1K08A winziges 349-Byte-UART-Hello-World-Demo
Dieses minimale Demo basiert auf dem sdcc-Compiler und der FwLib_STC8-Bibliothek. Es initialisiert den UART mit 115200 Baud und gibt kontinuierlich Hello, world from UART1! gefolgt von einem Zeilenumbruch aus.
main.c
#include "fw_hal.h"
/* UART1 für eine einfache 8N1-Debug-Konsole mit 115200 Baud konfigurieren.
* Timer1 wird als Baudraten-Generator verwendet, da dies das Standard-Setup ist
* das bereits von den anderen kleinen Demos in diesem Repository verwendet wird.
*/
static void UART_Init(void)
{
UART1_Config8bitUart(UART1_BaudSource_Timer1, HAL_State_ON, 115200);
}
void main(void)
{
/* Die Takt-Trim-Werte aus fw_conf.h laden und den MCU auf die
* konfigurierte Betriebsfrequenz umschalten, bevor Peripherie-Timing von
* SYSCLK abgeleitet wird.
*/
SYS_SetClock();
/* UART1 einmal hochfahren, damit die Schleife unten menschenlesbare Ausgabe senden kann. */
UART_Init();
while(1)
{
/* Einen einzelnen NUL-terminierten String über UART1 senden.
* Die Bibliothek sendet jeweils ein Byte, bis '\0' erreicht ist.
*/
UART1_TxString("Hello, world from UART1!\r\n");
/* Etwa eine Sekunde warten, damit die Terminal-Ausgabe lesbar bleibt und
* die Nachrichten-Kadenz auf einem seriellen Adapter leicht zu überprüfen ist.
*/
SYS_Delay(1000);
}
}Wie man flasht
Siehe unseren Beitrag Wie man STC8G1K08A mit stcgal flasht
Wie man die serielle Ausgabe überprüft
Überprüfe die Ausgabe mit
monitor.sh
picocom -b 115200 /dev/ttyUSB0Speichernutzung
memory_usage.txt
===== Memory usage summary for uart_hello_world =====
Internal RAM layout:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00:|0|0|0|0|0|0|0|0|Q|Q|Q|Q|S|S|S|S|
0x10:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x20:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x30:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x40:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x50:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x60:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x70:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x80:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x90:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xa0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xb0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xc0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xd0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xe0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xf0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0-3:Reg Banks, T:Bit regs, a-z:Data, B:Bits, Q:Overlay, I:iData, S:Stack, A:Absolute
Stack starts at: 0x0c (sp set to 0x0b) with 244 bytes available.
No spare internal RAM space left.
Other memory:
Name Start End Size Max
---------------- -------- -------- -------- --------
PAGED EXT. RAM 0 256
EXTERNAL RAM 0x0001 0x0057 87 1024
ROM/EPROM/FLASH 0x0000 0x0856 2135 8192
===============================================Wenn dieser Beitrag dir geholfen hat, erwäge, mir einen Kaffee zu spendieren oder per PayPal zu spenden, um die Recherche und Veröffentlichung neuer Beiträge auf TechOverflow zu unterstützen