lib.h
上传用户:wealth48
上传日期:2022-06-24
资源大小:1701k
文件大小:4k
源码类别:

uCOS

开发平台:

C/C++

  1. /***************************************************************************
  2. Copyright (c) 2004-2007 threewater@up-tech.com, All rights reserved.
  3. by threewter 2004.4.26
  4. ***************************************************************************/
  5. /***************************************************************************
  6.     #说明: C库函数定义头文件
  7. ----------------------------------  Bug  --------------------------------------
  8. ----------------------------------  TODO list  --------------------------------------
  9. ----------------------------------修正--------------------------------------
  10. 2004-5-2 1、为调试和内核的输出,添加TRACE和printk宏定义
  11. 2、定义mdelay宏,毫秒级延时
  12. 3、添加版本号的定义MAJOR, MINOR, BUILD VERSION
  13. 2004-4-30 1、添加CONSOLE宏定义,可以定义串口输出的控制台
  14. 2、定义CONSOLE_PUTC宏,作为标准控制台输出宏。
  15. printf 时被fputc调用
  16. 3、添加Uart_SendChar函数,如果发送'n'则自动发送'r',
  17. 适合于控制台输出
  18. 2004-4-26 创建
  19. ***************************************************************************/
  20. #ifndef __LIB_H__
  21. #define __LIB_H__
  22. #include "io.h"
  23. #include "sysdrv.h" //驱动抽象层头文件
  24. #include "../inc/macro.h"
  25. #include "../src/fs/osfile.h"
  26. #include "loadfile.h"
  27. /***********************Version define***************************************/
  28. #define MAJOR_VERSION 1
  29. #define MINOR_VERSION 0
  30. #define BUILD_VERSION 1
  31. #define VERSION ((MAJOR_VERSION)|(MINOR_VERSION<<8)|(BUILD_VERSION<<16))
  32. #define VERSION_STR "Build Version %d.%d.%4.4dn", MAJOR_VERSION,MINOR_VERSION,BUILD_VERSION
  33. /***********************console define***************************************/
  34. #define CONSOLE 0
  35. //for debug
  36. #define TRACE printf
  37. //for kernel information output
  38. #define printk printf
  39. void printfNULL(char *fmt, ...);
  40. #define getchartimeout(buffer, n, timeout) Uart_GetchTimeout(CONSOLE, (char*)buffer, n, timeout*30)
  41. #define Uart_SendChar(nUart, ch) do{if((ch)=='n') Uart_SendByte((nUart), 'r');
  42. Uart_SendByte((nUart), (ch)); }while(0)
  43. //从控制台所在的串口,获得输入的字符串
  44. //#define GetCommand(string) Uart_GetString(CONSOLE, string);
  45. //定义标准控制台输出函数
  46. #define CONSOLE_PUTC(ch) Uart_SendChar(CONSOLE, (ch))
  47. //定义标准控制台输入函数
  48. #define CONSOLE_GETC() Uart_Getch(CONSOLE)
  49. /***********************System define***************************************/
  50. extern unsigned int PCLK, HCLK, FCLK;
  51. /***********************System param define*********************************/
  52. struct struct_system_param{
  53. unsigned int magic;
  54. calibrate_MATRIX  calibrate_matrix;
  55. };
  56. extern struct struct_system_param system_param;
  57. /***********************macro define***************************************/
  58. #define mdelay(n) hudelay(n*10)
  59. /***********************function define***************************************/
  60. typedef void (*serial_loop_func_t)(void);
  61. /***********************arm define***************************************/
  62. #define FlushCache() __asm{mcr p15, 0, r0, c7, c7, 0}
  63. /*lib.c*/
  64. void hudelay(int time); //Watchdog Timer is used.
  65. void Port_Init(void);
  66. int GetCommand(char *command, int len);
  67. int Uart_Init(int whichUart,int baud);
  68. void Uart_RxEmpty(int whichUart);
  69. void Uart_TxEmpty(int whichUart);
  70. int Set_UartLoopFunc(serial_loop_func_t func);
  71. int Clear_UartLoopFunc(int index);
  72. char Uart_Getch(int whichUart);
  73. int Uart_GetchTimeout(int whichUart, char* pbuffer, int n, int timeout);
  74. int Uart_Poll(int whichUart);
  75. int Uart_SendByte(int whichUart, int data);
  76. void Uart_GetString(int whichUart, char *string);
  77. int  Uart_GetIntNum(int whichUart);
  78. void Uart_Printf(int whichUart, char *fmt,...);
  79. void Uart_SendString(int whichUart, char *pt);
  80. int Set_UartLoopFunc(serial_loop_func_t func);
  81. int Clear_UartLoopFunc(int index);
  82. void loadsystemParam(void);
  83. #endif