12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- * Copyright (C) 2011-2012, Freescale Semiconductor, Inc. All Rights Reserved
- * THIS SOURCE CODE IS CONFIDENTIAL AND PROPRIETARY AND MAY NOT
- * BE USED OR DISTRIBUTED WITHOUT THE WRITTEN PERMISSION OF
- * Freescale Semiconductor, Inc.
- */
- /*!
- * @file functions.h
- * @brief This header file contains functions info.
- *
- */
- #ifndef FUNCTIONS_H
- #define FUNCTIONS_H
- //----------------------------------------------------------------------
- // Some Genaral Macros
- //----------------------------------------------------------------------
- //#define FALSE 0
- //#define TRUE 1
- #define DUMMY_INFO 0xf00f00
- #define reg8_read(addr) *((BYTE *)(addr))
- #define reg16_read(addr) *((HALF *)(addr))
- #define reg32_read(addr) *(WORD *)((addr))
- #define reg32_read_bit(addr,bitpos) (reg32_read(addr) & (1<<(bitpos)))
- #define reg8_write(addr,val) *((BYTE *)(addr)) = (val)
- #define reg16_write(addr,val) *((HALF *)(addr)) = (val)
- #define reg32_write(addr,val) *((WORD *)(addr)) = (val)
- #define mem8_read(addr) *((BYTE *)(addr))
- #define mem16_read(addr) *((HALF *)(addr))
- #define mem32_read(addr) *(WORD *)((addr))
- #define mem8_write(addr,val) *((BYTE *)(addr)) = (val)
- #define mem16_write(addr,val) *((HALF *)(addr)) = (val)
- #define mem32_write(addr,val) *((WORD *)(addr)) = (val)
- #define reg8setbit(addr,bitpos) \
- reg8_write((addr),(reg8_read((addr)) | (1<<(bitpos))))
- #define reg16setbit(addr,bitpos) \
- reg16_write((addr),(reg16_read((addr)) | (1<<(bitpos))))
- #define reg32setbit(addr,bitpos) \
- reg32_write((addr),(reg32_read((addr)) | (1<<(bitpos))))
- #define reg8clrbit(addr,bitpos) \
- reg8_write((addr),(reg8_read((addr)) & (0xFF ^ (1<<(bitpos)))))
- #define reg16clrbit(addr,bitpos) \
- reg16_write((addr),(reg16_read((addr)) & (0xFFFF ^ (1<<(bitpos)))))
- #define reg32clrbit(addr,bitpos) \
- reg32_write((addr),(reg32_read((addr)) & (0xFFFFFFFF ^ (1<<(bitpos)))))
- // ##### EXPORTED TYPE DEFINITIONS ################################################# {{{1
- typedef volatile unsigned long WORD;
- typedef volatile unsigned short HALF;
- typedef volatile unsigned char BYTE;
- //----------------------------------------------------------------------
- // Write With Mask (write only certain bits)
- //----------------------------------------------------------------------
- void reg8_write_mask(WORD addr, BYTE wdata, BYTE mask);
- void reg16_write_mask(WORD addr, HALF wdata, HALF mask);
- void reg32_write_mask(WORD addr, WORD wdata, WORD mask);
- #endif //FUNCTIONS_H
|