forked from Archive/PX4-Autopilot
Navio: GPIO driver command fix and update ifdefs
This commit is contained in:
parent
3049b9af01
commit
ff647e7bc8
|
@ -145,10 +145,10 @@ int navio_gpio_main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(argv[1], "start")) {
|
if (!strcmp(argv[1], "start")) {
|
||||||
|
PX4_WARN("gpio should only be started directly for debugging");
|
||||||
|
|
||||||
if (gpio != nullptr && gpio->isMapped()) {
|
if (gpio != nullptr && gpio->isMapped()) {
|
||||||
PX4_WARN("already mapped");
|
PX4_WARN("already mapped");
|
||||||
/* this is not an error */
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,13 +156,14 @@ int navio_gpio_main(int argc, char *argv[])
|
||||||
|
|
||||||
if (gpio == nullptr) {
|
if (gpio == nullptr) {
|
||||||
PX4_ERR("alloc failed");
|
PX4_ERR("alloc failed");
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ret = gpio->start();
|
int ret = gpio->start();
|
||||||
|
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
PX4_ERR("start failed");
|
PX4_ERR("start failed");
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -170,12 +171,16 @@ int navio_gpio_main(int argc, char *argv[])
|
||||||
|
|
||||||
if (!strcmp(argv[1], "stop")) {
|
if (!strcmp(argv[1], "stop")) {
|
||||||
|
|
||||||
if (gpio == nullptr || gpio->isMapped()) {
|
if (gpio == nullptr) {
|
||||||
PX4_WARN("not mapped");
|
PX4_WARN("gpio not started from navio_gpio");
|
||||||
/* this is not an error */
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!gpio->isMapped()) {
|
||||||
|
PX4_WARN("not mapped");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
gpio->stop();
|
gpio->stop();
|
||||||
|
|
||||||
delete gpio;
|
delete gpio;
|
||||||
|
@ -185,7 +190,12 @@ int navio_gpio_main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(argv[1], "status")) {
|
if (!strcmp(argv[1], "status")) {
|
||||||
if (gpio != nullptr && gpio->isMapped()) {
|
if (gpio == nullptr) {
|
||||||
|
PX4_WARN("gpio not started from navio_gpio");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gpio->isMapped()) {
|
||||||
PX4_INFO("mapped");
|
PX4_INFO("mapped");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -86,13 +86,10 @@ namespace navio_gpio
|
||||||
class Gpio
|
class Gpio
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Gpio() :
|
Gpio()
|
||||||
_isMapped(false)
|
{ }
|
||||||
{
|
|
||||||
}
|
|
||||||
~Gpio()
|
~Gpio()
|
||||||
{
|
{ }
|
||||||
}
|
|
||||||
|
|
||||||
int start();
|
int start();
|
||||||
int stop();
|
int stop();
|
||||||
|
@ -102,7 +99,7 @@ public:
|
||||||
bool gpioread(uint32_t pinset);
|
bool gpioread(uint32_t pinset);
|
||||||
void gpiowrite(uint32_t pinset, bool value);
|
void gpiowrite(uint32_t pinset, bool value);
|
||||||
|
|
||||||
bool isMapped() { return _isMapped; }
|
bool isMapped() { return _gpio_map != nullptr; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void atomic_modify(uint32_t addr,
|
void atomic_modify(uint32_t addr,
|
||||||
|
@ -111,7 +108,6 @@ private:
|
||||||
unsigned int value);
|
unsigned int value);
|
||||||
|
|
||||||
void *_gpio_map;
|
void *_gpio_map;
|
||||||
bool _isMapped;
|
|
||||||
|
|
||||||
SyncObj m_lock;
|
SyncObj m_lock;
|
||||||
};
|
};
|
||||||
|
|
|
@ -59,7 +59,7 @@ __END_DECLS
|
||||||
# define HW_ARCH "EAGLE"
|
# define HW_ARCH "EAGLE"
|
||||||
#elif defined(CONFIG_ARCH_BOARD_EXCELSIOR)
|
#elif defined(CONFIG_ARCH_BOARD_EXCELSIOR)
|
||||||
# define HW_ARCH "EXCELSIOR"
|
# define HW_ARCH "EXCELSIOR"
|
||||||
#elif defined(CONFIG_ARCH_BOARD_RPI) || defined(CONFIG_ARCH_BOARD_NAVIO2)
|
#elif defined(CONFIG_ARCH_BOARD_RPI)
|
||||||
# define HW_ARCH "RPI"
|
# define HW_ARCH "RPI"
|
||||||
#elif defined(CONFIG_ARCH_BOARD_BEBOP)
|
#elif defined(CONFIG_ARCH_BOARD_BEBOP)
|
||||||
# define HW_ARCH "BEBOP"
|
# define HW_ARCH "BEBOP"
|
||||||
|
|
|
@ -267,7 +267,7 @@ int led_init()
|
||||||
{
|
{
|
||||||
blink_msg_end = 0;
|
blink_msg_end = 0;
|
||||||
|
|
||||||
#ifndef CONFIG_ARCH_BOARD_NAVIO2
|
#ifndef CONFIG_ARCH_BOARD_RPI
|
||||||
/* first open normal LEDs */
|
/* first open normal LEDs */
|
||||||
DevMgr::getHandle(LED0_DEVICE_PATH, h_leds);
|
DevMgr::getHandle(LED0_DEVICE_PATH, h_leds);
|
||||||
|
|
||||||
|
@ -305,7 +305,7 @@ int led_init()
|
||||||
|
|
||||||
void led_deinit()
|
void led_deinit()
|
||||||
{
|
{
|
||||||
#ifndef CONFIG_ARCH_BOARD_NAVIO2
|
#ifndef CONFIG_ARCH_BOARD_RPI
|
||||||
DevMgr::releaseHandle(h_leds);
|
DevMgr::releaseHandle(h_leds);
|
||||||
#endif
|
#endif
|
||||||
DevMgr::releaseHandle(h_rgbleds);
|
DevMgr::releaseHandle(h_rgbleds);
|
||||||
|
|
Loading…
Reference in New Issue