部分重要代碼:
main.c
#include "s3c2440_soc.h"
#include "uart.h"
#include "my_printf.h"
int main(void)
{
unsigned char c;
uart0_init();
puts("Hello, world!nr");
my_printf_test();
while(1)
{
c = getchar();
if (c == 'r')
{
putchar('n');
}
if (c == 'n')
{
putchar('r');
}
putchar(c);
}
return 0;
}
my_printf.c
#include "my_printf.h"
//==================================================================================================
typedef char * va_list;
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
//#define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
#define va_arg(ap,t) ( *(t *)( ap=ap + _INTSIZEOF(t), ap- _INTSIZEOF(t)) )
#define va_end(ap) ( ap = (va_list)0 )
//==================================================================================================
unsigned char hex_tab[]={'0','1','2','3','4','5','6','7',
'8','9','a','b','c','d','e','f'};
static int outc(int c)
{
__out_putchar(c);
return 0;
}
static int outs (const char *s)
{
while (*s != ' 主站蜘蛛池模板: 伊宁县| 开阳县| 积石山| 平塘县| 来安县| 灯塔市| 峨眉山市| 阿鲁科尔沁旗| 本溪市| 西峡县| 大荔县| 嘉荫县| 大渡口区| 静海县| 瑞安市| 雷波县| 买车| 绩溪县| 遵义市| 施秉县| 宝坻区| 仙游县| 大庆市| 全椒县| 象山县| 晋中市| 凉城县| 昆山市| 法库县| 镶黄旗| 台北县| 西城区| 汝南县| 华安县| 黎城县| 灵石县| 合阳县| 云南省| 镇平县| 牡丹江市| 永昌县|