Browse Source

AP_HAL_VRBRAIN: adapt to changes in AP_BoardConfig_CAN

mission-4.1.18
Francisco Ferreira 7 years ago
parent
commit
5efde5fa8b
No known key found for this signature in database
GPG Key ID: F63C20A6773E787E
  1. 29
      libraries/AP_HAL_VRBRAIN/CAN.cpp

29
libraries/AP_HAL_VRBRAIN/CAN.cpp

@ -8,9 +8,6 @@ @@ -8,9 +8,6 @@
#include <AP_HAL/AP_HAL.h>
#include <AP_HAL/system.h>
#include <AP_BoardConfig/AP_BoardConfig.h>
#include <AP_BoardConfig/AP_BoardConfig_CAN.h>
#if HAL_WITH_UAVCAN
#include <cassert>
@ -25,6 +22,8 @@ @@ -25,6 +22,8 @@
#include "Scheduler.h"
#include <AP_BoardConfig/AP_BoardConfig_CAN.h>
/*
* FOR INVESTIGATION:
* AP_HAL::micros64() was called for monotonic time counter
@ -172,7 +171,7 @@ int VRBRAINCAN::computeTimings(const uint32_t target_bitrate, Timings& out_timin @@ -172,7 +171,7 @@ int VRBRAINCAN::computeTimings(const uint32_t target_bitrate, Timings& out_timin
const uint8_t max_quanta_per_bit = (target_bitrate >= 1000000) ? 10 : 17;
if (max_quanta_per_bit > (MaxBS1 + MaxBS2)) {
if (AP_BoardConfig_CAN::get_can_debug() >= 1) {
if (AP::can().get_debug_level(self_index_) >= 1) {
printf("VRBRAINCAN::computeTimings max_quanta_per_bit problem\n\r");
}
}
@ -241,7 +240,7 @@ int VRBRAINCAN::computeTimings(const uint32_t target_bitrate, Timings& out_timin @@ -241,7 +240,7 @@ int VRBRAINCAN::computeTimings(const uint32_t target_bitrate, Timings& out_timin
uint16_t(1000 * (1 + bs1) / (1 + bs1 + bs2)))
{
if (bs1_bs2_sum <= arg_bs1) {
if (AP_BoardConfig_CAN::get_can_debug() >= 1) {
if (AP::can().get_debug_level(self_index_) >= 1) {
AP_HAL::panic("VRBRAINCAN::computeTimings bs1_bs2_sum <= arg_bs1");
}
}
@ -271,13 +270,13 @@ int VRBRAINCAN::computeTimings(const uint32_t target_bitrate, Timings& out_timin @@ -271,13 +270,13 @@ int VRBRAINCAN::computeTimings(const uint32_t target_bitrate, Timings& out_timin
* Final validation
*/
if ((target_bitrate != (pclk / (prescaler * (1 + solution.bs1 + solution.bs2)))) || !solution.isValid()) {
if (AP_BoardConfig_CAN::get_can_debug() >= 1) {
if (AP::can().get_debug_level(self_index_) >= 1) {
printf("VRBRAINCAN::computeTimings target_bitrate error\n\r");
}
return -ErrLogic;
}
if (AP_BoardConfig_CAN::get_can_debug() >= 2) {
if (AP::can().get_debug_level(self_index_) >= 2) {
printf("VRBRAINCAN::computeTimings Timings: quanta/bit: %d, sample point location: %.1f%%\n\r",
int(1 + solution.bs1 + solution.bs2), double(solution.sample_point_permill / 10.0));
}
@ -479,7 +478,7 @@ int VRBRAINCAN::init(const uint32_t bitrate, const OperatingMode mode) @@ -479,7 +478,7 @@ int VRBRAINCAN::init(const uint32_t bitrate, const OperatingMode mode)
}
if (!waitMsrINakBitStateChange(true)) {
if (AP_BoardConfig_CAN::get_can_debug() >= 1) {
if (AP::can().get_debug_level(self_index_) >= 1) {
printf("VRBRAINCAN::init MSR INAK not set\n\r");
}
can_->MCR = bxcan::MCR_RESET;
@ -505,7 +504,7 @@ int VRBRAINCAN::init(const uint32_t bitrate, const OperatingMode mode) @@ -505,7 +504,7 @@ int VRBRAINCAN::init(const uint32_t bitrate, const OperatingMode mode)
can_->MCR = bxcan::MCR_RESET;
return timings_res;
}
if (AP_BoardConfig_CAN::get_can_debug() >= 2) {
if (AP::can().get_debug_level(self_index_) >= 2) {
printf("VRBRAINCAN::init Timings: presc=%u sjw=%u bs1=%u bs2=%u\n\r", unsigned(timings.prescaler),
unsigned(timings.sjw), unsigned(timings.bs1), unsigned(timings.bs2));
}
@ -525,7 +524,7 @@ int VRBRAINCAN::init(const uint32_t bitrate, const OperatingMode mode) @@ -525,7 +524,7 @@ int VRBRAINCAN::init(const uint32_t bitrate, const OperatingMode mode)
can_->MCR &= ~bxcan::MCR_INRQ; // Leave init mode
if (!waitMsrINakBitStateChange(false)) {
if (AP_BoardConfig_CAN::get_can_debug() >= 1) {
if (AP::can().get_debug_level(self_index_) >= 1) {
printf("VRBRAINCAN::init MSR INAK not cleared\n\r");
}
can_->MCR = bxcan::MCR_RESET;
@ -969,7 +968,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM @@ -969,7 +968,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM
int res = 0;
if (AP_BoardConfig_CAN::get_can_debug(can_number) >= 2) {
if (AP::can().get_debug_level(can_number) >= 2) {
printf("VRBRAINCANManager::init Bitrate %lu mode %d bus %d\n\r", static_cast<unsigned long>(bitrate),
static_cast<int>(mode), static_cast<int>(can_number));
}
@ -980,7 +979,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM @@ -980,7 +979,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM
_ifaces_num++;
_ifaces_out_to_in[can_number] = _ifaces_num - 1;
if (AP_BoardConfig_CAN::get_can_debug(can_number) >= 2) {
if (AP::can().get_debug_level(can_number) >= 2) {
printf("VRBRAINCANManager::init First initialization bus %d\n\r", static_cast<int>(can_number));
}
@ -991,7 +990,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM @@ -991,7 +990,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM
* CAN1
*/
if (can_number == 0) {
if (AP_BoardConfig_CAN::get_can_debug(0) >= 2) {
if (AP::can().get_debug_level(0) >= 2) {
printf("VRBRAINCANManager::init Initing iface 0...\n\r");
}
ifaces[_ifaces_out_to_in[can_number]] = &if0_; // This link must be initialized first,
@ -1002,7 +1001,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM @@ -1002,7 +1001,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM
* CAN2
*/
if (can_number == 1) {
if (AP_BoardConfig_CAN::get_can_debug(1) >= 2) {
if (AP::can().get_debug_level(1) >= 2) {
printf("VRBRAINCANManager::init Initing iface 1...\n\r");
}
ifaces[_ifaces_out_to_in[can_number]] = &if1_; // Same thing here.
@ -1016,7 +1015,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM @@ -1016,7 +1015,7 @@ int VRBRAINCANManager::init(const uint32_t bitrate, const VRBRAINCAN::OperatingM
return res;
}
if (AP_BoardConfig_CAN::get_can_debug(can_number) >= 2) {
if (AP::can().get_debug_level(can_number) >= 2) {
printf("VRBRAINCANManager::init CAN drv init OK, res = %d\n\r", res);
}

Loading…
Cancel
Save