安德鲁

[原创].HAL的不同方式访问字符器件的空间开销简单比较.[C][Nios II]

0
阅读(1754)

注:本文所述皆为查询方式的比对,中断方式下请读者自习研究比对。

范例:/dev/jtag_uart

Unix类型

图1 系统库属性设置

源代码:

01 #include "system.h"
02 #include "fcntl.h"
03 #include "unistd.h"
04
05 intmain(void)
06 {
07 intfd;// file descriptor
08 charmsg[] ="Hello Nios!";
09
10 fd = open("/dev/jtag_uart", O_WRONLY);
11 write(fd, msg,sizeof(msg)-1);
12 close(fd);
13
14 return0;
15 }

编译结果:

Info: (hello_nios.elf) 2608 Bytes program size (code + initialized data).
Info: 8189 KBytes free for stack + heap.

ANSI C

图2 系统库属性设置

源代码:

01 #include "system.h"
02 #include
03
04 intmain (void)
05 {
06 FILE*fp;// file pointer
07 charmsg[] ="Hello Nios!";
08
09 fp =fopen("/dev/jtag_uart","w");
10 fprintf(fp, msg);
11 fclose(fp);
12
13 return0;
14 }

编译结果:

Info: (hello_nios.elf) 43 KBytes program size (code + initialized data).
Info: 8148 KBytes free for stack + heap.

C++流

(略)

参考

1. Altera, HAL API Reference, 200905

2. 李兰英等, NiosII嵌入式软核SOPC设计原理及应用, 200611,北京航空航天大学出版社

Baidu
map