Skip to content

Commit 346b173

Browse files
committed
codal_port: Enable MICROPY_ROM_TEXT_COMPRESSION.
Reduces the firmware by about 1800 bytes. Signed-off-by: Damien George <damien@micropython.org>
1 parent 23ee9d9 commit 346b173

14 files changed

+47
-46
lines changed

src/codal_port/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Makefile to build libmicropython.a
22

3+
MICROPY_ROM_TEXT_COMPRESSION ?= 1
34
FROZEN_MANIFEST ?= manifest.py
45

56
CROSS_COMPILE = arm-none-eabi-

src/codal_port/drv_display.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ static void draw_object(mp_obj_t obj) {
9393
async_stop();
9494
}
9595
} else {
96-
mp_sched_schedule_exception(mp_obj_new_exception_msg(&mp_type_TypeError, "not an image"));
96+
mp_sched_schedule_exception(mp_obj_new_exception_msg(&mp_type_TypeError, MP_ERROR_TEXT("not an image")));
9797
async_stop();
9898
}
9999
}

src/codal_port/microbit_accelerometer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ STATIC uint32_t gesture_from_obj(mp_obj_t gesture_in) {
6262
return i;
6363
}
6464
}
65-
mp_raise_ValueError("invalid gesture");
65+
mp_raise_ValueError(MP_ERROR_TEXT("invalid gesture"));
6666
}
6767

6868
STATIC void update_for_gesture(void) {

src/codal_port/microbit_display.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,10 @@ MP_DEFINE_CONST_FUN_OBJ_1(microbit_display_clear_obj, microbit_display_clear_fun
170170

171171
void microbit_display_set_pixel(microbit_display_obj_t *display, mp_int_t x, mp_int_t y, mp_int_t bright) {
172172
if (x < 0 || y < 0 || x >= MICROBIT_DISPLAY_WIDTH || y >= MICROBIT_DISPLAY_HEIGHT) {
173-
mp_raise_ValueError("index out of bounds");
173+
mp_raise_ValueError(MP_ERROR_TEXT("index out of bounds"));
174174
}
175175
if (bright < 0 || bright > MICROBIT_DISPLAY_MAX_BRIGHTNESS) {
176-
mp_raise_ValueError("brightness out of bounds");
176+
mp_raise_ValueError(MP_ERROR_TEXT("brightness out of bounds"));
177177
}
178178
microbit_hal_display_set_pixel(x, y, bright);
179179
}
@@ -188,7 +188,7 @@ MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(microbit_display_set_pixel_obj, 4, 4, microb
188188

189189
mp_int_t microbit_display_get_pixel(microbit_display_obj_t *display, mp_int_t x, mp_int_t y) {
190190
if (x < 0 || y < 0 || x >= MICROBIT_DISPLAY_WIDTH || y >= MICROBIT_DISPLAY_HEIGHT) {
191-
mp_raise_ValueError("index out of bounds");
191+
mp_raise_ValueError(MP_ERROR_TEXT("index out of bounds"));
192192
}
193193
return microbit_hal_display_get_pixel(x, y);
194194
}

src/codal_port/microbit_image.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ STATIC microbit_image_obj_t *image_from_parsed_str(const char *s, mp_int_t len)
6868
} else if ('c' >= '0' && c <= '9') {
6969
++line_len;
7070
} else {
71-
mp_raise_ValueError("unexpected character in Image definition");
71+
mp_raise_ValueError(MP_ERROR_TEXT("unexpected character in Image definition"));
7272
}
7373
}
7474
if (line_len) {
@@ -133,7 +133,7 @@ STATIC mp_obj_t microbit_image_make_new(const mp_obj_type_t *type_in, mp_uint_t
133133
return image_from_parsed_str(str, len);
134134
}
135135
} else {
136-
mp_raise_TypeError("Image(s) takes a string");
136+
mp_raise_TypeError(MP_ERROR_TEXT("Image(s) takes a string"));
137137
}
138138
}
139139

@@ -149,7 +149,7 @@ STATIC mp_obj_t microbit_image_make_new(const mp_obj_type_t *type_in, mp_uint_t
149149
mp_get_buffer_raise(args[2], &bufinfo, MP_BUFFER_READ);
150150

151151
if (w < 0 || h < 0 || (size_t)(w * h) != bufinfo.len) {
152-
mp_raise_ValueError("image data is incorrect size");
152+
mp_raise_ValueError(MP_ERROR_TEXT("image data is incorrect size"));
153153
}
154154
mp_int_t i = 0;
155155
for (mp_int_t y = 0; y < h; y++) {
@@ -164,7 +164,7 @@ STATIC mp_obj_t microbit_image_make_new(const mp_obj_type_t *type_in, mp_uint_t
164164
}
165165

166166
default: {
167-
mp_raise_TypeError("Image() takes 0 to 3 arguments");
167+
mp_raise_TypeError(MP_ERROR_TEXT("Image() takes 0 to 3 arguments"));
168168
}
169169
}
170170
}
@@ -205,19 +205,19 @@ mp_obj_t microbit_image_get_pixel(mp_obj_t self_in, mp_obj_t x_in, mp_obj_t y_in
205205
mp_int_t x = mp_obj_get_int(x_in);
206206
mp_int_t y = mp_obj_get_int(y_in);
207207
if (x < 0 || y < 0) {
208-
mp_raise_ValueError("index cannot be negative");
208+
mp_raise_ValueError(MP_ERROR_TEXT("index cannot be negative"));
209209
}
210210
if (x < image_width(self) && y < image_height(self)) {
211211
return MP_OBJ_NEW_SMALL_INT(image_get_pixel(self, x, y));
212212
}
213-
mp_raise_ValueError("index too large");
213+
mp_raise_ValueError(MP_ERROR_TEXT("index too large"));
214214
}
215215
MP_DEFINE_CONST_FUN_OBJ_3(microbit_image_get_pixel_obj, microbit_image_get_pixel);
216216

217217
/* Raise an exception if not mutable */
218218
static void check_mutability(microbit_image_obj_t *self) {
219219
if (self->base.five) {
220-
mp_raise_TypeError("image cannot be modified (try copying first)");
220+
mp_raise_TypeError(MP_ERROR_TEXT("image cannot be modified (try copying first)"));
221221
}
222222
}
223223

@@ -228,17 +228,17 @@ mp_obj_t microbit_image_set_pixel(mp_uint_t n_args, const mp_obj_t *args) {
228228
mp_int_t x = mp_obj_get_int(args[1]);
229229
mp_int_t y = mp_obj_get_int(args[2]);
230230
if (x < 0 || y < 0) {
231-
mp_raise_ValueError("index cannot be negative");
231+
mp_raise_ValueError(MP_ERROR_TEXT("index cannot be negative"));
232232
}
233233
mp_int_t bright = mp_obj_get_int(args[3]);
234234
if (bright < 0 || bright > MICROBIT_DISPLAY_MAX_BRIGHTNESS) {
235-
mp_raise_ValueError("brightness out of bounds");
235+
mp_raise_ValueError(MP_ERROR_TEXT("brightness out of bounds"));
236236
}
237237
if (x < image_width(self) && y < image_height(self)) {
238238
greyscale_set_pixel(&self->greyscale, x, y, bright);
239239
return mp_const_none;
240240
}
241-
mp_raise_ValueError("index too large");
241+
mp_raise_ValueError(MP_ERROR_TEXT("index too large"));
242242
}
243243
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(microbit_image_set_pixel_obj, 4, 4, microbit_image_set_pixel);
244244

@@ -247,7 +247,7 @@ mp_obj_t microbit_image_fill(mp_obj_t self_in, mp_obj_t n_in) {
247247
check_mutability(self);
248248
mp_int_t n = mp_obj_get_int(n_in);
249249
if (n < 0 || n > MICROBIT_DISPLAY_MAX_BRIGHTNESS) {
250-
mp_raise_ValueError("brightness out of bounds");
250+
mp_raise_ValueError(MP_ERROR_TEXT("brightness out of bounds"));
251251
}
252252
greyscale_fill(&self->greyscale, n);
253253
return mp_const_none;
@@ -260,17 +260,17 @@ mp_obj_t microbit_image_blit(mp_uint_t n_args, const mp_obj_t *args) {
260260

261261
mp_obj_t src = args[1];
262262
if (mp_obj_get_type(src) != &microbit_image_type) {
263-
mp_raise_TypeError("expecting an image");
263+
mp_raise_TypeError(MP_ERROR_TEXT("expecting an image"));
264264
}
265265
if (n_args == 7) {
266-
mp_raise_TypeError("must specify both offsets");
266+
mp_raise_TypeError(MP_ERROR_TEXT("must specify both offsets"));
267267
}
268268
mp_int_t x = mp_obj_get_int(args[2]);
269269
mp_int_t y = mp_obj_get_int(args[3]);
270270
mp_int_t w = mp_obj_get_int(args[4]);
271271
mp_int_t h = mp_obj_get_int(args[5]);
272272
if (w < 0 || h < 0) {
273-
mp_raise_ValueError("size cannot be negative");
273+
mp_raise_ValueError(MP_ERROR_TEXT("size cannot be negative"));
274274
}
275275
mp_int_t xdest;
276276
mp_int_t ydest;
@@ -450,7 +450,7 @@ microbit_image_obj_t *microbit_image_for_char(char c) {
450450

451451
microbit_image_obj_t *microbit_image_dim(microbit_image_obj_t *lhs, mp_float_t fval) {
452452
if (fval < 0) {
453-
mp_raise_ValueError("brightness multiplier must not be negative");
453+
mp_raise_ValueError(MP_ERROR_TEXT("brightness multiplier must not be negative"));
454454
}
455455
greyscale_t *result = greyscale_new(image_width(lhs), image_height(lhs));
456456
for (int x = 0; x < image_width(lhs); ++x) {
@@ -466,7 +466,7 @@ STATIC microbit_image_obj_t *microbit_image_sum(microbit_image_obj_t *lhs, micro
466466
mp_int_t h = image_height(lhs);
467467
mp_int_t w = image_width(lhs);
468468
if (image_height(rhs) != h || image_width(rhs) != w) {
469-
mp_raise_ValueError("images must be the same size");
469+
mp_raise_ValueError(MP_ERROR_TEXT("images must be the same size"));
470470
}
471471
greyscale_t *result = greyscale_new(w, h);
472472
for (int x = 0; x < w; ++x) {

src/codal_port/microbit_microphone.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ STATIC uint8_t sound_event_from_obj(mp_obj_t sound) {
7878
return i;
7979
}
8080
}
81-
mp_raise_ValueError("invalid sound");
81+
mp_raise_ValueError(MP_ERROR_TEXT("invalid sound"));
8282
}
8383

8484
STATIC mp_obj_t microbit_microphone_set_threshold(mp_obj_t self_in, mp_obj_t sound_in, mp_obj_t value_in) {
@@ -90,7 +90,7 @@ STATIC mp_obj_t microbit_microphone_set_threshold(mp_obj_t self_in, mp_obj_t sou
9090
} else if (sound == SOUND_EVENT_LOUD) {
9191
kind = 1;
9292
} else {
93-
mp_raise_ValueError("invalid sound");
93+
mp_raise_ValueError(MP_ERROR_TEXT("invalid sound"));
9494
}
9595
int value = mp_obj_get_int(value_in);
9696
microphone_init();

src/codal_port/microbit_pin.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ mp_obj_t microbit_pin_write_digital(mp_obj_t self_in, mp_obj_t value_in) {
6161
microbit_pin_obj_t *self = (microbit_pin_obj_t*)self_in;
6262
int val = mp_obj_get_int(value_in);
6363
if (val >> 1) {
64-
mp_raise_ValueError("value must be 0 or 1");
64+
mp_raise_ValueError(MP_ERROR_TEXT("value must be 0 or 1"));
6565
}
6666
if (microbit_obj_pin_acquire(self, microbit_pin_mode_write_digital)) {
6767
}
@@ -109,7 +109,7 @@ mp_obj_t microbit_pin_write_analog(mp_obj_t self_in, mp_obj_t value_in) {
109109
set_value = mp_obj_get_int(value_in);
110110
}
111111
if (set_value < 0 || set_value > 1023) {
112-
mp_raise_ValueError("value must be between 0 and 1023");
112+
mp_raise_ValueError(MP_ERROR_TEXT("value must be between 0 and 1023"));
113113
}
114114
if (microbit_obj_pin_acquire(self, microbit_pin_mode_write_analog)) {
115115
}
@@ -132,7 +132,7 @@ mp_obj_t microbit_pin_set_analog_period(mp_obj_t self_in, mp_obj_t period_in) {
132132
microbit_pin_obj_t *self = (microbit_pin_obj_t*)self_in;
133133
mp_int_t period = mp_obj_get_int(period_in) * 1000;
134134
if (microbit_hal_pin_set_analog_period_us(self->name, period) == -1) {
135-
mp_raise_ValueError("invalid period");
135+
mp_raise_ValueError(MP_ERROR_TEXT("invalid period"));
136136
}
137137
return mp_const_none;
138138
}
@@ -142,7 +142,7 @@ mp_obj_t microbit_pin_set_analog_period_microseconds(mp_obj_t self_in, mp_obj_t
142142
microbit_pin_obj_t *self = (microbit_pin_obj_t*)self_in;
143143
mp_int_t period = mp_obj_get_int(period_in);
144144
if (microbit_hal_pin_set_analog_period_us(self->name, period) == -1) {
145-
mp_raise_ValueError("invalid period");
145+
mp_raise_ValueError(MP_ERROR_TEXT("invalid period"));
146146
}
147147
return mp_const_none;
148148
}
@@ -269,7 +269,7 @@ const microbit_pin_obj_t *microbit_obj_get_pin(mp_const_obj_t o) {
269269
if (type == &microbit_touch_pin_type || type == &microbit_ad_pin_type || type == &microbit_dig_pin_type) {
270270
return (microbit_pin_obj_t*)o;
271271
} else {
272-
mp_raise_TypeError("expecting a pin");
272+
mp_raise_TypeError(MP_ERROR_TEXT("expecting a pin"));
273273
}
274274
}
275275

src/codal_port/microbit_pinaudio.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ void microbit_pin_audio_select(mp_const_obj_t select) {
3636
if (select == mp_const_none) {
3737
pin_selected = NULL;
3838
} else if (select == MP_OBJ_FROM_PTR(&microbit_pin_speaker_obj)) {
39-
mp_raise_ValueError("pin_speaker not allowed");
39+
mp_raise_ValueError(MP_ERROR_TEXT("pin_speaker not allowed"));
4040
} else {
4141
pin_selected = microbit_obj_get_pin((mp_obj_t)select);
4242
}

src/codal_port/microbit_pinmode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ static void noop(const microbit_pin_obj_t *pin) {
7777

7878
void pinmode_error(const microbit_pin_obj_t *pin) {
7979
const microbit_pinmode_t *current_mode = microbit_pin_get_mode(pin);
80-
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "Pin %d in %q mode", pin->number, current_mode->name));
80+
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, MP_ERROR_TEXT("Pin %d in %q mode"), pin->number, current_mode->name));
8181
}
8282

8383
static void analog_release(const microbit_pin_obj_t *pin) {

src/codal_port/microbit_spi.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ STATIC bool microbit_spi_initialised = false;
3838

3939
STATIC void microbit_spi_check_initialised(void) {
4040
if (!microbit_spi_initialised) {
41-
mp_raise_ValueError("SPI not initialised");
41+
mp_raise_ValueError(MP_ERROR_TEXT("SPI not initialised"));
4242
}
4343
}
4444

@@ -125,7 +125,7 @@ STATIC mp_obj_t microbit_spi_write_readinto(mp_obj_t self_in, mp_obj_t write_buf
125125
mp_buffer_info_t read_bufinfo;
126126
mp_get_buffer_raise(read_buf, &read_bufinfo, MP_BUFFER_WRITE);
127127
if (write_bufinfo.len != read_bufinfo.len) {
128-
mp_raise_ValueError("write and read buffers must be the same length");
128+
mp_raise_ValueError(MP_ERROR_TEXT("write and read buffers must be the same length"));
129129
}
130130
microbit_hal_spi_transfer(write_bufinfo.len, write_bufinfo.buf, read_bufinfo.buf);
131131
return mp_const_none;

0 commit comments

Comments
 (0)