⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alt_log_printf.h

📁 nios中自定义指令集实现三角函数的软件部分。
💻 H
📖 第 1 页 / 共 2 页
字号:
            #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0
        #else /* default setting */
            #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0
        #endif
    #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */

    #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING
        #ifndef __ALTERA_AVALON_JTAG_UART 
            #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0
        #elif ALT_LOG_FLAGS == 1
            #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0
        #elif ALT_LOG_FLAGS == 2
            #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1
        #elif ALT_LOG_FLAGS == 3
            #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1
        #elif ALT_LOG_FLAGS == -1 /* silent mode */
            #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0
        #else /* default setting */
            #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0
        #endif
    #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */

    #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING
        #ifndef __ALTERA_AVALON_JTAG_UART 
            #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0
        #elif ALT_LOG_FLAGS == 1
            #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1
        #elif ALT_LOG_FLAGS == 2
            #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1
        #elif ALT_LOG_FLAGS == 3
            #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1
        #elif ALT_LOG_FLAGS == -1 /* silent mode */
            #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0
        #else /* default setting */
            #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0
        #endif
    #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */

    #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING
        #ifndef __ALTERA_AVALON_JTAG_UART 
            #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0
        #elif ALT_LOG_FLAGS == 1
            #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0
        #elif ALT_LOG_FLAGS == 2
            #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0
        #elif ALT_LOG_FLAGS == 3
            #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1
        #elif ALT_LOG_FLAGS == -1 /* silent mode */
            #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0
        #else /* default setting */
            #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0
        #endif
    #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */

#ifndef ALT_ASM_SRC
    /* Function Prototypes */
    void alt_log_txchar(int c,char *uartBase);
    void alt_log_private_printf(const char *fmt,int base,va_list args);
    void alt_log_repchar(char c,int r,int base);
    int alt_log_printf_proc(const char *fmt, ... );
    void alt_log_system_clock();
    #ifdef __ALTERA_AVALON_JTAG_UART 
        alt_u32 altera_avalon_jtag_uart_report_log(void * context);
        void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base);
        void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \
             int base, const char* header);
        void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev);
    #endif
    void alt_log_write(const void *ptr, size_t len);
    
    /* extern all global variables */
    extern volatile alt_u8 alt_log_boot_on_flag;
    extern volatile alt_u8 alt_log_write_on_flag;
    extern volatile alt_u8 alt_log_sys_clk_on_flag;
    extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag;
    extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag;
    extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag;
    extern volatile int alt_log_sys_clk_count;
    extern volatile int alt_system_clock_in_sec;
    extern alt_alarm alt_log_jtag_uart_alarm_1;
#endif  /* ALT_ASM_SRC */


    /* Below are the MACRO defines used in various HAL files.  They check
     * if their specific flag is turned on; if it is, then it executes its 
     * code.
     *
     * To keep this file reasonable, most of these macros calls functions,
     * which are defined in alt_log_printf.c.  Look there for implementation
     * details. */
  
    /* Boot Messages Logging */
    #define ALT_LOG_PRINT_BOOT(...) \
       do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \
          } while (0)

    /* JTAG UART Logging */
    /* number of ticks before alarm runs logging function */
    #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR
    	#define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10
    #endif
    #ifndef ALT_LOG_JTAG_UART_TICKS
        #define ALT_LOG_JTAG_UART_TICKS \
        	(alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR)
    #endif
  
    /* if there's a JTAG UART defined, then enable these macros */
    #ifdef __ALTERA_AVALON_JTAG_UART 

        /* Macro in altera_avalon_jtag_uart.c, to register the alarm function.
         * Also, the startup register info is also printed here, as this is
         * called within the device driver initialization.  */
        #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \
            do { if (alt_log_jtag_uart_alarm_on_flag==1) { \
                    alt_alarm_start(&alt_log_jtag_uart_alarm_1, \
                    ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\
                    dev);} \
                 if (alt_log_jtag_uart_startup_info_on_flag==1) {\
                    alt_log_jtag_uart_startup_info(dev, base);} \
               } while (0)
  
        /* JTAG UART IRQ Logging (when buffer is empty) 
         * Inserted in the ISR in altera_avalon_jtag_uart.c */
        #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \
            do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) 
    /* else, define macros to nothing.  Or else the jtag_uart specific types
     * will throw compiler errors */
    #else
        #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) 
        #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) 
    #endif

    /* System clock logging
     * How often (in seconds) the system clock logging prints.
     * The default value is every 1 second */
    #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER
	#define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1
    #endif
    #ifndef ALT_LOG_SYS_CLK_INTERVAL
	#define ALT_LOG_SYS_CLK_INTERVAL \
	    (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER)
    #endif

    /* System clock logging - prints a message every interval (set above) 
     * to show that the system clock is alive. 
     * This macro is used in altera_avalon_timer_sc.c */
    #define ALT_LOG_SYS_CLK_HEARTBEAT() \
    	do { alt_log_system_clock(); } while (0)

    /* alt_write_logging - echos a message every time write() is called,
     * displays the first ALT_LOG_WRITE_ECHO_LEN characters.
     * This macro is used in alt_write.c */
    #ifndef ALT_LOG_WRITE_ECHO_LEN
        #define ALT_LOG_WRITE_ECHO_LEN 15
    #endif

    #define ALT_LOG_WRITE_FUNCTION(ptr,len) \
        do { alt_log_write(ptr,len); } while (0)

#else /* ALT_LOG_ENABLE not defined */

    /* logging is off, set all relevant macros to null */
    #define ALT_LOG_PRINT_BOOT(...)
    #define ALT_LOG_PRINTF(...)
    #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) 
    #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) 
    #define ALT_LOG_SYS_CLK_HEARTBEAT()
    #define ALT_LOG_PUTS(str) 
    #define ALT_LOG_WRITE_FUNCTION(ptr,len) 

#endif /* ALT_LOG_ENABLE */

#endif /* __ALT_LOG_PRINTF_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -