|
14 | 14 | #include <tinyhal.h> |
15 | 15 | #include <TinyBooterEntry.h> |
16 | 16 |
|
17 | | -#define BUTTON_ENTR BUTTON_B4 |
18 | | -#define BUTTON_USER_IDX BUTTON_B5_BITIDX |
19 | | - |
20 | 17 | // boot loader doesn't use the CMSIS-RTOS kernel, so sleep goes direct |
21 | 18 | // to the low level support |
22 | 19 | extern void HAL_CPU_Sleep( SLEEP_LEVEL level, UINT64 wakeEvents ); |
@@ -90,24 +87,24 @@ void Tinybooter_PrepareForDecompressedLaunch() |
90 | 87 | bool WaitForTinyBooterUpload( INT32 &timeout_ms ) |
91 | 88 | { |
92 | 89 | bool enterBooterMode = false; |
93 | | - GPIO_BUTTON_CONFIG * ButtonConfig = &g_GPIO_BUTTON_Config; |
94 | 90 |
|
95 | | -// wait forever when using RAM build |
96 | 91 | #if defined(TARGETLOCATION_RAM) |
| 92 | + // Wait forever when using RAM build |
97 | 93 | enterBooterMode = true; |
98 | 94 | timeout_ms = -1; |
99 | | -#else |
100 | | - //// User override (button held) |
101 | | - //if(ButtonConfig->Mapping[BUTTON_USER_IDX].m_HW != GPIO_PIN_NONE) |
102 | | - //{ |
103 | | - // Events_WaitForEvents(0,100); // wait for buttons to init |
104 | | - // if(CPU_GPIO_GetPinState(ButtonConfig->Mapping[BUTTON_USER_IDX].m_HW)) |
105 | | - // { |
106 | | - // // user override, so lets stay forever |
107 | | - // timeout_ms = -1; |
108 | | - // enterBooterMode = true; |
109 | | - // } |
110 | | - //} |
| 95 | +#elif defined(TINYBOOTER_ENTRY_GPIO_PIN) |
| 96 | + |
| 97 | + if(!CPU_GPIO_EnableInputPin(TINYBOOTER_ENTRY_GPIO_PIN, FALSE, NULL, GPIO_INT_NONE, TINYBOOTER_ENTRY_GPIO_RESISTOR)) |
| 98 | + { |
| 99 | + ASSERT(FALSE); |
| 100 | + } |
| 101 | + if(CPU_GPIO_GetPinState(TINYBOOTER_ENTRY_GPIO_PIN) == TINYBOOTER_ENTRY_GPIO_STATE) |
| 102 | + { |
| 103 | + // User override, so let's stay forever |
| 104 | + enterBooterMode = true; |
| 105 | + timeout_ms = -1; |
| 106 | + } |
| 107 | + |
111 | 108 | #endif |
112 | 109 | return enterBooterMode; |
113 | 110 | } |
@@ -139,25 +136,6 @@ void TinyBooter_OnStateChange( TinyBooterState state, void* data, void ** retDat |
139 | 136 | // The data parameter is a pointer to the timeout value for the booter mode. |
140 | 137 | //////////////////////////////////////////////////////////////////////////////////// |
141 | 138 | case State_ButtonPress: |
142 | | - if(NULL != data) |
143 | | - { |
144 | | - UINT32 down, up; |
145 | | - INT32* timeout_ms = (INT32*)data; |
146 | | - |
147 | | - // wait forever if a button was pressed |
148 | | - *timeout_ms = -1; |
149 | | - |
150 | | - // process buttons |
151 | | - while(Buttons_GetNextStateChange(down, up)) |
152 | | - { |
153 | | - // leave a way to exit boot mode incase it was accidentally entered |
154 | | - if(0 != (down & BUTTON_ENTR)) |
155 | | - { |
156 | | - // force an enumerate and launch |
157 | | - *timeout_ms = 0; |
158 | | - } |
159 | | - } |
160 | | - } |
161 | 139 | break; |
162 | 140 |
|
163 | 141 | //////////////////////////////////////////////////////////////////////////////////// |
|
0 commit comments