File tree Expand file tree Collapse file tree 5 files changed +135
-0
lines changed Expand file tree Collapse file tree 5 files changed +135
-0
lines changed Original file line number Diff line number Diff line change
1
+ tests /compat /* .bin
2
+ tests /compat /* .elf
3
+ tests /compat /* .o
4
+ tests /compat /* .ulp
5
+ .DS_Store
Original file line number Diff line number Diff line change
1
+ language : c
2
+ dist : trusty
3
+ sudo : false
4
+ addons :
5
+ apt :
6
+ packages :
7
+ - libffi-dev
8
+ - pkg-config
9
+
10
+
11
+ script :
12
+ - export VER=$(git describe --always --tags)
13
+ - echo ${VER}
14
+
15
+ # ##### Install tools ######
16
+
17
+ - echo "Building micropython"
18
+ - git clone --recursive https://github.com/micropython/micropython.git
19
+ - pushd micropython/ports/unix
20
+ - git describe --always --tags
21
+ - make axtls
22
+ - make
23
+ - export PATH=$PATH:$PWD
24
+ - test $(micropython -c 'print("test")') = "test"
25
+ - popd
26
+
27
+ - echo "Building binutils-esp32ulp"
28
+ - git clone https://github.com/espressif/binutils-esp32ulp.git
29
+ - pushd binutils-esp32ulp
30
+ - git describe --always --tags
31
+ - ./configure --target=esp32ulp-elf --prefix=$PWD/dist --disable-doc --disable-gdb --disable-libdecnumber --disable-readline --disable-sim
32
+ - echo "MAKEINFO = :" >> Makefile
33
+ - make
34
+ - make install-strip
35
+ - export PATH=$PATH:$PWD/dist/bin
36
+ - esp32ulp-elf-as --version | grep 'esp32ulp-elf' > /dev/null
37
+ - popd
38
+
39
+ # ##### Run tests ######
40
+
41
+ - pushd tests
42
+ - ./00_run_tests.sh
43
+
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
1
3
# export PYTHONPATH=.:$PYTHONPATH
2
4
5
+ set -e
6
+
3
7
for file in opcodes assemble link ; do
4
8
echo testing $file ...
5
9
micropython $file .py
6
10
done
7
11
12
+ for src_file in $( ls -1 compat/* .S) ; do
13
+ src_name=" ${src_file% .S} "
14
+
15
+ echo " Building $src_file using py-esp32-ulp"
16
+ ulp_file=" ${src_name} .ulp"
17
+ micropython -m esp32_ulp $src_file # generates $ulp_file
18
+
19
+ obj_file=" ${src_name} .o"
20
+ elf_file=" ${src_name} .elf"
21
+ bin_file=" ${src_name} .bin"
22
+
23
+ echo " Building $src_file using binutils"
24
+ esp32ulp-elf-as -o $obj_file $src_file
25
+ esp32ulp-elf-ld -T esp32.ulp.ld -o $elf_file $obj_file
26
+ esp32ulp-elf-objcopy -O binary $elf_file $bin_file
27
+
28
+ if ! diff $ulp_file $bin_file ; then
29
+ echo " Compatibility test failed for $src_file "
30
+ echo " py-esp32-ulp output:"
31
+ hexdump $ulp_file
32
+ echo " binutils output:"
33
+ hexdump $bin_file
34
+ exit 1
35
+ else
36
+ echo " Build outputs match for $src_file "
37
+ fi
38
+ done
Original file line number Diff line number Diff line change
1
+ .text
2
+
3
+ and r1, r2, r3
4
+ and r3, r0, 0xffff
5
+ and r1, r1, 0xa5a5
6
+
7
+ or r1, r2, r3
8
+ or r3, r0, 0xffff
9
+ or r1, r1, 0xa5a5
10
+
11
+ add r1, r1, 32767
12
+ add r0, r3, -32768
13
+ add r3, r0, -1
14
+ add r2, r1, 1
15
+
16
+ sub r1, r1, 32767
17
+ sub r0, r3, -32768
18
+ sub r3, r0, -1
19
+ sub r2, r1, 1
20
+
21
+
Original file line number Diff line number Diff line change
1
+ ULP_BIN_MAGIC = 0x00706c75;
2
+ HEADER_SIZE = 12;
3
+ CONFIG_ULP_COPROC_RESERVE_MEM = 4096;
4
+
5
+ MEMORY
6
+ {
7
+ ram (RW) : ORIGIN = 0, LENGTH = CONFIG_ULP_COPROC_RESERVE_MEM
8
+ }
9
+
10
+ SECTIONS
11
+ {
12
+ .text : AT(HEADER_SIZE)
13
+ {
14
+ *(.text)
15
+ } >ram
16
+ .data :
17
+ {
18
+ . = ALIGN (4);
19
+ *(.data)
20
+ } >ram
21
+ .bss :
22
+ {
23
+ . = ALIGN (4);
24
+ *(.bss)
25
+ } >ram
26
+
27
+ .header : AT(0)
28
+ {
29
+ LONG (ULP_BIN_MAGIC )
30
+ SHORT (LOADADDR(.text ))
31
+ SHORT (SIZEOF(.text ))
32
+ SHORT (SIZEOF(.data ))
33
+ SHORT (SIZEOF(.bss ))
34
+ }
35
+ }
You can’t perform that action at this time.
0 commit comments