makeqstrdata.py

C programming, build, interpreter/VM.
Target audience: MicroPython Developers.
Post Reply
cbergren
Posts: 2
Joined: Wed Dec 14, 2016 10:43 pm

makeqstrdata.py

Post by cbergren » Wed Dec 14, 2016 11:13 pm

I am porting uPy to a custom arm board and have questions about generating a proper set of qstr code. I'm trying to get the minimal configuration running; it compiles now but >>> doesn't seem to execute the code right yet. I have probably not configured/generated my qstr files properly. Here is my list of questions.

1) Please recognize that I'm not running the Make files from scratch. I'm not convinced they are supported in my dev environment. There is no OS and I'm using a subset of armcc to compile the C code. So I've been messing with makeqstrdata.py using Python 2.7.6 in a dos window. I'm not sure where to get the QCFG data, so I've modified makeqstrdata.py to use cfg_bytes_len = 1 (for what I'm guessing is my small environment). Python makeqstrdata.py qstrdefs.h now executes and outputs that which might be expected.

2) I also see that the hashing method used in makeqstrdata.py needs to be the same as used in qstr.c. They were different to start with (probably my faulty choices). I've edited these to be roughly the same (using the '33' hash), but I'm wondering if you could point to the preferred .py and .c file pair - so I've got the right python and C versions with the same algorithm.

3) How is the file qstrdefs.h that is in the code formed? Is it hand edited to match what's in the code?

4) What is the list of files should I be submitting into makeqstrdata.py to make qstrdefs.generated.h?

Thanks very much for whatever attention you can afford me on this. I'm eager to get your code running; I think it's close.

User avatar
dhylands
Posts: 3821
Joined: Mon Jan 06, 2014 6:08 pm
Location: Peachland, BC, Canada
Contact:

Re: makeqstrdata.py

Post by dhylands » Thu Dec 15, 2016 4:01 am

qstrdefsport.h used to contain all of the qstr's for a port. Now it only contains qstr's which aren't legal C symbols.

The rules for generating the qstr's can be found here:
https://github.com/micropython/micropyt ... mk#L61-L88 and
https://github.com/micropython/micropyt ... #L270-L278

Basically, the makeqstrdata.py script runs through pre-processed source files and looks for MP_QSTR_xxx strings.

I keep my micropython source tree in dropbox, which you can find here:
https://www.dropbox.com/sh/pjx5csalh8o2 ... ZE8Ra?dl=0

If you look in the stmhal/build-PYBV10/genhdr you can see the qstrdefs.generated.h file:
https://www.dropbox.com/home/micropytho ... enerated.h

and if you look in the qstr directory you can see all of the generated qstr's

To see what happens with the regular pyboard, you can run make with V=1. Here's the output from the beginning of building the for PYBV10:

Code: Select all

Executing GNUmakefile
BOARD = PYBV10
mkdir -p build-PYBV10/genhdr
Create build-PYBV10/genhdr/pins.h
python boards/make-pins.py --board boards/PYBV10/pins.csv --af boards/stm32f405_af.csv --prefix boards/stm32f4xx_prefix.c --hdr build-PYBV10/genhdr/pins.h --qstr build-PYBV10/pins_qstr.h --af-const build-PYBV10/genhdr/pins_af_const.h --af-py build-PYBV10/pins_af.py > build-PYBV10/pins_PYBV10.c
Create stmconst build-PYBV10/modstm_qstr.h
python make-stmconst.py --qstr build-PYBV10/modstm_qstr.h --mpz build-PYBV10/genhdr/modstm_mpz.h cmsis/stm32f405xx.h > build-PYBV10/genhdr/modstm_const.h
Create build-PYBV10/genhdr/pybcdc.inf
python ../tools/insert-usb-ids.py usb.h pybcdc.inf_template > build-PYBV10/genhdr/pybcdc.inf
Create build-PYBV10/genhdr/pybcdc_inf.h
python ../tools/file2h.py build-PYBV10/genhdr/pybcdc.inf > build-PYBV10/genhdr/pybcdc_inf.h
python ../py/makeversionhdr.py build-PYBV10/genhdr/mpversion.h
Generating build-PYBV10/genhdr/mpversion.h
GEN build-PYBV10/genhdr/qstr.i.last
if [ "../py/mpstate.c ../py/malloc.c ../py/gc.c ../py/qstr.c ../py/vstr.c ../py/mpprint.c ../py/unicode.c ../py/mpz.c ../py/reader.c ../py/lexer.c ../py/parse.c ../py/scope.c ../py/compile.c ../py/emitcommon.c ../py/emitbc.c ../py/asmbase.c ../py/asmx64.c ../py/asmx86.c ../py/asmthumb.c ../py/emitinlinethumb.c ../py/asmarm.c ../py/asmxtensa.c ../py/emitinlinextensa.c ../py/formatfloat.c ../py/parsenumbase.c ../py/parsenum.c ../py/emitglue.c ../py/persistentcode.c ../py/runtime.c ../py/runtime_utils.c ../py/nativeglue.c ../py/stackctrl.c ../py/argcheck.c ../py/warning.c ../py/map.c ../py/obj.c ../py/objarray.c ../py/objattrtuple.c ../py/objbool.c ../py/objboundmeth.c ../py/objcell.c ../py/objclosure.c ../py/objcomplex.c ../py/objdict.c ../py/objenumerate.c ../py/objexcept.c ../py/objfilter.c ../py/objfloat.c ../py/objfun.c ../py/objgenerator.c ../py/objgetitemiter.c ../py/objint.c ../py/objint_longlong.c ../py/objint_mpz.c ../py/objlist.c ../py/objmap.c ../py/objmodule.c ../py/objobject.c ../py/objpolyiter.c ../py/objproperty.c ../py/objnone.c ../py/objnamedtuple.c ../py/objrange.c ../py/objreversed.c ../py/objset.c ../py/objsingleton.c ../py/objslice.c ../py/objstr.c ../py/objstrunicode.c ../py/objstringio.c ../py/objtuple.c ../py/objtype.c ../py/objzip.c ../py/opmethods.c ../py/sequence.c ../py/stream.c ../py/binary.c ../py/builtinimport.c ../py/builtinevex.c ../py/modarray.c ../py/modbuiltins.c ../py/modcollections.c ../py/modgc.c ../py/modio.c ../py/modmath.c ../py/modcmath.c ../py/modmicropython.c ../py/modstruct.c ../py/modsys.c ../py/moduerrno.c ../py/modthread.c ../py/vm.c ../py/bc.c ../py/showbc.c ../py/repl.c ../py/smallint.c ../py/frozenmod.c ../py/../extmod/moductypes.c ../py/../extmod/modujson.c ../py/../extmod/modure.c ../py/../extmod/moduzlib.c ../py/../extmod/moduheapq.c ../py/../extmod/moduhashlib.c ../py/../extmod/modubinascii.c ../py/../extmod/virtpin.c ../py/../extmod/machine_mem.c ../py/../extmod/machine_pinbase.c ../py/../extmod/machine_pulse.c ../py/../extmod/machine_i2c.c ../py/../extmod/machine_spi.c ../py/../extmod/modussl_axtls.c ../py/../extmod/modussl_mbedtls.c ../py/../extmod/modurandom.c ../py/../extmod/moduselect.c ../py/../extmod/modwebsocket.c ../py/../extmod/modwebrepl.c ../py/../extmod/modframebuf.c ../py/../extmod/fsusermount.c ../py/../extmod/vfs_fat.c ../py/../extmod/vfs_fat_ffconf.c ../py/../extmod/vfs_fat_diskio.c ../py/../extmod/vfs_fat_file.c ../py/../extmod/vfs_fat_reader.c ../py/../extmod/vfs_fat_misc.c ../py/../extmod/utime_mphal.c ../py/../extmod/uos_dupterm.c ../py/../lib/embed/abort_.c ../py/../lib/utils/printf.c ../py/emitnative.c main.c system_stm32.c stm32_it.c usbd_conf.c usbd_desc.c usbd_cdc_interface.c usbd_hid_interface.c usbd_msc_storage.c mphalport.c irq.c pendsv.c systick.c timer.c led.c pin.c pin_defs_stmhal.c pin_named_pins.c bufhelper.c dma.c i2c.c spi.c uart.c can.c usb.c wdt.c c_sample.c gccollect.c pybstdio.c help.c input.c machine_i2c.c modmachine.c modpyb.c modstm.c moduos.c modutime.c modusocket.c modnetwork.c import.c extint.c usrsw.c rng.c rtc.c flash.c storage.c builtin_open.c sdcard.c fatfs_port.c lcd.c accel.c servo.c dac.c adc.c ../lib/libc/string0.c ../lib/libm/math.c ../lib/libm/thumb_vfp_sqrtf.c ../lib/libm/asinfacosf.c ../lib/libm/atanf.c ../lib/libm/atan2f.c ../lib/libm/fmodf.c ../lib/libm/roundf.c ../lib/libm/log1pf.c ../lib/libm/acoshf.c ../lib/libm/asinhf.c ../lib/libm/atanhf.c ../lib/libm/kf_rem_pio2.c ../lib/libm/kf_sin.c ../lib/libm/kf_cos.c ../lib/libm/kf_tan.c ../lib/libm/ef_rem_pio2.c ../lib/libm/erf_lgamma.c ../lib/libm/sf_sin.c ../lib/libm/sf_cos.c ../lib/libm/sf_tan.c ../lib/libm/sf_frexp.c ../lib/libm/sf_modf.c ../lib/libm/sf_ldexp.c ../lib/libm/sf_erf.c ../lib/libm/wf_lgamma.c ../lib/libm/wf_tgamma.c ../lib/fatfs/ff.c ../lib/fatfs/option/ccsbcs.c ../lib/mp-readline/readline.c ../lib/netutils/netutils.c ../lib/timeutils/timeutils.c ../lib/utils/pyexec.c ../lib/utils/pyhelp.c" = "" ]; then \
    echo "QSTR Looks like -B used, trying to emulate"; \
    arm-none-eabi-gcc -E -DNO_QSTR -DN_X64 -DN_X86 -DN_THUMB -DN_ARM -DN_XTENSA -Ibuild-PYBV10/tmp -I../lib -I../lib/netutils -I. -I.. -Ibuild-PYBV10 -I../lib/cmsis/inc -Icmsis/ -Ihal/f4/inc -Iusbdev/core/inc -Iusbdev/class/inc -I../lib/mp-readline -I../lib/netutils -I../lib/timeutils -Wall -Wpointer-arith -Werror -ansi -std=gnu99 -nostdlib  -DSTM32F405xx -mthumb -mabi=aapcs-linux -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant -Wdouble-promotion -mtune=cortex-m4 -mcpu=cortex-m4 -DMCU_SERIES_F4 -Os -DNDEBUG -Iboards/PYBV10 -DSTM32_HAL_H='<stm32f4xx_hal.h>' -fdata-sections -ffunction-sections ../py/mpstate.c ../py/malloc.c ../py/gc.c ../py/qstr.c ../py/vstr.c ../py/mpprint.c ../py/unicode.c ../py/mpz.c ../py/reader.c ../py/lexer.c ../py/parse.c ../py/scope.c ../py/compile.c ../py/emitcommon.c ../py/emitbc.c ../py/asmbase.c ../py/asmx64.c ../py/asmx86.c ../py/asmthumb.c ../py/emitinlinethumb.c ../py/asmarm.c ../py/asmxtensa.c ../py/emitinlinextensa.c ../py/formatfloat.c ../py/parsenumbase.c ../py/parsenum.c ../py/emitglue.c ../py/persistentcode.c ../py/runtime.c ../py/runtime_utils.c ../py/nativeglue.c ../py/stackctrl.c ../py/argcheck.c ../py/warning.c ../py/map.c ../py/obj.c ../py/objarray.c ../py/objattrtuple.c ../py/objbool.c ../py/objboundmeth.c ../py/objcell.c ../py/objclosure.c ../py/objcomplex.c ../py/objdict.c ../py/objenumerate.c ../py/objexcept.c ../py/objfilter.c ../py/objfloat.c ../py/objfun.c ../py/objgenerator.c ../py/objgetitemiter.c ../py/objint.c ../py/objint_longlong.c ../py/objint_mpz.c ../py/objlist.c ../py/objmap.c ../py/objmodule.c ../py/objobject.c ../py/objpolyiter.c ../py/objproperty.c ../py/objnone.c ../py/objnamedtuple.c ../py/objrange.c ../py/objreversed.c ../py/objset.c ../py/objsingleton.c ../py/objslice.c ../py/objstr.c ../py/objstrunicode.c ../py/objstringio.c ../py/objtuple.c ../py/objtype.c ../py/objzip.c ../py/opmethods.c ../py/sequence.c ../py/stream.c ../py/binary.c ../py/builtinimport.c ../py/builtinevex.c ../py/modarray.c ../py/modbuiltins.c ../py/modcollections.c ../py/modgc.c ../py/modio.c ../py/modmath.c ../py/modcmath.c ../py/modmicropython.c ../py/modstruct.c ../py/modsys.c ../py/moduerrno.c ../py/modthread.c ../py/vm.c ../py/bc.c ../py/showbc.c ../py/repl.c ../py/smallint.c ../py/frozenmod.c ../py/../extmod/moductypes.c ../py/../extmod/modujson.c ../py/../extmod/modure.c ../py/../extmod/moduzlib.c ../py/../extmod/moduheapq.c ../py/../extmod/moduhashlib.c ../py/../extmod/modubinascii.c ../py/../extmod/virtpin.c ../py/../extmod/machine_mem.c ../py/../extmod/machine_pinbase.c ../py/../extmod/machine_pulse.c ../py/../extmod/machine_i2c.c ../py/../extmod/machine_spi.c ../py/../extmod/modussl_axtls.c ../py/../extmod/modussl_mbedtls.c ../py/../extmod/modurandom.c ../py/../extmod/moduselect.c ../py/../extmod/modwebsocket.c ../py/../extmod/modwebrepl.c ../py/../extmod/modframebuf.c ../py/../extmod/fsusermount.c ../py/../extmod/vfs_fat.c ../py/../extmod/vfs_fat_ffconf.c ../py/../extmod/vfs_fat_diskio.c ../py/../extmod/vfs_fat_file.c ../py/../extmod/vfs_fat_reader.c ../py/../extmod/vfs_fat_misc.c ../py/../extmod/utime_mphal.c ../py/../extmod/uos_dupterm.c ../py/../lib/embed/abort_.c ../py/../lib/utils/printf.c ../py/emitnative.c main.c system_stm32.c stm32_it.c usbd_conf.c usbd_desc.c usbd_cdc_interface.c usbd_hid_interface.c usbd_msc_storage.c mphalport.c irq.c pendsv.c systick.c timer.c led.c pin.c pin_defs_stmhal.c pin_named_pins.c bufhelper.c dma.c i2c.c spi.c uart.c can.c usb.c wdt.c c_sample.c gccollect.c pybstdio.c help.c input.c machine_i2c.c modmachine.c modpyb.c modstm.c moduos.c modutime.c modusocket.c modnetwork.c import.c extint.c usrsw.c rng.c rtc.c flash.c storage.c builtin_open.c sdcard.c fatfs_port.c lcd.c accel.c servo.c dac.c adc.c ../lib/libc/string0.c ../lib/libm/math.c ../lib/libm/thumb_vfp_sqrtf.c ../lib/libm/asinfacosf.c ../lib/libm/atanf.c ../lib/libm/atan2f.c ../lib/libm/fmodf.c ../lib/libm/roundf.c ../lib/libm/log1pf.c ../lib/libm/acoshf.c ../lib/libm/asinhf.c ../lib/libm/atanhf.c ../lib/libm/kf_rem_pio2.c ../lib/libm/kf_sin.c ../lib/libm/kf_cos.c ../lib/libm/kf_tan.c ../lib/libm/ef_rem_pio2.c ../lib/libm/erf_lgamma.c ../lib/libm/sf_sin.c ../lib/libm/sf_cos.c ../lib/libm/sf_tan.c ../lib/libm/sf_frexp.c ../lib/libm/sf_modf.c ../lib/libm/sf_ldexp.c ../lib/libm/sf_erf.c ../lib/libm/wf_lgamma.c ../lib/libm/wf_tgamma.c ../lib/fatfs/ff.c ../lib/fatfs/option/ccsbcs.c ../lib/mp-readline/readline.c ../lib/netutils/netutils.c ../lib/timeutils/timeutils.c ../lib/utils/pyexec.c ../lib/utils/pyhelp.c >build-PYBV10/genhdr/qstr.i.last; \
else \
    arm-none-eabi-gcc -E -DNO_QSTR -DN_X64 -DN_X86 -DN_THUMB -DN_ARM -DN_XTENSA -Ibuild-PYBV10/tmp -I../lib -I../lib/netutils -I. -I.. -Ibuild-PYBV10 -I../lib/cmsis/inc -Icmsis/ -Ihal/f4/inc -Iusbdev/core/inc -Iusbdev/class/inc -I../lib/mp-readline -I../lib/netutils -I../lib/timeutils -Wall -Wpointer-arith -Werror -ansi -std=gnu99 -nostdlib  -DSTM32F405xx -mthumb -mabi=aapcs-linux -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant -Wdouble-promotion -mtune=cortex-m4 -mcpu=cortex-m4 -DMCU_SERIES_F4 -Os -DNDEBUG -Iboards/PYBV10 -DSTM32_HAL_H='<stm32f4xx_hal.h>' -fdata-sections -ffunction-sections ../py/mpstate.c ../py/malloc.c ../py/gc.c ../py/qstr.c ../py/vstr.c ../py/mpprint.c ../py/unicode.c ../py/mpz.c ../py/reader.c ../py/lexer.c ../py/parse.c ../py/scope.c ../py/compile.c ../py/emitcommon.c ../py/emitbc.c ../py/asmbase.c ../py/asmx64.c ../py/asmx86.c ../py/asmthumb.c ../py/emitinlinethumb.c ../py/asmarm.c ../py/asmxtensa.c ../py/emitinlinextensa.c ../py/formatfloat.c ../py/parsenumbase.c ../py/parsenum.c ../py/emitglue.c ../py/persistentcode.c ../py/runtime.c ../py/runtime_utils.c ../py/nativeglue.c ../py/stackctrl.c ../py/argcheck.c ../py/warning.c ../py/map.c ../py/obj.c ../py/objarray.c ../py/objattrtuple.c ../py/objbool.c ../py/objboundmeth.c ../py/objcell.c ../py/objclosure.c ../py/objcomplex.c ../py/objdict.c ../py/objenumerate.c ../py/objexcept.c ../py/objfilter.c ../py/objfloat.c ../py/objfun.c ../py/objgenerator.c ../py/objgetitemiter.c ../py/objint.c ../py/objint_longlong.c ../py/objint_mpz.c ../py/objlist.c ../py/objmap.c ../py/objmodule.c ../py/objobject.c ../py/objpolyiter.c ../py/objproperty.c ../py/objnone.c ../py/objnamedtuple.c ../py/objrange.c ../py/objreversed.c ../py/objset.c ../py/objsingleton.c ../py/objslice.c ../py/objstr.c ../py/objstrunicode.c ../py/objstringio.c ../py/objtuple.c ../py/objtype.c ../py/objzip.c ../py/opmethods.c ../py/sequence.c ../py/stream.c ../py/binary.c ../py/builtinimport.c ../py/builtinevex.c ../py/modarray.c ../py/modbuiltins.c ../py/modcollections.c ../py/modgc.c ../py/modio.c ../py/modmath.c ../py/modcmath.c ../py/modmicropython.c ../py/modstruct.c ../py/modsys.c ../py/moduerrno.c ../py/modthread.c ../py/vm.c ../py/bc.c ../py/showbc.c ../py/repl.c ../py/smallint.c ../py/frozenmod.c ../py/../extmod/moductypes.c ../py/../extmod/modujson.c ../py/../extmod/modure.c ../py/../extmod/moduzlib.c ../py/../extmod/moduheapq.c ../py/../extmod/moduhashlib.c ../py/../extmod/modubinascii.c ../py/../extmod/virtpin.c ../py/../extmod/machine_mem.c ../py/../extmod/machine_pinbase.c ../py/../extmod/machine_pulse.c ../py/../extmod/machine_i2c.c ../py/../extmod/machine_spi.c ../py/../extmod/modussl_axtls.c ../py/../extmod/modussl_mbedtls.c ../py/../extmod/modurandom.c ../py/../extmod/moduselect.c ../py/../extmod/modwebsocket.c ../py/../extmod/modwebrepl.c ../py/../extmod/modframebuf.c ../py/../extmod/fsusermount.c ../py/../extmod/vfs_fat.c ../py/../extmod/vfs_fat_ffconf.c ../py/../extmod/vfs_fat_diskio.c ../py/../extmod/vfs_fat_file.c ../py/../extmod/vfs_fat_reader.c ../py/../extmod/vfs_fat_misc.c ../py/../extmod/utime_mphal.c ../py/../extmod/uos_dupterm.c ../py/../lib/embed/abort_.c ../py/../lib/utils/printf.c ../py/emitnative.c main.c system_stm32.c stm32_it.c usbd_conf.c usbd_desc.c usbd_cdc_interface.c usbd_hid_interface.c usbd_msc_storage.c mphalport.c irq.c pendsv.c systick.c timer.c led.c pin.c pin_defs_stmhal.c pin_named_pins.c bufhelper.c dma.c i2c.c spi.c uart.c can.c usb.c wdt.c c_sample.c gccollect.c pybstdio.c help.c input.c machine_i2c.c modmachine.c modpyb.c modstm.c moduos.c modutime.c modusocket.c modnetwork.c import.c extint.c usrsw.c rng.c rtc.c flash.c storage.c builtin_open.c sdcard.c fatfs_port.c lcd.c accel.c servo.c dac.c adc.c ../lib/libc/string0.c ../lib/libm/math.c ../lib/libm/thumb_vfp_sqrtf.c ../lib/libm/asinfacosf.c ../lib/libm/atanf.c ../lib/libm/atan2f.c ../lib/libm/fmodf.c ../lib/libm/roundf.c ../lib/libm/log1pf.c ../lib/libm/acoshf.c ../lib/libm/asinhf.c ../lib/libm/atanhf.c ../lib/libm/kf_rem_pio2.c ../lib/libm/kf_sin.c ../lib/libm/kf_cos.c ../lib/libm/kf_tan.c ../lib/libm/ef_rem_pio2.c ../lib/libm/erf_lgamma.c ../lib/libm/sf_sin.c ../lib/libm/sf_cos.c ../lib/libm/sf_tan.c ../lib/libm/sf_frexp.c ../lib/libm/sf_modf.c ../lib/libm/sf_ldexp.c ../lib/libm/sf_erf.c ../lib/libm/wf_lgamma.c ../lib/libm/wf_tgamma.c ../lib/fatfs/ff.c ../lib/fatfs/option/ccsbcs.c ../lib/mp-readline/readline.c ../lib/netutils/netutils.c ../lib/timeutils/timeutils.c ../lib/utils/pyexec.c ../lib/utils/pyhelp.c >build-PYBV10/genhdr/qstr.i.last; \
fi
GEN build-PYBV10/genhdr/qstr.split
python ../py/makeqstrdefs.py split build-PYBV10/genhdr/qstr.i.last build-PYBV10/genhdr/qstr build-PYBV10/genhdr/qstrdefs.collected.h
touch build-PYBV10/genhdr/qstr.split
GEN build-PYBV10/genhdr/qstrdefs.collected.h
python ../py/makeqstrdefs.py cat build-PYBV10/genhdr/qstr.i.last build-PYBV10/genhdr/qstr build-PYBV10/genhdr/qstrdefs.collected.h
QSTR updated
GEN build-PYBV10/genhdr/qstrdefs.generated.h
cat ../py/qstrdefs.h qstrdefsport.h build-PYBV10/pins_qstr.h build-PYBV10/modstm_qstr.h build-PYBV10/genhdr/qstrdefs.collected.h | sed 's/^Q(.*)/"&"/' | arm-none-eabi-gcc -E -I../lib -I../lib/netutils -I. -I.. -Ibuild-PYBV10 -I../lib/cmsis/inc -Icmsis/ -Ihal/f4/inc -Iusbdev/core/inc -Iusbdev/class/inc -I../lib/mp-readline -I../lib/netutils -I../lib/timeutils -Wall -Wpointer-arith -Werror -ansi -std=gnu99 -nostdlib  -DSTM32F405xx -mthumb -mabi=aapcs-linux -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant -Wdouble-promotion -mtune=cortex-m4 -mcpu=cortex-m4 -DMCU_SERIES_F4 -Os -DNDEBUG -Iboards/PYBV10 -DSTM32_HAL_H='<stm32f4xx_hal.h>' -fdata-sections -ffunction-sections - | sed 's/^"\(Q(.*)\)"/\1/' > build-PYBV10/genhdr/qstrdefs.preprocessed.h
python ../py/makeqstrdata.py build-PYBV10/genhdr/qstrdefs.preprocessed.h > build-PYBV10/genhdr/qstrdefs.generated.h
mkdir -p build-PYBV10/hal/f4/src/
mkdir -p build-PYBV10/lib/fatfs/
mkdir -p build-PYBV10/lib/fatfs/option/
mkdir -p build-PYBV10/lib/libc/
mkdir -p build-PYBV10/lib/libm/
mkdir -p build-PYBV10/lib/mp-readline/
mkdir -p build-PYBV10/lib/netutils/
mkdir -p build-PYBV10/lib/timeutils/
mkdir -p build-PYBV10/lib/utils/
mkdir -p build-PYBV10/py/
mkdir -p build-PYBV10/py/../extmod/
mkdir -p build-PYBV10/py/../lib/embed/
mkdir -p build-PYBV10/usbdev/class/src/
mkdir -p build-PYBV10/usbdev/core/src/
CC ../py/mpstate.c
arm-none-eabi-gcc -I../lib -I../lib/netutils -I. -I.. -Ibuild-PYBV10 -I../lib/cmsis/inc -Icmsis/ -Ihal/f4/inc -Iusbdev/core/inc -Iusbdev/class/inc -I../lib/mp-readline -I../lib/netutils -I../lib/timeutils -Wall -Wpointer-arith -Werror -ansi -std=gnu99 -nostdlib  -DSTM32F405xx -mthumb -mabi=aapcs-linux -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant -Wdouble-promotion -mtune=cortex-m4 -mcpu=cortex-m4 -DMCU_SERIES_F4 -Os -DNDEBUG -Iboards/PYBV10 -DSTM32_HAL_H='<stm32f4xx_hal.h>' -fdata-sections -ffunction-sections -c -MD -o build-PYBV10/py/mpstate.o ../py/mpstate.c
CC ../py/nlrx86.S
arm-none-eabi-gcc -I../lib -I../lib/netutils -I. -I.. -Ibuild-PYBV10 -I../lib/cmsis/inc -Icmsis/ -Ihal/f4/inc -Iusbdev/core/inc -Iusbdev/class/inc -I../lib/mp-readline -I../lib/netutils -I../lib/timeutils -Wall -Wpointer-arith -Werror -ansi -std=gnu99 -nostdlib  -DSTM32F405xx -mthumb -mabi=aapcs-linux -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant -Wdouble-promotion -mtune=cortex-m4 -mcpu=cortex-m4 -DMCU_SERIES_F4 -Os -DNDEBUG -Iboards/PYBV10 -DSTM32_HAL_H='<stm32f4xx_hal.h>' -fdata-sections -ffunction-sections -c -o build-PYBV10/py/nlrx86.o ../py/nlrx86.S

cbergren
Posts: 2
Joined: Wed Dec 14, 2016 10:43 pm

Re: makeqstrdata.py

Post by cbergren » Thu Dec 15, 2016 5:00 pm

Thanks so much for the prompt reply. I am on it. The next time I'm passing through Shuswap I'll thank you in person

Post Reply