forked from Archive/PX4-Autopilot
mtd: switch to c++ and use px4_find_spi_bus
This commit is contained in:
parent
f555fe309c
commit
971897b9ed
|
@ -35,7 +35,7 @@ px4_add_module(
|
||||||
MAIN mtd
|
MAIN mtd
|
||||||
COMPILE_FLAGS
|
COMPILE_FLAGS
|
||||||
SRCS
|
SRCS
|
||||||
mtd.c
|
mtd.cpp
|
||||||
24xxxx_mtd.c
|
24xxxx_mtd.c
|
||||||
DEPENDS
|
DEPENDS
|
||||||
)
|
)
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
#include <px4_platform_common/px4_config.h>
|
#include <px4_platform_common/px4_config.h>
|
||||||
#include <px4_platform_common/log.h>
|
#include <px4_platform_common/log.h>
|
||||||
#include <px4_platform_common/module.h>
|
#include <px4_platform_common/module.h>
|
||||||
|
#include <px4_platform_common/spi.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -66,7 +67,7 @@
|
||||||
|
|
||||||
#include <board_config.h>
|
#include <board_config.h>
|
||||||
|
|
||||||
__EXPORT int mtd_main(int argc, char *argv[]);
|
extern "C" __EXPORT int mtd_main(int argc, char *argv[]);
|
||||||
|
|
||||||
#ifndef CONFIG_MTD
|
#ifndef CONFIG_MTD
|
||||||
|
|
||||||
|
@ -101,10 +102,10 @@ static int ramtron_attach(void);
|
||||||
|
|
||||||
static int at24xxx_attach(void);
|
static int at24xxx_attach(void);
|
||||||
#endif
|
#endif
|
||||||
static int mtd_start(char *partition_names[], unsigned n_partitions);
|
static int mtd_start(const char *partition_names[], unsigned n_partitions);
|
||||||
static int mtd_erase(char *partition_names[], unsigned n_partitions);
|
static int mtd_erase(const char *partition_names[], unsigned n_partitions);
|
||||||
static int mtd_readtest(char *partition_names[], unsigned n_partitions);
|
static int mtd_readtest(const char *partition_names[], unsigned n_partitions);
|
||||||
static int mtd_rwtest(char *partition_names[], unsigned n_partitions);
|
static int mtd_rwtest(const char *partition_names[], unsigned n_partitions);
|
||||||
static int mtd_print_info(void);
|
static int mtd_print_info(void);
|
||||||
static int mtd_get_geometry(unsigned long *blocksize, unsigned long *erasesize, unsigned long *neraseblocks,
|
static int mtd_get_geometry(unsigned long *blocksize, unsigned long *erasesize, unsigned long *neraseblocks,
|
||||||
unsigned *blkpererase, unsigned *nblocks, unsigned *partsize, unsigned n_partitions);
|
unsigned *blkpererase, unsigned *nblocks, unsigned *partsize, unsigned n_partitions);
|
||||||
|
@ -115,7 +116,7 @@ static struct mtd_dev_s *mtd_dev;
|
||||||
static unsigned n_partitions_current = 0;
|
static unsigned n_partitions_current = 0;
|
||||||
|
|
||||||
/* note, these will be equally sized */
|
/* note, these will be equally sized */
|
||||||
static char *partition_names_default[] = MTD_PARTITION_TABLE;
|
static const char *partition_names_default[] = MTD_PARTITION_TABLE;
|
||||||
static const int n_partitions_default = arraySize(partition_names_default);
|
static const int n_partitions_default = arraySize(partition_names_default);
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -153,7 +154,7 @@ int mtd_main(int argc, char *argv[])
|
||||||
|
|
||||||
/* start mapping according to user request */
|
/* start mapping according to user request */
|
||||||
if (argc >= 3) {
|
if (argc >= 3) {
|
||||||
return mtd_start(argv + 2, argc - 2);
|
return mtd_start((const char **)(argv + 2), argc - 2);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
return mtd_start(partition_names_default, n_partitions_default);
|
return mtd_start(partition_names_default, n_partitions_default);
|
||||||
|
@ -162,7 +163,7 @@ int mtd_main(int argc, char *argv[])
|
||||||
|
|
||||||
if (!strcmp(argv[1], "readtest")) {
|
if (!strcmp(argv[1], "readtest")) {
|
||||||
if (argc >= 3) {
|
if (argc >= 3) {
|
||||||
return mtd_readtest(argv + 2, argc - 2);
|
return mtd_readtest((const char **)(argv + 2), argc - 2);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
return mtd_readtest(partition_names_default, n_partitions_default);
|
return mtd_readtest(partition_names_default, n_partitions_default);
|
||||||
|
@ -171,7 +172,7 @@ int mtd_main(int argc, char *argv[])
|
||||||
|
|
||||||
if (!strcmp(argv[1], "rwtest")) {
|
if (!strcmp(argv[1], "rwtest")) {
|
||||||
if (argc >= 3) {
|
if (argc >= 3) {
|
||||||
return mtd_rwtest(argv + 2, argc - 2);
|
return mtd_rwtest((const char **)(argv + 2), argc - 2);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
return mtd_rwtest(partition_names_default, n_partitions_default);
|
return mtd_rwtest(partition_names_default, n_partitions_default);
|
||||||
|
@ -184,7 +185,7 @@ int mtd_main(int argc, char *argv[])
|
||||||
|
|
||||||
if (!strcmp(argv[1], "erase")) {
|
if (!strcmp(argv[1], "erase")) {
|
||||||
if (argc >= 3) {
|
if (argc >= 3) {
|
||||||
return mtd_erase(argv + 2, argc - 2);
|
return mtd_erase((const char **)(argv + 2), argc - 2);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
return mtd_erase(partition_names_default, n_partitions_default);
|
return mtd_erase(partition_names_default, n_partitions_default);
|
||||||
|
@ -205,9 +206,9 @@ static int
|
||||||
ramtron_attach(void)
|
ramtron_attach(void)
|
||||||
{
|
{
|
||||||
/* initialize the right spi */
|
/* initialize the right spi */
|
||||||
struct spi_dev_s *spi = px4_spibus_initialize(PX4_SPI_BUS_RAMTRON);
|
struct spi_dev_s *spi = px4_spibus_initialize(px4_find_spi_bus(SPIDEV_FLASH(0)));
|
||||||
|
|
||||||
if (spi == NULL) {
|
if (spi == nullptr) {
|
||||||
PX4_ERR("failed to locate spi bus");
|
PX4_ERR("failed to locate spi bus");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -234,7 +235,7 @@ ramtron_attach(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if last attempt is still unsuccessful, abort */
|
/* if last attempt is still unsuccessful, abort */
|
||||||
if (mtd_dev == NULL) {
|
if (mtd_dev == nullptr) {
|
||||||
PX4_ERR("failed to initialize mtd driver");
|
PX4_ERR("failed to initialize mtd driver");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -259,7 +260,7 @@ at24xxx_attach(void)
|
||||||
/* find the right I2C */
|
/* find the right I2C */
|
||||||
struct i2c_master_s *i2c = px4_i2cbus_initialize(PX4_I2C_BUS_MTD);
|
struct i2c_master_s *i2c = px4_i2cbus_initialize(PX4_I2C_BUS_MTD);
|
||||||
|
|
||||||
if (i2c == NULL) {
|
if (i2c == nullptr) {
|
||||||
PX4_ERR("failed to locate I2C bus");
|
PX4_ERR("failed to locate I2C bus");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -279,7 +280,7 @@ at24xxx_attach(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if last attempt is still unsuccessful, abort */
|
/* if last attempt is still unsuccessful, abort */
|
||||||
if (mtd_dev == NULL) {
|
if (mtd_dev == nullptr) {
|
||||||
PX4_ERR("failed to initialize EEPROM driver");
|
PX4_ERR("failed to initialize EEPROM driver");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -290,7 +291,7 @@ at24xxx_attach(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mtd_start(char *partition_names[], unsigned n_partitions)
|
mtd_start(const char *partition_names[], unsigned n_partitions)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -450,7 +451,7 @@ int mtd_print_info(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
mtd_erase(char *partition_names[], unsigned n_partitions)
|
mtd_erase(const char *partition_names[], unsigned n_partitions)
|
||||||
{
|
{
|
||||||
uint8_t v[64];
|
uint8_t v[64];
|
||||||
memset(v, 0xFF, sizeof(v));
|
memset(v, 0xFF, sizeof(v));
|
||||||
|
@ -482,7 +483,7 @@ mtd_erase(char *partition_names[], unsigned n_partitions)
|
||||||
bad reads (the ramtron driver does return an error)
|
bad reads (the ramtron driver does return an error)
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
mtd_readtest(char *partition_names[], unsigned n_partitions)
|
mtd_readtest(const char *partition_names[], unsigned n_partitions)
|
||||||
{
|
{
|
||||||
ssize_t expected_size = mtd_get_partition_size();
|
ssize_t expected_size = mtd_get_partition_size();
|
||||||
|
|
||||||
|
@ -525,7 +526,7 @@ mtd_readtest(char *partition_names[], unsigned n_partitions)
|
||||||
data isn't the same
|
data isn't the same
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
mtd_rwtest(char *partition_names[], unsigned n_partitions)
|
mtd_rwtest(const char *partition_names[], unsigned n_partitions)
|
||||||
{
|
{
|
||||||
ssize_t expected_size = mtd_get_partition_size();
|
ssize_t expected_size = mtd_get_partition_size();
|
||||||
|
|
Loading…
Reference in New Issue