//uint8_t atm128RegFile[100][0xa0];
#define _BV(bit) (1 << (bit))
-#define __SFR_OFFSET 0x20
+//#define __SFR_OFFSET 0x20
#define _MMIO_BYTE(mem_addr) (*((volatile uint8_t *)(&atm128RegFile[sim_node()][mem_addr])))
#define _MMIO_WORD(mem_addr) (*((volatile uint16_t *)(&atm128RegFile[sim_node()][mem_addr])))
#define _SFR_MEM8(mem_addr) _MMIO_BYTE(mem_addr)
#define _SFR_MEM16(mem_addr) _MMIO_WORD(mem_addr)
-#define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr) + 0x20)
-#define _SFR_IO16(io_addr) _MMIO_WORD((io_addr) + 0x20)
+#define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr) )
+#define _SFR_IO16(io_addr) _MMIO_WORD((io_addr) )
enum {
/* Input Pins, Port F */
/* Macro to create union casting functions. */
#define DEFINE_UNION_CAST(func_name, from_type, to_type) \
- to_type func_name(from_type x) { \
- union {from_type f; to_type t;} c = {f:x}; return c.t; }
+ to_type func_name(from_type x_type) { \
+ union {from_type f_type; to_type t_type;} c_type = {f_type:x_type}; return c_type.t_type; }
// Bit operators using bit number
#define SET_BIT(port, bit) ((REG_ACCESS(port)) |= _BV(bit))
sim_event_t* compare;
void timer0_compare_handle(sim_event_t* evt) {
- dbg("HplAtm128CompareC", "Beginning compare at 0x%p\n", evt);
+ dbg("HplAtm128CompareC", "%s Beginning compare at 0x%p\n", __FUNCTION__, evt);
if (evt->cancelled) {
return;
}
else {
- char timeStr[128];
- sim_print_now(timeStr, 128);
- dbg("HplAtm128CompareC", "Handling compare at 0x%p @ %s\n", evt, sim_time_string());
+ dbg("HplAtm128CompareC", "%s Handling compare at 0x%p @ %s\n",__FUNCTION__, evt, sim_time_string());
if (READ_BIT(interruptRegister, interruptBit)) {
CLR_BIT(flagRegister, flagBit);
- dbg("HplAtm128CompareC", "Compare interrupt @ %s\n", timeStr);
+ dbg("HplAtm128CompareC", "%s Compare interrupt @ %s\n", __FUNCTION__, sim_time_string());
SIG_OUTPUT_COMPARE0();
}
else {