Skip to content
Snippets Groups Projects
Commit 0ca12760 authored by da1l6's avatar da1l6
Browse files

Fix build with AVR-GCC 4.6 It requires PROGMEM variables to be const.

parent b0d405fb
No related branches found
No related tags found
No related merge requests found
...@@ -48,7 +48,7 @@ void MGMT_transmit_buffer_hex(unsigned char* data, unsigned char length); ...@@ -48,7 +48,7 @@ void MGMT_transmit_buffer_hex(unsigned char* data, unsigned char length);
void cardreader_display_clear(void); void cardreader_display_clear(void);
void cardreader_display_move(uint8_t x, uint8_t y); void cardreader_display_move(uint8_t x, uint8_t y);
void cardreader_display_write_sz(char* string); void cardreader_display_write_sz(char* string);
void cardreader_display_write_sz_P(char* string); void cardreader_display_write_sz_P(const char* string);
void cardreader_display_show_result(uint8_t success); void cardreader_display_show_result(uint8_t success);
void cardreader_display_set_backlight(uint8_t on); void cardreader_display_set_backlight(uint8_t on);
uint8_t cardreader_sys_get_card_status(void); uint8_t cardreader_sys_get_card_status(void);
...@@ -355,7 +355,7 @@ uint8_t cardreader_init_card_key(KEY key){ ...@@ -355,7 +355,7 @@ uint8_t cardreader_init_card_key(KEY key){
transport_send_message((uint8_t*)&msg, 1+sizeof(ISO7816_APDU_Header)+ sizeof(KEY)); transport_send_message((uint8_t*)&msg, 1+sizeof(ISO7816_APDU_Header)+ sizeof(KEY));
uint8_t card_status[4]; uint8_t card_status[4];
uint16_t length = transport_receive_message(&card_status, 4, 10000); uint16_t length = transport_receive_message((uint8_t*)&card_status, 4, 10000);
if (TRANSPORT_IS_ERROR(length)){ if (TRANSPORT_IS_ERROR(length)){
printf_P(PSTR("Transport Error %04x\n"), length); printf_P(PSTR("Transport Error %04x\n"), length);
return 0; return 0;
...@@ -370,7 +370,7 @@ uint8_t cardreader_clear_card_key(void){ ...@@ -370,7 +370,7 @@ uint8_t cardreader_clear_card_key(void){
transport_send_message((uint8_t*)&msg, 1+sizeof(ISO7816_APDU_Header)); transport_send_message((uint8_t*)&msg, 1+sizeof(ISO7816_APDU_Header));
uint8_t card_status[4]; uint8_t card_status[4];
uint16_t length = transport_receive_message(&card_status, 4, 10000); uint16_t length = transport_receive_message((uint8_t*)&card_status, 4, 10000);
if (TRANSPORT_IS_ERROR(length)){ if (TRANSPORT_IS_ERROR(length)){
printf_P(PSTR("Transport Error %04x\n"), length); printf_P(PSTR("Transport Error %04x\n"), length);
return 0; return 0;
...@@ -427,7 +427,7 @@ void cardreader_display_write_sz(char* string){ ...@@ -427,7 +427,7 @@ void cardreader_display_write_sz(char* string){
transport_receive_message(&success, 1, 3000); transport_receive_message(&success, 1, 3000);
} }
void cardreader_display_write_sz_P(char* string){ void cardreader_display_write_sz_P(const char* string){
cardreader_display_message_t msg = {CARDREADER_MSG_TYPE_DISPALY}; cardreader_display_message_t msg = {CARDREADER_MSG_TYPE_DISPALY};
msg.command = CARDREADER_DISPLAY_MSG_WRITE; msg.command = CARDREADER_DISPLAY_MSG_WRITE;
uint16_t len = strlen_P(string); uint16_t len = strlen_P(string);
......
...@@ -5,20 +5,20 @@ uint8_t door_read_pin_status(void); ...@@ -5,20 +5,20 @@ uint8_t door_read_pin_status(void);
uint8_t door_update_status(uint8_t sensor_status); uint8_t door_update_status(uint8_t sensor_status);
uint8_t is_alarm_status(uint8_t door_status); uint8_t is_alarm_status(uint8_t door_status);
char status_unlocked[] PROGMEM = "Unlocked"; const char status_unlocked[] PROGMEM = "Unlocked";
char status_locked[] PROGMEM = "Locked"; const char status_locked[] PROGMEM = "Locked";
char status_open[] PROGMEM = "Open"; const char status_open[] PROGMEM = "Open";
char status_alarm_cut[] PROGMEM = "Alarm wire open"; const char status_alarm_cut[] PROGMEM = "Alarm wire open";
char status_alarm[] PROGMEM = "Alarm"; const char status_alarm[] PROGMEM = "Alarm";
char status_unlocking[] PROGMEM = "Unlocking..."; const char status_unlocking[] PROGMEM = "Unlocking...";
char status_locking[] PROGMEM = "Locking..."; const char status_locking[] PROGMEM = "Locking...";
char* status_names[] PROGMEM = {status_unlocked, const char* const status_names[] PROGMEM = {status_unlocked,
status_locked, status_locked,
status_open, status_open,
status_alarm_cut, status_alarm_cut,
status_alarm, status_alarm,
status_unlocking, status_unlocking,
status_locking}; status_locking};
volatile uint8_t door_status; volatile uint8_t door_status;
...@@ -149,7 +149,7 @@ void lock(void){ ...@@ -149,7 +149,7 @@ void lock(void){
DOOR_PORT = (DOOR_PORT & (uint8_t)~COMMAND_UNLOCK_PIN) | COMMAND_LOCK_PIN; DOOR_PORT = (DOOR_PORT & (uint8_t)~COMMAND_UNLOCK_PIN) | COMMAND_LOCK_PIN;
} }
uint8_t toggle_lock_unlock( void (*msg_target)(char*) ){ uint8_t toggle_lock_unlock( void (*msg_target)(const char*) ){
if ((door_status & DOOR_STATUS_UNLOCKED) == 0){ if ((door_status & DOOR_STATUS_UNLOCKED) == 0){
return unlock_checked(msg_target); return unlock_checked(msg_target);
} else { } else {
...@@ -157,7 +157,7 @@ uint8_t toggle_lock_unlock( void (*msg_target)(char*) ){ ...@@ -157,7 +157,7 @@ uint8_t toggle_lock_unlock( void (*msg_target)(char*) ){
} }
} }
uint8_t unlock_checked( void (*msg_target)(char*) ){ uint8_t unlock_checked( void (*msg_target)(const char*) ){
if (door_status & DOOR_STATUS_UNLOCKED){ if (door_status & DOOR_STATUS_UNLOCKED){
msg_target(PSTR("Already unlocked\n")); msg_target(PSTR("Already unlocked\n"));
} else if (door_status & DOOR_STATUS_LOCKING){ } else if (door_status & DOOR_STATUS_LOCKING){
...@@ -171,7 +171,7 @@ uint8_t unlock_checked( void (*msg_target)(char*) ){ ...@@ -171,7 +171,7 @@ uint8_t unlock_checked( void (*msg_target)(char*) ){
} }
uint8_t lock_checked( void (*msg_target)(char*) ){ uint8_t lock_checked( void (*msg_target)(const char*) ){
if (is_alarm_status(door_status)){ if (is_alarm_status(door_status)){
msg_target(PSTR("Can't lock in alarm state\n")); msg_target(PSTR("Can't lock in alarm state\n"));
} else if (door_status & DOOR_STATUS_UNLOCKING) { } else if (door_status & DOOR_STATUS_UNLOCKING) {
......
...@@ -43,7 +43,7 @@ uint8_t door_clear_alarm(void); ...@@ -43,7 +43,7 @@ uint8_t door_clear_alarm(void);
void unlock(void); void unlock(void);
void lock(void); void lock(void);
uint8_t toggle_lock_unlock( void (*msg_target)(char*) ); uint8_t toggle_lock_unlock( void (*msg_target)(const char*) );
uint8_t unlock_checked( void (*msg_target)(char*) ); uint8_t unlock_checked( void (*msg_target)(const char*) );
uint8_t lock_checked( void (*msg_target)(char*) ); uint8_t lock_checked( void (*msg_target)(const char*) );
void door_write_status(void); void door_write_status(void);
\ No newline at end of file
...@@ -5,18 +5,18 @@ ...@@ -5,18 +5,18 @@
#include "door.h" #include "door.h"
#include "power_monitor.h" #include "power_monitor.h"
char log_event_startup[] PROGMEM = "== System Started =="; const char log_event_startup[] PROGMEM = "== System Started ==";
char log_event_alarm_raised[] PROGMEM = "Alarm Raised"; const char log_event_alarm_raised[] PROGMEM = "Alarm Raised";
char log_event_alarm_changed[] PROGMEM = "State change during Alarm"; const char log_event_alarm_changed[] PROGMEM = "State change during Alarm";
char log_event_alarm_login[] PROGMEM = "Login during Alarm"; const char log_event_alarm_login[] PROGMEM = "Login during Alarm";
char log_event_alarm_disabled[] PROGMEM = "Alarm disabled"; const char log_event_alarm_disabled[] PROGMEM = "Alarm disabled";
char log_event_ac_fail[] PROGMEM = "AC Power Fail"; const char log_event_ac_fail[] PROGMEM = "AC Power Fail";
char log_event_ac_return[] PROGMEM = "AC Power Restored"; const char log_event_ac_return[] PROGMEM = "AC Power Restored";
char log_event_main_battery_low[] PROGMEM = "Main Battery Low"; const char log_event_main_battery_low[] PROGMEM = "Main Battery Low";
char log_event_keymatic_battery_low[] PROGMEM = "Keymatic Battery Low"; const char log_event_keymatic_battery_low[] PROGMEM = "Keymatic Battery Low";
char log_event_door_command_timeout[] PROGMEM = "Door command Timeout"; const char log_event_door_command_timeout[] PROGMEM = "Door command Timeout";
char* event_names[] PROGMEM = {log_event_startup, const char* const event_names[] PROGMEM = {log_event_startup,
log_event_alarm_raised, log_event_alarm_raised,
log_event_alarm_changed, log_event_alarm_changed,
log_event_alarm_login, log_event_alarm_login,
......
...@@ -165,6 +165,8 @@ logout - Exit shell\n\ ...@@ -165,6 +165,8 @@ logout - Exit shell\n\
quit - Exit shell\n")); quit - Exit shell\n"));
} }
extern void MGMT_transmit_buffer_hex(unsigned char* data, unsigned char length);
void cmd_keyslot_init(readline_parsed_cmd_t* cmd){ void cmd_keyslot_init(readline_parsed_cmd_t* cmd){
uint8_t force = 0; uint8_t force = 0;
uint8_t usage_error = 0; uint8_t usage_error = 0;
...@@ -291,7 +293,7 @@ void cmd_keyslot_list(readline_parsed_cmd_t* cmd){ ...@@ -291,7 +293,7 @@ void cmd_keyslot_list(readline_parsed_cmd_t* cmd){
keystore_list(); keystore_list();
} }
void print_P(char* pstr){ void print_P(const char* pstr){
printf_P(pstr); printf_P(pstr);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment