Search found 22 matches

by tomtor
Sun Oct 08, 2017 7:46 pm
Forum: General Discussion
Topic: ULP: rel too far BFD_JUMPR_STEP
Replies: 0
Views: 2811

ULP: rel too far BFD_JUMPR_STEP

I get this error when the assembly file is somewhat bigger, but the displacement is still small! This looks like an assembler bug, because the relative offset is constant and not depending on the code preceeding the jumpr .text nop ... // 200 additional NOPs here ... nop jumpr bug,1,ge nop nop nop b...
by tomtor
Sat Oct 07, 2017 3:17 pm
Forum: General Discussion
Topic: ULP-I2C
Replies: 3
Views: 8102

Re: ULP-I2C

I2C protocol could be implemented in ULP assembly code. I did this for the DHT-22 protocol, which is slightly less complex, but I think I2C is doable. EDIT: I'll implement and test it for you with the BMP-180 sensor and ADS-1015 ADC EDIT2: See https://github.com/tomtor/ulp-i2c @barosu This example r...
by tomtor
Sat Oct 07, 2017 12:56 pm
Forum: General Discussion
Topic: ULP global variables
Replies: 49
Views: 61163

Re: ULP global variables

by tomtor
Sat Oct 07, 2017 12:50 pm
Forum: General Discussion
Topic: Complex ULP programs (DHT-22 protocol) hang after a while
Replies: 1
Views: 4172

Re: Complex ULP programs (DHT-22 protocol) hang after a while

Perhaps related:

Switching timer register, eg

Code: Select all

I_SLEEP_CYCLE_SEL(1)
only works when setting the power domain:

Code: Select all

esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
In the default setting register 0 remains active!
by tomtor
Fri Oct 06, 2017 7:04 am
Forum: General Discussion
Topic: ULP: working example of JUMP Rx
Replies: 5
Views: 11547

Stack and Subroutine Macros for ULP

I build the ULP toolchain with the mentioned fix from the pull request: ./configure --prefix=$HOME/esp/esp32ulp-elf-binutils --target=esp32ulp-elf make make install And wrote a demo with stack and subroutine macros: See https://gist.github.com/tomtor/fa7d6d2cbd8d9b076a503107330be3a1 for full code wi...
by tomtor
Fri Oct 06, 2017 6:55 am
Forum: General Discussion
Topic: How is the ULP coprocessor going to be programmed?
Replies: 16
Views: 28299

Re: How is the ULP coprocessor going to be programmed?

Which sentence in readthedocs are you referring to (regarding 'the readthedocs html docu specify that a signed byte offset can be used to read data')? Quoute: https://esp-idf.readthedocs.io/en/latest/api-guides/ulp_instruction_set.html#ld-load-data-from-the-memory ==================================...
by tomtor
Thu Oct 05, 2017 8:04 am
Forum: General Discussion
Topic: ULP: working example of JUMP Rx
Replies: 5
Views: 11547

Re: ULP: working example of JUMP Rx

https://github.com/espressif/binutils-esp32ulp/blob/43e64677fb5506f0de36f537b48ce5b2ef90003c/gas/testsuite/gas/esp32ulp/esp32ulp_all.s https://github.com/espressif/binutils-esp32ulp/pull/3 Thanks, so it is a toolchain issue. The public toolchain download (got it a few days ago) predates the fix and...
by tomtor
Thu Oct 05, 2017 6:22 am
Forum: General Discussion
Topic: ULP: working example of JUMP Rx
Replies: 5
Views: 11547

ULP: working example of JUMP Rx

I wrote a working DHT22 driver in ULP assembly and I would like to replace some repeated code with subroutines. However even the most simple test code which inserts a dummy jump in a bigger working program: move r0,loop jump r0 nop loop: nop causes a restart of the ULP. I have not found ANY use of j...
by tomtor
Wed Oct 04, 2017 8:56 am
Forum: General Discussion
Topic: ULP global variables
Replies: 49
Views: 61163

Re: ULP global variables

Code in ulp .global x x: .long 0 .global entry entry: move r0, x ld r0, r0, x add r0, r0, 1 halt I comment before with another two tests, and anyone doenst worked Should be e.g.: .global x x: .long 0 .global entry entry: move r1, x // load address of x in r1 ld r0, r1, 0 // load data from x in r0 a...
by tomtor
Tue Oct 03, 2017 6:58 am
Forum: General Discussion
Topic: How is the ULP coprocessor going to be programmed?
Replies: 16
Views: 28299

Re: How is the ULP coprocessor going to be programmed?

Regarding programming: We don't have a toolchain for the ULP yet. I have started writing an LLVM backend for it, but LLVM has a bit of a learning curve to it, and also ULP is not the highest thing on the priority list, so I haven't got far yet. I do have a way to generate ULP instructions using C m...