35 #include <avr/pgmspace.h>
37 #include "loader/symbols.h"
39 #define SYMTAB_CONF_BINARY_SEARCH 0
43 symtab_lookup(
const char *name)
48 for(name_addr = (
void*)pgm_read_word(&symbols[0].name);
50 name_addr = (
void*)pgm_read_word(&symbols[++i].name)) {
52 if(strcmp_P (name, (
const char*)name_addr) == 0) {
53 return (
void*)pgm_read_word(&symbols[i].value);
62 #define SYMTAB_PRINT_BUFFER_SIZE 30
67 const char* name_addr;
68 char buf[SYMTAB_PRINT_BUFFER_SIZE];
70 for(name_addr = (
const char*)pgm_read_word(&symbols[0].name);
72 name_addr = pgm_read_word(&symbols[++i].name)) {
74 strncpy_P (buf, (
const char*)name_addr, SYMTAB_PRINT_BUFFER_SIZE);
75 buf [SYMTAB_PRINT_BUFFER_SIZE - 1] =
'\0';
76 uint16_t value = pgm_read_word(&symbols[i].value);
77 printf (
"%s -> 0x%x\n", buf, value);
#define NULL
The null pointer.