mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-23 04:43:34 +08:00
Navio: GPIO driver command fix and update ifdefs
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user