npc: split gdbstub api into seperate file
This commit is contained in:
parent
fed4ac225d
commit
85d7840804
15 changed files with 287 additions and 270 deletions
|
@ -1,3 +1,4 @@
|
|||
add_library(devices serial.cpp rtc.cpp)
|
||||
|
||||
target_include_directories(devices PUBLIC include)
|
||||
target_link_libraries(devices PRIVATE spdlog::spdlog)
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
#include <array>
|
||||
#include <cassert>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <cstring>
|
||||
#include <initializer_list>
|
||||
#include <iostream>
|
||||
#include <iterator>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
#include <spdlog/logger.h>
|
||||
#include <spdlog/sinks/stdout_color_sinks.h>
|
||||
#include <utility>
|
||||
|
||||
namespace Devices {
|
||||
|
@ -55,6 +53,7 @@ public:
|
|||
|
||||
class DeviceMap {
|
||||
std::map<uint64_t, Device *> addr_to_device;
|
||||
std::shared_ptr<spdlog::logger> logger = spdlog::stdout_color_mt("devicemap");
|
||||
|
||||
public:
|
||||
DeviceMap(std::initializer_list<Device *> devices) {
|
||||
|
@ -66,8 +65,8 @@ public:
|
|||
auto it = addr_to_device.upper_bound(addr);
|
||||
if (it == addr_to_device.begin() ||
|
||||
(--it)->second->addr + it->second->len <= addr) {
|
||||
std::cerr << "Use of a unintialized device at memory addr: 0x" << std::hex
|
||||
<< addr << std::dec << std::endl;
|
||||
logger->error("Accessed an unintialized device at memory addr: 0x{:x}",
|
||||
addr);
|
||||
return false;
|
||||
}
|
||||
auto &device = it->second;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue