mirror of
https://github.com/micropython/micropython.git
synced 2025-12-30 00:30:11 +01:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9b486340da | ||
|
|
5233fb3a3d |
@@ -74,7 +74,7 @@ copyright = '- The MicroPython Documentation is Copyright © 2014-2022, Damien P
|
||||
#
|
||||
# We don't follow "The short X.Y version" vs "The full version, including alpha/beta/rc tags"
|
||||
# breakdown, so use the same version identifier for both to avoid confusion.
|
||||
version = release = '1.19'
|
||||
version = release = '1.19.1'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
||||
@@ -515,19 +515,20 @@ STATIC int read_mem(mp_obj_t self_in, uint16_t addr, uint32_t memaddr, uint8_t a
|
||||
size_t memaddr_len = fill_memaddr_buf(&memaddr_buf[0], memaddr, addrsize);
|
||||
|
||||
#if MICROPY_PY_MACHINE_I2C_TRANSFER_WRITE1
|
||||
|
||||
// Create partial write and read buffers
|
||||
mp_machine_i2c_buf_t bufs[2] = {
|
||||
{.len = memaddr_len, .buf = memaddr_buf},
|
||||
{.len = len, .buf = buf},
|
||||
};
|
||||
|
||||
// Do write+read I2C transfer
|
||||
// The I2C transfer function may support the MP_MACHINE_I2C_FLAG_WRITE1 option
|
||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t *)self->type->protocol;
|
||||
return i2c_p->transfer(self, addr, 2, bufs,
|
||||
MP_MACHINE_I2C_FLAG_WRITE1 | MP_MACHINE_I2C_FLAG_READ | MP_MACHINE_I2C_FLAG_STOP);
|
||||
if (i2c_p->transfer_supports_write1) {
|
||||
// Create partial write and read buffers
|
||||
mp_machine_i2c_buf_t bufs[2] = {
|
||||
{.len = memaddr_len, .buf = memaddr_buf},
|
||||
{.len = len, .buf = buf},
|
||||
};
|
||||
|
||||
#else
|
||||
// Do write+read I2C transfer
|
||||
return i2c_p->transfer(self, addr, 2, bufs,
|
||||
MP_MACHINE_I2C_FLAG_WRITE1 | MP_MACHINE_I2C_FLAG_READ | MP_MACHINE_I2C_FLAG_STOP);
|
||||
}
|
||||
#endif
|
||||
|
||||
int ret = mp_machine_i2c_writeto(self, addr, memaddr_buf, memaddr_len, false);
|
||||
if (ret != memaddr_len) {
|
||||
@@ -536,8 +537,6 @@ STATIC int read_mem(mp_obj_t self_in, uint16_t addr, uint32_t memaddr, uint8_t a
|
||||
return ret;
|
||||
}
|
||||
return mp_machine_i2c_readfrom(self, addr, buf, len, true);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
STATIC int write_mem(mp_obj_t self_in, uint16_t addr, uint32_t memaddr, uint8_t addrsize, const uint8_t *buf, size_t len) {
|
||||
|
||||
@@ -61,6 +61,9 @@ typedef struct _mp_machine_i2c_buf_t {
|
||||
// - transfer must be non-NULL
|
||||
// - transfer_single only needs to be set if transfer=mp_machine_i2c_transfer_adaptor
|
||||
typedef struct _mp_machine_i2c_p_t {
|
||||
#if MICROPY_PY_MACHINE_I2C_TRANSFER_WRITE1
|
||||
bool transfer_supports_write1;
|
||||
#endif
|
||||
void (*init)(mp_obj_base_t *obj, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
||||
int (*start)(mp_obj_base_t *obj);
|
||||
int (*stop)(mp_obj_base_t *obj);
|
||||
|
||||
@@ -188,6 +188,7 @@ mp_obj_t machine_hw_i2c_make_new(const mp_obj_type_t *type, size_t n_args, size_
|
||||
}
|
||||
|
||||
STATIC const mp_machine_i2c_p_t machine_hw_i2c_p = {
|
||||
.transfer_supports_write1 = true,
|
||||
.transfer = machine_hw_i2c_transfer,
|
||||
};
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
// Current version of MicroPython
|
||||
#define MICROPY_VERSION_MAJOR 1
|
||||
#define MICROPY_VERSION_MINOR 19
|
||||
#define MICROPY_VERSION_MICRO 0
|
||||
#define MICROPY_VERSION_MICRO 1
|
||||
|
||||
// Combined version as a 32-bit number for convenience
|
||||
#define MICROPY_VERSION ( \
|
||||
|
||||
Reference in New Issue
Block a user