From 079506db1dca9c5d10f5f0d4ddf0d7c7d60adc53 Mon Sep 17 00:00:00 2001 From: Tifer King Date: Mon, 2 Jan 2023 18:30:23 +0800 Subject: [PATCH] First commit --- AnalyzerSDK/inc/Analyzer.h | 64 ++ AnalyzerSDK/inc/AnalyzerChannelData.h | 40 ++ AnalyzerSDK/inc/AnalyzerHelpers.h | 108 +++ AnalyzerSDK/inc/AnalyzerResults.h | 99 +++ AnalyzerSDK/inc/AnalyzerSettingInterface.h | 151 +++++ AnalyzerSDK/inc/AnalyzerSettings.h | 58 ++ AnalyzerSDK/inc/AnalyzerTypes.h | 16 + AnalyzerSDK/inc/LogicPublicTypes.h | 68 ++ AnalyzerSDK/inc/SimulationChannelDescriptor.h | 57 ++ AnalyzerSDK/lib/Linux/libAnalyzer.so | Bin 0 -> 110592 bytes AnalyzerSDK/lib/Mac/libAnalyzer.dylib | Bin 0 -> 78080 bytes AnalyzerSDK/lib/Win32/Analyzer.dll | Bin 0 -> 64512 bytes AnalyzerSDK/lib/Win32/Analyzer.lib | Bin 0 -> 93896 bytes AnalyzerSDK/lib/Win64/Analyzer.dll | Bin 0 -> 71168 bytes AnalyzerSDK/lib/Win64/Analyzer.lib | Bin 0 -> 95856 bytes LICENSE | 21 + README.en.md | 74 +++ README.md | 74 +++ SWIMAnalyzer.sln | 31 + SWIMAnalyzer/SWIMAnalyzer.cpp | 626 ++++++++++++++++++ SWIMAnalyzer/SWIMAnalyzer.h | 74 +++ SWIMAnalyzer/SWIMAnalyzer.vcxproj | 171 +++++ SWIMAnalyzer/SWIMAnalyzer.vcxproj.filters | 45 ++ SWIMAnalyzer/SWIMAnalyzer.vcxproj.user | 11 + SWIMAnalyzer/SWIMAnalyzerResults.cpp | 416 ++++++++++++ SWIMAnalyzer/SWIMAnalyzerResults.h | 30 + SWIMAnalyzer/SWIMAnalyzerSettings.cpp | 128 ++++ SWIMAnalyzer/SWIMAnalyzerSettings.h | 33 + SWIMAnalyzer/SWIMSimulationDataGenerator.cpp | 286 ++++++++ SWIMAnalyzer/SWIMSimulationDataGenerator.h | 42 ++ doc/SWIM-1.png | Bin 0 -> 16981 bytes doc/SWIM-2.png | Bin 0 -> 7454 bytes doc/SWIM-3.png | Bin 0 -> 74233 bytes doc/SWIM-4.png | Bin 0 -> 79652 bytes doc/SWIM-5.png | Bin 0 -> 80307 bytes 35 files changed, 2723 insertions(+) create mode 100644 AnalyzerSDK/inc/Analyzer.h create mode 100644 AnalyzerSDK/inc/AnalyzerChannelData.h create mode 100644 AnalyzerSDK/inc/AnalyzerHelpers.h create mode 100644 AnalyzerSDK/inc/AnalyzerResults.h create mode 100644 AnalyzerSDK/inc/AnalyzerSettingInterface.h create mode 100644 AnalyzerSDK/inc/AnalyzerSettings.h create mode 100644 AnalyzerSDK/inc/AnalyzerTypes.h create mode 100644 AnalyzerSDK/inc/LogicPublicTypes.h create mode 100644 AnalyzerSDK/inc/SimulationChannelDescriptor.h create mode 100644 AnalyzerSDK/lib/Linux/libAnalyzer.so create mode 100644 AnalyzerSDK/lib/Mac/libAnalyzer.dylib create mode 100644 AnalyzerSDK/lib/Win32/Analyzer.dll create mode 100644 AnalyzerSDK/lib/Win32/Analyzer.lib create mode 100644 AnalyzerSDK/lib/Win64/Analyzer.dll create mode 100644 AnalyzerSDK/lib/Win64/Analyzer.lib create mode 100644 LICENSE create mode 100644 README.en.md create mode 100644 README.md create mode 100644 SWIMAnalyzer.sln create mode 100644 SWIMAnalyzer/SWIMAnalyzer.cpp create mode 100644 SWIMAnalyzer/SWIMAnalyzer.h create mode 100644 SWIMAnalyzer/SWIMAnalyzer.vcxproj create mode 100644 SWIMAnalyzer/SWIMAnalyzer.vcxproj.filters create mode 100644 SWIMAnalyzer/SWIMAnalyzer.vcxproj.user create mode 100644 SWIMAnalyzer/SWIMAnalyzerResults.cpp create mode 100644 SWIMAnalyzer/SWIMAnalyzerResults.h create mode 100644 SWIMAnalyzer/SWIMAnalyzerSettings.cpp create mode 100644 SWIMAnalyzer/SWIMAnalyzerSettings.h create mode 100644 SWIMAnalyzer/SWIMSimulationDataGenerator.cpp create mode 100644 SWIMAnalyzer/SWIMSimulationDataGenerator.h create mode 100644 doc/SWIM-1.png create mode 100644 doc/SWIM-2.png create mode 100644 doc/SWIM-3.png create mode 100644 doc/SWIM-4.png create mode 100644 doc/SWIM-5.png diff --git a/AnalyzerSDK/inc/Analyzer.h b/AnalyzerSDK/inc/Analyzer.h new file mode 100644 index 0000000..e44b9b1 --- /dev/null +++ b/AnalyzerSDK/inc/Analyzer.h @@ -0,0 +1,64 @@ +#ifndef ANALYZER +#define ANALYZER + +#include "LogicPublicTypes.h" +#include "AnalyzerTypes.h" +#include "SimulationChannelDescriptor.h" +#include "AnalyzerSettings.h" + +class AnalyzerChannelData; +class DeviceCollection; +class ConditionManager; +class ProgressManager; +class AnalyzerResults; +struct AnalyzerData; + +class LOGICAPI Analyzer +{ +public: + Analyzer(); + virtual ~Analyzer() = 0; + virtual void WorkerThread() = 0; + + //sample_rate: if there are multiple devices attached, and one is faster than the other, + //we can sample at the speed of the faster one; and pretend the slower one is the same speed. + virtual U32 GenerateSimulationData(U64 newest_sample_requested, U32 sample_rate, SimulationChannelDescriptor **simulation_channels) = 0; + virtual U32 GetMinimumSampleRateHz() = 0; //provide the sample rate required to generate good simulation data + virtual const char *GetAnalyzerVersion() const; //don't override + virtual const char *GetAnalyzerName() const = 0; + virtual bool NeedsRerun() = 0; + virtual void SetupResults(); + + //use, but don't override: + void SetAnalyzerSettings(AnalyzerSettings *settings); + void KillThread(); + AnalyzerChannelData *GetAnalyzerChannelData(Channel &channel); //don't delete this pointer + void ReportProgress(U64 sample_number); + void SetAnalyzerResults(AnalyzerResults *results); + U32 GetSimulationSampleRate(); + U32 GetSampleRate(); + U64 GetTriggerSample(); + + //don't override, don't use: + void Init(DeviceCollection *device_collection, ConditionManager *condition_manager, ProgressManager *progress_manager); + void StartProcessing(); + void StopWorkerThread(); + AnalyzerSettings *GetAnalyzerSettings(); + bool DoesAnalyzerUseDevice(U64 device_id); + bool IsValid(Channel *channel_array, U32 count); + void InitialWorkerThread(); + bool GetAnalyzerResults(AnalyzerResults **analyzer_results); + + //functions added after initial release -- added at the bottom for binary compatibilty + void CheckIfThreadShouldExit(); + double GetAnalyzerProgress(); + void SetThreadMustExit(); + void StartProcessing(U64 starting_sample); + +protected: + struct AnalyzerData *mData; +}; + +typedef Analyzer Analyzer2; //provide compatibility definitions + +#endif //ANALYZER diff --git a/AnalyzerSDK/inc/AnalyzerChannelData.h b/AnalyzerSDK/inc/AnalyzerChannelData.h new file mode 100644 index 0000000..04b7c61 --- /dev/null +++ b/AnalyzerSDK/inc/AnalyzerChannelData.h @@ -0,0 +1,40 @@ +#ifndef ANALYZERCHANNELDATA +#define ANALYZERCHANNELDATA + +#include "LogicPublicTypes.h" + +struct AnalyzerChannelDataData; +class ChannelData; + +class LOGICAPI AnalyzerChannelData +{ +public: + AnalyzerChannelData(ChannelData *channel_data); + ~AnalyzerChannelData(); + + //State + U64 GetSampleNumber(); + BitState GetBitState(); + + //Basic: + U32 Advance(U32 num_samples); //move forward the specified number of samples. Returns the number of times the bit changed state during the move. + U32 AdvanceToAbsPosition(U64 sample_number); //move forward to the specified sample number. Returns the number of times the bit changed state during the move. + void AdvanceToNextEdge(); //move forward until the bit state changes from what it is now. + + //Fancier + U64 GetSampleOfNextEdge(); //without moving, get the sample of the next transition. + bool WouldAdvancingCauseTransition(U32 num_samples); //if we advanced, would we encounter any transitions? + bool WouldAdvancingToAbsPositionCauseTransition(U64 sample_number); //if we advanced, would we encounter any transitions? + + //minimum pulse tracking. The serial analyzer uses this for auto-baud + void TrackMinimumPulseWidth(); //normally this is not enabled. + U64 GetMinimumPulseWidthSoFar(); + + //Fancier, part II + bool DoMoreTransitionsExistInCurrentData(); //use this when you have a situation where you have multiple lines, and you need to handle the case where one or the other of them may never change again, and you don't know which. + +protected: + AnalyzerChannelDataData *mData; +}; + +#endif //ANALYZERCHANNELDATA \ No newline at end of file diff --git a/AnalyzerSDK/inc/AnalyzerHelpers.h b/AnalyzerSDK/inc/AnalyzerHelpers.h new file mode 100644 index 0000000..2a6f2e9 --- /dev/null +++ b/AnalyzerSDK/inc/AnalyzerHelpers.h @@ -0,0 +1,108 @@ +#ifndef ANALYZER_HELPERS_H +#define ANALYZER_HELPERS_H + +#include "Analyzer.h" + +class LOGICAPI AnalyzerHelpers +{ +public: + static bool IsEven(U64 value); + static bool IsOdd(U64 value); + static U32 GetOnesCount(U64 value); + static U32 Diff32(U32 a, U32 b); + + static void GetNumberString(U64 number, DisplayBase display_base, U32 num_data_bits, char *result_string, U32 result_string_max_length); + static void GetTimeString(U64 sample, U64 trigger_sample, U32 sample_rate_hz, char *result_string, U32 result_string_max_length); + + static void Assert(const char *message); + static U64 AdjustSimulationTargetSample(U64 target_sample, U32 sample_rate, U32 simulation_sample_rate); + + static bool DoChannelsOverlap(const Channel *channel_array, U32 num_channels); + static void SaveFile(const char *file_name, const U8 *data, U32 data_length, bool is_binary = false); + + static S64 ConvertToSignedNumber(U64 number, U32 num_bits); + + //These save functions should not be used with SaveFile, above. They are a better way to export data (don't waste memory), and should be used from now on. + static void *StartFile(const char *file_name, bool is_binary = false); + static void AppendToFile(const U8 *data, U32 data_length, void *file); + static void EndFile(void *file); +}; + + +struct ClockGeneratorData; +class LOGICAPI ClockGenerator +{ +public: + ClockGenerator(); + ~ClockGenerator(); + void Init(double target_frequency, U32 sample_rate_hz); + U32 AdvanceByHalfPeriod(double multiple = 1.0); + U32 AdvanceByTimeS(double time_s); + +protected: + struct ClockGeneratorData *mData; +}; + + +struct BitExtractorData; +class LOGICAPI BitExtractor +{ +public: + BitExtractor(U64 data, AnalyzerEnums::ShiftOrder shift_order, U32 num_bits); + ~BitExtractor(); + + BitState GetNextBit(); + +protected: + struct BitExtractorData *mData; +}; + + +struct DataBuilderData; +class LOGICAPI DataBuilder +{ +public: + DataBuilder(); + ~DataBuilder(); + + void Reset(U64 *data, AnalyzerEnums::ShiftOrder shift_order, U32 num_bits); + void AddBit(BitState bit); + +protected: + struct DataBuilderData *mData; +}; + + +struct SimpleArchiveData; +class LOGICAPI SimpleArchive +{ +public: + SimpleArchive(); + ~SimpleArchive(); + + void SetString(const char *archive_string); + const char *GetString(); + + bool operator<<(U64 data); + bool operator<<(U32 data); + bool operator<<(S64 data); + bool operator<<(S32 data); + bool operator<<(double data); + bool operator<<(bool data); + bool operator<<(const char *data); + bool operator<<(Channel &data); + + bool operator>>(U64 &data); + bool operator>>(U32 &data); + bool operator>>(S64 &data); + bool operator>>(S32 &data); + bool operator>>(double &data); + bool operator>>(bool &data); + bool operator>>(char const **data); + bool operator>>(Channel &data); + +protected: + struct SimpleArchiveData *mData; +}; + +#endif //ANALYZER_HELPERS_H diff --git a/AnalyzerSDK/inc/AnalyzerResults.h b/AnalyzerSDK/inc/AnalyzerResults.h new file mode 100644 index 0000000..44a9a04 --- /dev/null +++ b/AnalyzerSDK/inc/AnalyzerResults.h @@ -0,0 +1,99 @@ +#ifndef ANALYZER_RESULTS +#define ANALYZER_RESULTS + +#include "LogicPublicTypes.h" +#include + +#define DISPLAY_AS_ERROR_FLAG (1 << 7) +#define DISPLAY_AS_WARNING_FLAG (1 << 6) + +class LOGICAPI Frame +{ +public: + Frame(); + Frame(const Frame &frame); + ~Frame(); + + S64 mStartingSampleInclusive; + S64 mEndingSampleInclusive; + U64 mData1; + U64 mData2; + U8 mType; + U8 mFlags; + + bool HasFlag(U8 flag); +}; + +#define INVALID_RESULT_INDEX 0xFFFFFFFFFFFFFFFFull + +struct AnalyzerResultsData; +class LOGICAPI AnalyzerResults +{ +public: + enum MarkerType { Dot, ErrorDot, Square, ErrorSquare, UpArrow, DownArrow, X, ErrorX, Start, Stop, One, Zero }; + AnalyzerResults(); //you must call the base class contructor in your constructor + virtual ~AnalyzerResults(); + + //override: + virtual void GenerateBubbleText(U64 frame_index, Channel &channel, DisplayBase display_base) = 0; + virtual void GenerateExportFile(const char *file, DisplayBase display_base, U32 export_type_user_id) = 0; + virtual void GenerateFrameTabularText(U64 frame_index, DisplayBase display_base) = 0; + virtual void GeneratePacketTabularText(U64 packet_id, DisplayBase display_base) = 0; + virtual void GenerateTransactionTabularText(U64 transaction_id, DisplayBase display_base) = 0; + +public: //adding/setting data + void AddMarker(U64 sample_number, MarkerType marker_type, Channel &channel); + + U64 AddFrame(const Frame &frame); + U64 CommitPacketAndStartNewPacket(); + void CancelPacketAndStartNewPacket(); + void AddPacketToTransaction(U64 transaction_id, U64 packet_id); + void AddChannelBubblesWillAppearOn(const Channel &channel); + + void CommitResults(); + +public: //data access + U64 GetNumFrames(); + U64 GetNumPackets(); + Frame GetFrame(U64 frame_id); + + U64 GetPacketContainingFrame(U64 frame_id); + U64 GetPacketContainingFrameSequential(U64 frame_id); + void GetFramesContainedInPacket(U64 packet_id, U64 *first_frame_id, U64 *last_frame_id); + + U32 GetTransactionContainingPacket(U64 packet_id); + void GetPacketsContainedInTransaction(U64 transaction_id, U64 **packet_id_array, U64 *packet_id_count); + +public: //text results setting and access: + void ClearResultStrings(); + void AddResultString(const char *str1, const char *str2 = NULL, const char *str3 = NULL, const char *str4 = NULL, const char *str5 = NULL, const char *str6 = NULL); //multiple strings will be concatinated + void GetResultStrings(char const ***result_string_array, U32 *num_strings); + +protected: //use these when exporting data. + bool UpdateExportProgressAndCheckForCancel(U64 completed_frames, U64 total_frames); + +public: //don't use + bool DoBubblesAppearOnChannel(Channel &channel); + bool DoMarkersAppearOnChannel(Channel &channel); + bool GetFramesInRange(S64 starting_sample_inclusive, S64 ending_sample_inclusive, U64 *first_frame_index, U64 *last_frame_index); + bool GetMarkersInRange(Channel &channel, S64 starting_sample_inclusive, S64 ending_sample_inclusive, U64 *first_marker_index, U64 *last_marker_index); + void GetMarker(Channel &channel, U64 marker_index, MarkerType *marker_type, U64 *marker_sample); + U64 GetNumMarkers(Channel &channel); + + void CancelExport(); + double GetProgress(); + void StartExportThread(const char *file, DisplayBase display_base, U32 export_type_user_id); + +protected: + struct AnalyzerResultsData *mData; + +public: + void ClearTabularText(); + const char *BuildSearchData(U64 FrameID, DisplayBase disp_base, int channel_list_index, char *result); + + std::string GetStringForDisplayBase(U64 frame_id, Channel channel, DisplayBase disp_base); + void AddTabularText(const char *str1, const char *str2 = NULL, const char *str3 = NULL, const char *str4 = NULL, const char *str5 = NULL, const char *str6 = NULL); + std::string GetTabularTextString(); +}; + +#endif //ANALYZER_RESULTS diff --git a/AnalyzerSDK/inc/AnalyzerSettingInterface.h b/AnalyzerSDK/inc/AnalyzerSettingInterface.h new file mode 100644 index 0000000..1bf13e1 --- /dev/null +++ b/AnalyzerSDK/inc/AnalyzerSettingInterface.h @@ -0,0 +1,151 @@ +#ifndef ANALYZER_SETTING_INTERFACE +#define ANALYZER_SETTING_INTERFACE + +#include +#include +#include "LogicPublicTypes.h" + +enum AnalyzerInterfaceTypeId { + INTERFACE_BASE, + INTERFACE_CHANNEL, + INTERFACE_NUMBER_LIST, + INTERFACE_INTEGER, + INTERFACE_TEXT, + INTERFACE_BOOL +}; + +//note: we don't need to have virtual functions to prevent code copies becuase they is only one copy of the code now -- in the DLL. +//we need one virtual function, to return the class type; we're not using rtti + +//using PIMPL; struct can change, non-virtual functions can be added to the end; +//Can not add/remove virtual functions + +struct AnalyzerSettingInterfaceData; +class LOGICAPI AnalyzerSettingInterface +{ +public: + AnalyzerSettingInterface(); + virtual ~AnalyzerSettingInterface(); + + static void operator delete (void *p); + static void *operator new (size_t size); + virtual AnalyzerInterfaceTypeId GetType(); + + const char *GetToolTip(); + const char *GetTitle(); + bool IsDisabled(); + void SetTitleAndTooltip(const char *title, const char *tooltip); + + //todo: position, group, spacers, visual attributes + +protected: + struct AnalyzerSettingInterfaceData *mData; + +}; + +struct AnalyzerSettingInterfaceChannelData; +class LOGICAPI AnalyzerSettingInterfaceChannel : public AnalyzerSettingInterface +{ +public: + AnalyzerSettingInterfaceChannel(); + virtual ~AnalyzerSettingInterfaceChannel(); + virtual AnalyzerInterfaceTypeId GetType(); + + Channel GetChannel(); + void SetChannel(const Channel &channel); + bool GetSelectionOfNoneIsAllowed(); + void SetSelectionOfNoneIsAllowed(bool is_allowed); + +protected: + struct AnalyzerSettingInterfaceChannelData *mChannelData; +}; + +struct AnalyzerSettingInterfaceNumberListData; +class LOGICAPI AnalyzerSettingInterfaceNumberList : public AnalyzerSettingInterface +{ +public: + AnalyzerSettingInterfaceNumberList(); + virtual ~AnalyzerSettingInterfaceNumberList(); + virtual AnalyzerInterfaceTypeId GetType(); + + double GetNumber(); + void SetNumber(double number); + + U32 GetListboxNumbersCount(); + double GetListboxNumber(U32 index); + + U32 GetListboxStringsCount(); + const char *GetListboxString(U32 index); + + U32 GetListboxTooltipsCount(); + const char *GetListboxTooltip(U32 index); + + void AddNumber(double number, const char *str, const char *tooltip); + void ClearNumbers(); + +protected: + struct AnalyzerSettingInterfaceNumberListData *mNumberListData; + +}; + +struct AnalyzerSettingInterfaceIntegerData; +class LOGICAPI AnalyzerSettingInterfaceInteger : public AnalyzerSettingInterface +{ +public: + AnalyzerSettingInterfaceInteger(); + virtual ~AnalyzerSettingInterfaceInteger(); + virtual AnalyzerInterfaceTypeId GetType(); + + int GetInteger(); + void SetInteger(int integer); + + int GetMax(); + int GetMin(); + + void SetMax(int max); + void SetMin(int min); + +protected: + struct AnalyzerSettingInterfaceIntegerData *mIntegerData; + +}; + +struct AnalyzerSettingInterfaceTextData; +class LOGICAPI AnalyzerSettingInterfaceText : public AnalyzerSettingInterface +{ +public: + AnalyzerSettingInterfaceText(); + virtual ~AnalyzerSettingInterfaceText(); + + AnalyzerInterfaceTypeId GetType(); + const char *GetText(); + void SetText(const char *text); + + enum TextType { NormalText, FilePath, FolderPath }; + TextType GetTextType(); + void SetTextType(TextType text_type); + + +protected: + struct AnalyzerSettingInterfaceTextData *mTextData; + +}; + +struct AnalyzerSettingInterfaceBoolData; +class LOGICAPI AnalyzerSettingInterfaceBool : public AnalyzerSettingInterface +{ +public: + AnalyzerSettingInterfaceBool(); + virtual ~AnalyzerSettingInterfaceBool(); + virtual AnalyzerInterfaceTypeId GetType(); + + bool GetValue(); + void SetValue(bool value); + const char *GetCheckBoxText(); + void SetCheckBoxText(const char *text); + +protected: + struct AnalyzerSettingInterfaceBoolData *mBoolData; +}; + +#endif //ANALYZER_SETTING_INTERFACE diff --git a/AnalyzerSDK/inc/AnalyzerSettings.h b/AnalyzerSDK/inc/AnalyzerSettings.h new file mode 100644 index 0000000..ac5e0cd --- /dev/null +++ b/AnalyzerSDK/inc/AnalyzerSettings.h @@ -0,0 +1,58 @@ +#ifndef ANALYZER_SETTINGS +#define ANALYZER_SETTINGS + +#include "LogicPublicTypes.h" +#include "AnalyzerSettingInterface.h" + +struct AnalyzerSettingsData; +class LOGICAPI AnalyzerSettings +{ +public: + AnalyzerSettings(); + virtual ~AnalyzerSettings(); + + //Implement + virtual bool SetSettingsFromInterfaces() = 0;//Get the settings out of the interfaces, validate them, and save them to your local settings vars. + virtual void LoadSettings(const char *settings) = 0; //Load your settings from the provided string + virtual const char *SaveSettings() = 0; //Save your settings to a string and return it. (use SetSettingsString, return GetSettingsString) + virtual const char *GetSettingBrief(); + +protected: + //Use, but don't override/implement + void ClearChannels(); //clear all the reported channels before adding them, if you need to change them. + void AddChannel(Channel &channel, const char *channel_label, bool is_used); //used to report the channels we're working with to the outside world. + + void SetErrorText(const char *error_text); //if settings are invalid, set the text to display to the user (used in SetSettingsFromInterfaces) + void AddInterface(AnalyzerSettingInterface *analyzer_setting_interface); //add your interfaces so the outside world can access. You'll need to keep copies of all the pointers you provide. + + void AddExportOption(U32 user_id, const char *menu_text); + void AddExportExtension(U32 user_id, const char *extension_description, const char *extension); + + const char *SetReturnString(const char *str); + +public: + //Do not use, do not override + U32 GetSettingsInterfacesCount(); + AnalyzerSettingInterface *GetSettingsInterface(U32 index); + + U32 GetFileExtensionCount(U32 index_id); + void GetFileExtension(U32 index_id, U32 extension_id, char const **extension_description, char const **extension); + + U32 GetChannelsCount(); + Channel GetChannel(U32 index, char const **channel_label, bool *channel_is_used); + + U32 GetExportOptionsCount(); + void GetExportOption(U32 index, U32 *user_id, char const **menu_text); + + const char *GetSaveErrorMessage(); + + bool GetUseSystemDisplayBase(); + void SetUseSystemDisplayBase(bool use_system_display_base); + DisplayBase GetAnalyzerDisplayBase(); + void SetAnalyzerDisplayBase(DisplayBase analyzer_display_base); + +protected: + struct AnalyzerSettingsData *mData; +}; + +#endif //ANALYZER_SETTINGS diff --git a/AnalyzerSDK/inc/AnalyzerTypes.h b/AnalyzerSDK/inc/AnalyzerTypes.h new file mode 100644 index 0000000..92dbd2f --- /dev/null +++ b/AnalyzerSDK/inc/AnalyzerTypes.h @@ -0,0 +1,16 @@ +#ifndef ANALYZERPUBLICTYPES +#define ANALYZERPUBLICTYPES + +#include "LogicPublicTypes.h" + +namespace AnalyzerEnums +{ + enum ShiftOrder { MsbFirst, LsbFirst }; + enum EdgeDirection { PosEdge, NegEdge }; + enum Edge { LeadingEdge, TrailingEdge }; + enum Parity { None, Even, Odd }; + enum Acknowledge { Ack, Nak }; + enum Sign { UnsignedInteger, SignedInteger }; +}; + +#endif //ANALYZERPUBLICTYPES diff --git a/AnalyzerSDK/inc/LogicPublicTypes.h b/AnalyzerSDK/inc/LogicPublicTypes.h new file mode 100644 index 0000000..4f88ed9 --- /dev/null +++ b/AnalyzerSDK/inc/LogicPublicTypes.h @@ -0,0 +1,68 @@ +#ifndef LOGICPUBLICTYPES +#define LOGICPUBLICTYPES + +#ifndef WIN32 + #define __cdecl +#endif + +#ifdef WIN32 + #define LOGICAPI __declspec(dllexport) +#else + #define LOGICAPI __attribute__ ((visibility("default"))) +#endif + +#ifdef WIN32 + #define ANALYZER_EXPORT __declspec(dllexport) +#else + #define ANALYZER_EXPORT __attribute__ ((visibility("default"))) +#endif + +typedef signed char S8; /* 8 bit signed */ +typedef unsigned char U8; /* 8 bit unsigned */ +typedef short S16; /* 16 bit signed */ +typedef unsigned short U16; /* 16 bit unsigned */ +typedef int S32; /* 32 bit signed */ +typedef unsigned int U32; /* 32 bit unsigned */ +typedef long long S64; /* 64 bit signed */ +typedef unsigned long long U64; /* 64 bit unsigned */ + +#ifndef NULL +#define NULL 0 +#endif + +enum DisplayBase { Binary, Decimal, Hexadecimal, ASCII, AsciiHex }; +enum BitState { BIT_LOW, BIT_HIGH }; + +#define Toggle(x) (x == BIT_LOW ? BIT_HIGH : BIT_LOW) +#define Invert(x) (x == BIT_LOW ? BIT_HIGH : BIT_LOW) + +#define UNDEFINED_CHANNEL Channel(0xFFFFFFFFFFFFFFFFull, 0xFFFFFFFF) + +//Note this class can not add, remove or reorder member variables without breaking binary compatibilty +//This function can add non-virtual functions as long as they are listed after existing functions. +class LOGICAPI Channel +{ +public: + Channel(); + Channel(const Channel &channel); + Channel(U64 device_id, U32 channel_index); + ~Channel(); + + Channel &operator=(const Channel &channel); + bool operator==(const Channel &channel) const; + bool operator!=(const Channel &channel) const; + bool operator>(const Channel &channel) const; + bool operator<(const Channel &channel) const; + + U64 mDeviceId; + U32 mChannelIndex; +}; + +#include //required by some compilers for std::auto_ptr + +#ifdef _MSC_VER +#define snprintf _snprintf_s +#define vsnprintf vsprintf_s +#endif + +#endif //LOGICPUBLICTYPES diff --git a/AnalyzerSDK/inc/SimulationChannelDescriptor.h b/AnalyzerSDK/inc/SimulationChannelDescriptor.h new file mode 100644 index 0000000..032b620 --- /dev/null +++ b/AnalyzerSDK/inc/SimulationChannelDescriptor.h @@ -0,0 +1,57 @@ +#ifndef SIMULATION_CHANNEL_DESCRIPTOR +#define SIMULATION_CHANNEL_DESCRIPTOR + +#include "LogicPublicTypes.h" + +//PIMPL implementation can be changed, non-virtual functions can be added at the end, no vars can be added/removed/reordered/changed. +struct SimulationChannelDescriptorData; +class LOGICAPI SimulationChannelDescriptor +{ +public: + void Transition(); + void TransitionIfNeeded(BitState bit_state); + void Advance(U32 num_samples_to_advance); + + BitState GetCurrentBitState(); + U64 GetCurrentSampleNumber(); + +public: //don't use + SimulationChannelDescriptor(); + SimulationChannelDescriptor(const SimulationChannelDescriptor &other); + ~SimulationChannelDescriptor(); + SimulationChannelDescriptor &operator=(const SimulationChannelDescriptor &other); + + void SetChannel(Channel &channel); + void SetSampleRate(U32 sample_rate_hz); + void SetInitialBitState(BitState intial_bit_state); + + Channel GetChannel(); + U32 GetSampleRate(); + BitState GetInitialBitState(); + void *GetData(); + +protected: + struct SimulationChannelDescriptorData *mData; +}; + + +struct SimulationChannelDescriptorGroupData; +class LOGICAPI SimulationChannelDescriptorGroup +{ +public: + SimulationChannelDescriptorGroup(); + ~SimulationChannelDescriptorGroup(); + + SimulationChannelDescriptor *Add(Channel &channel, U32 sample_rate, BitState intial_bit_state); //do not delete this pointer + + void AdvanceAll(U32 num_samples_to_advance); + +public: + SimulationChannelDescriptor *GetArray(); + U32 GetCount(); + +protected: + struct SimulationChannelDescriptorGroupData *mData; +}; + +#endif //SIMULATION_CHANNEL_DESCRIPTOR \ No newline at end of file diff --git a/AnalyzerSDK/lib/Linux/libAnalyzer.so b/AnalyzerSDK/lib/Linux/libAnalyzer.so new file mode 100644 index 0000000000000000000000000000000000000000..0cec5e4e046b5a75469927ff415fbbe9ba7bf184 GIT binary patch literal 110592 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%0AAc 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 literal 0 HcmV?d00001 diff --git a/AnalyzerSDK/lib/Mac/libAnalyzer.dylib b/AnalyzerSDK/lib/Mac/libAnalyzer.dylib new file mode 100644 index 0000000000000000000000000000000000000000..e6ed4c5a1d96a873ced503986a590dfafaa4d3b8 GIT binary patch literal 78080 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

k9X1gXTLSs{s^b3&J+@>C5u9uE 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 literal 0 HcmV?d00001 diff --git a/AnalyzerSDK/lib/Win64/Analyzer.lib b/AnalyzerSDK/lib/Win64/Analyzer.lib new file mode 100644 index 0000000000000000000000000000000000000000..0f342ddee42e0738b88d1166841aaf58f7eda33e GIT binary patch literal 95856 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 literal 0 HcmV?d00001 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9f4c835 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Tifer King + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..00d6344 --- /dev/null +++ b/README.en.md @@ -0,0 +1,74 @@ +# KingstVIS Logic Analyzer SWIM Plugin + +[中文](README.md) +[English](README.en.md) + +## Introduction + +KingstVIS, developed by Qingdao Kingst Electronics Co., Ltd., is a logic analyzer support software that includes many useful analyzers. However, when I attempted to use it to analyze SWIM (Single wire interface module) recently, I found that it did not have this particular analyzer. STMicroelectronics developed SWIM, which is a powerful debugging bus used for debugging STM8 8-bit microcontrollers. I created this analyzer plugin by referring to the official documentation. If you are working with STM8 series MCUs, you may find this plugin helpful during the development or debugging process. + +## Table of Contents + +- [Introduction](#Introduction) +- [Instructions](#Instructions) +- [Samples](#Samples) +- [Appendix](#Appendix) +- [License](#License) + +## Instructions + +To add the SWIM analyzer to KingstVIS, first copy `SWIMAnalyzer.dll` to the `Analyzer` directory within the KingstVIS root directory (usually located at `C:\Program Files\KingstVIS\Analyzer`). Then, launch KingstVIS and find the `SWIM` option under `More Analyzers`. + +![SWIMList][img1] + +## Samples + +When you open the SWIM analyzer, a configuration interface with four options will appear: SWIM and RST channel selection, as well as HSI and LSI clock frequency configuration. The SWIM channel is required, while the RST channel is optional. These options correspond to the SWIM data channel and the MCU reset channel, respectively. While the RST channel is optional, selecting it can provide more accurate analysis. The HSI and LSI frequencies should be configured according to the specific MCU you are using. The default frequencies are 16 MHz and 128 KHz, but please refer to the MCU user manual for more information. + +![SWIMInterface][img2] + +After capturing SWIM data, you can view it in the left waveform panel or the right data analysis panel. The following are three examples of SWIM data captured: + +SWIM entry sequence: + +![SWIMScreenShot1][img3] + +Write on-the-fly: + +![SWIMScreenShot2][img4] + +Read on-the-fly: + +![SWIMScreenShot3][img5] + +Some explanations: + +- Entry Pulses: SWIM wake-up sequence typically consists of four 1 KHz pulses followed by four 2 KHz pulses. +- HSI Freq: This is a synchronization pulse typically with a width of 128xSWIM clocks. +- ROTF: Read on-the-fly +- WOTF: Write on-the-fly +- SRST: System Reset +- N: The length of the data in bytes +- Addr: Address +- RD: Read data (data that is read from the MCU to the host) +- WD: Write data (data that is written from the host to the MCU) +- Error Frame: Parity error +- Unknown Frame: Reserved frame +- \[A\]: ACK (acknowledgement) +- \[N\]: NACK (negative acknowledgement) + +## Appendix + +- KingstVIS & Qingdao Kingst Electronics Website: +- STMicroelectronics Website: +- SWIM Document(UM0470): + +## License + +[MIT](LICENSE) © Tifer King + +[img1]: doc/SWIM-1.png "SWIM in Analyzer List" +[img2]: doc/SWIM-2.png "SWIM Configure Interface" +[img3]: doc/SWIM-3.png "SWIM Interface-1" +[img4]: doc/SWIM-4.png "SWIM Interface-2" +[img5]: doc/SWIM-5.png "SWIM Interface-3" \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..82f8402 --- /dev/null +++ b/README.md @@ -0,0 +1,74 @@ +# 金思特(Kingst)逻辑分析仪SWIM协议分析插件 + +[中文](README.md) +[English](README.en.md) + +## 简介 + +KingstVIS是青岛金思特电子有限公司推出的多款逻辑分析仪配套的数据采集软件,该软件包含很多常用的协议分析模组。然而在近期使用的时候发现其并不包含意法半导体(STMicroelectronics)公司的SWIM(Single wire interface module)调试总线的时序分析,于是便参考官方提供的协议文档自己开发了这个协议分析的模块。SWIM总线是用于对STM8系列的8-bit单片机进行调试的调试总线,在调试和深度开发STM8系列的单片机时会用到,希望该模块可以帮助有相关需要的人。 + +## 内容列表 + +- [简介](#简介) +- [使用方法](#使用方法) +- [数据解析和样例](#数据解析和样例) +- [附录](#附录) +- [使用许可](#使用许可) + +## 使用方法 + +将编译好的SWIMAnalyzer.dll复制到KingstVIS程序根目录下的Analyzer目录中即可,通常这个目录的地址为:`C:\Program Files\KingstVIS\Analyzer`。这时打开KingstVIS软件便可以在协议解析器列表中找到`SWIM`模块。 + +![SWIMList][img1] + +## 数据解析和样例 + +打开SWIM解析器模块之后,会弹出一个配置页面其中包含四个配置选项,分别是选择SWIM和RST通道和HSI,LSI时钟频率的配置。其中SWIM是必选通道,对应的是SWIM总线的数据通道,RST则是单片机的复位线,复位通道不是必选的,但当选择了复位线之后可以辅助对协议进行更精确的分析。而HSI和LSI始终频率则需要根据使用的单片机型号做出相应的调整,这里默认是16MHz和128KHz,具体需要参阅所使用的单片机型号手册。 + +![SWIMInterface][img2] + +在捕捉到SWIM数据之后,可以在左侧数据面板或者右侧解析结果面板进行对解析到的数据进行观察。以下展示实际捕捉到的三组SWIM数据。 + +初始化部分: + +![SWIMScreenShot1][img3] + +写数据包: + +![SWIMScreenShot2][img4] + +读数据包: + +![SWIMScreenShot3][img5] + +相关数据类型解释: + +- Entry Pulses: SWIM总线协议中唤醒从机的特殊序列,通常为4个1KHz脉冲和4个2KHz脉冲。 +- HSI Freq: SWIM总线协议中从机向主机发送的SWIM时钟训练脉宽,通常是128个SWIM时钟。 +- ROTF: (Read on-the-fly) 读取指令 +- WOTF: (Write on-the-fly) 写入指令 +- SRST: (System Reset) 复位指令 +- N: 数据包长度 +- Addr: 操作起始地址 +- RD: 读数据包,通常为从机发往主机 +- WD: 写数据包,通常为主机发往从机 +- Error Frame: 错误的数据包,通常是奇偶校验结果不符 +- Unknown Frame: 未知的数据头,通常是检测到了未知的数据类型 +- \[A\]: (ACK) 表明该帧已被确认 +- \[N\]: (NACK) 表明该帧未被确认 + +## 附录 + +- KingstVIS下载地址&青岛金思特公司官网: +- 意法半导体公司官网: +- SWIM时序介绍文档(UM0470): + +## 使用许可 + +[MIT](LICENSE) © Tifer King + +[img1]: doc/SWIM-1.png "SWIM在全部协议解析器列表中" +[img2]: doc/SWIM-2.png "SWIM解析器配置界面" +[img3]: doc/SWIM-3.png "SWIM使用界面1" +[img4]: doc/SWIM-4.png "SWIM使用界面2" +[img5]: doc/SWIM-5.png "SWIM使用界面3" \ No newline at end of file diff --git a/SWIMAnalyzer.sln b/SWIMAnalyzer.sln new file mode 100644 index 0000000..0e7ed0b --- /dev/null +++ b/SWIMAnalyzer.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.4.33205.214 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SWIMAnalyzer", "SWIMAnalyzer\SWIMAnalyzer.vcxproj", "{D895576D-0780-43EC-91AB-E646BD36C7AE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D895576D-0780-43EC-91AB-E646BD36C7AE}.Debug|x64.ActiveCfg = Debug|x64 + {D895576D-0780-43EC-91AB-E646BD36C7AE}.Debug|x64.Build.0 = Debug|x64 + {D895576D-0780-43EC-91AB-E646BD36C7AE}.Debug|x86.ActiveCfg = Debug|Win32 + {D895576D-0780-43EC-91AB-E646BD36C7AE}.Debug|x86.Build.0 = Debug|Win32 + {D895576D-0780-43EC-91AB-E646BD36C7AE}.Release|x64.ActiveCfg = Release|x64 + {D895576D-0780-43EC-91AB-E646BD36C7AE}.Release|x64.Build.0 = Release|x64 + {D895576D-0780-43EC-91AB-E646BD36C7AE}.Release|x86.ActiveCfg = Release|Win32 + {D895576D-0780-43EC-91AB-E646BD36C7AE}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {515D297C-2420-4F6E-B2CC-7E4AB520A5CC} + EndGlobalSection +EndGlobal diff --git a/SWIMAnalyzer/SWIMAnalyzer.cpp b/SWIMAnalyzer/SWIMAnalyzer.cpp new file mode 100644 index 0000000..d63766e --- /dev/null +++ b/SWIMAnalyzer/SWIMAnalyzer.cpp @@ -0,0 +1,626 @@ + +#include "SWIMAnalyzer.h" +#include "SWIMAnalyzerSettings.h" +#include + +SWIMAnalyzer::SWIMAnalyzer() + : Analyzer(), + mSettings(new SWIMAnalyzerSettings()), + mSimulationInitilized(false), + mSWIM(NULL), + mRST(NULL) +{ + SetAnalyzerSettings(mSettings.get()); +} + +SWIMAnalyzer::~SWIMAnalyzer() +{ + KillThread(); +} + +void SWIMAnalyzer::SetupResults() +{ + mResults.reset(new SWIMAnalyzerResults(this, mSettings.get())); + SetAnalyzerResults(mResults.get()); + + if (mSettings->mSWIMChannel != UNDEFINED_CHANNEL) { + mResults->AddChannelBubblesWillAppearOn(mSettings->mSWIMChannel); + } + if (mSettings->mResetChannel != UNDEFINED_CHANNEL) { + mResults->AddChannelBubblesWillAppearOn(mSettings->mResetChannel); + } +} + +void SWIMAnalyzer::WorkerThread() +{ + SetupChannel(); + SetupSample(); + + if (mSWIM->GetBitState() == BIT_LOW) + { + mSWIM->AdvanceToNextEdge(); + } + + for (; ;) + { + if (mSWIM->GetBitState() == BIT_HIGH) + { + mSWIM->AdvanceToNextEdge(); + } + + U64 starting_sample = mSWIM->GetSampleNumber(); + bool high_speed_bit = false; + bool is_entry = false; + + + if (mRST != NULL) + { + mRST->AdvanceToAbsPosition(starting_sample); + if (mRST->GetBitState() == BIT_LOW) + { + is_entry = true; + } + } + if(!is_entry) + { + // Auto detect bit speed + for (;;) + { + starting_sample = mSWIM->GetSampleNumber(); + U64 next_sample = mSWIM->GetSampleOfNextEdge(); + U64 sample_num = next_sample - starting_sample; + ClockGenerator clk_gen; + clk_gen.Init(mSettings->mHSIClockFreq / 2, GetSampleRate()); + U64 sample_1 = clk_gen.AdvanceByHalfPeriod(14); + U64 sample_2 = clk_gen.AdvanceByHalfPeriod(30); + U64 sample_3 = clk_gen.AdvanceByTimeS(0.5e-3); + if (sample_num <= sample_1) + { + high_speed_bit = true; + break; + } + else if (sample_num <= sample_2) + { + high_speed_bit = false; + break; + } + else if(sample_num >= sample_3) + { + is_entry = true; + break; + } + else + { + mSWIM->AdvanceToNextEdge(); + mSWIM->AdvanceToNextEdge(); + } + } + } + + if (is_entry) + { + ParseEntry(); + } + else + { + ParseSWIM(high_speed_bit); + } + + mResults->CommitResults(); + + CheckIfThreadShouldExit(); + } +} + +bool SWIMAnalyzer::NeedsRerun() +{ + return false; +} + +void SWIMAnalyzer::SetupChannel() +{ + mSWIM = GetAnalyzerChannelData(mSettings->mSWIMChannel); + + if (mSettings->mResetChannel != UNDEFINED_CHANNEL) + { + mRST = GetAnalyzerChannelData(mSettings->mResetChannel); + } + else + { + mRST = NULL; + } +} + +void SWIMAnalyzer::SetupSample() +{ + ClockGenerator clk_gen; + clk_gen.Init(mSettings->mHSIClockFreq / 2, GetSampleRate()); + mHighSpeedSampleOffsets.clear(); + mHighSpeedSampleOffsets.push_back(0); + for (size_t i = 0; i < 9; i++) + { + mHighSpeedSampleOffsets.push_back(clk_gen.AdvanceByHalfPeriod()); + } + + clk_gen.Init(mSettings->mHSIClockFreq / 2, GetSampleRate()); + mLowSpeedSampleOffsets.clear(); + mLowSpeedSampleOffsets.push_back(0); + for (size_t i = 0; i < 21; i++) + { + mLowSpeedSampleOffsets.push_back(clk_gen.AdvanceByHalfPeriod()); + } +} + +void SWIMAnalyzer::ParseSWIM(bool is_high_speed) +{ + + U64 starting_sample = mSWIM->GetSampleNumber(); + U64 ending_sample; + Frame frame; + + // Get header + if (mSWIM->GetBitState() == BIT_HIGH) + { + mSWIM->AdvanceToNextEdge(); + } + U64 header = 0; + DataBuilder data_builder; + data_builder.Reset(&header, AnalyzerEnums::MsbFirst, 5); + bool ack = false; + FrameType type; + + for (size_t i = 0; i < 5; i++) + { + data_builder.AddBit(ParseBit(is_high_speed)); + } + + ack = ParseACK(is_high_speed) == BIT_HIGH; + + ending_sample = mSWIM->GetSampleNumber(); + + switch (header & 0xE) + { + case SRST_HEADER: + type = SRSTFrame; + break; + case ROTF_HEADER: + type = ROTFFrame; + break; + case WOTF_HEADER: + type = WOTFFrame; + break; + default: + type = UnknowFrame; + break; + } + if (AnalyzerHelpers::IsOdd(AnalyzerHelpers::GetOnesCount(header))) + { + type = ErrorFrame; + } + frame.mStartingSampleInclusive = starting_sample; + frame.mEndingSampleInclusive = ending_sample; + frame.mData1 = 0; + frame.mData2 = 0; + frame.mType = type; + frame.mFlags = ack; + mResults->AddFrame(frame); + + U64 data_len = 0; + FrameType type_parse = type; + if ((type_parse == ROTFFrame) || (type_parse == WOTFFrame)) + { + // data_len frame + if (mSWIM->GetBitState() == BIT_HIGH) + { + mSWIM->AdvanceToNextEdge(); + } + data_builder.Reset(&data_len, AnalyzerEnums::MsbFirst, 10); + starting_sample = mSWIM->GetSampleNumber(); + for (size_t i = 0; i < 10; i++) + { + data_builder.AddBit(ParseBit(is_high_speed)); + } + ack = ParseACK(is_high_speed) == BIT_HIGH; + if (AnalyzerHelpers::IsOdd(AnalyzerHelpers::GetOnesCount(data_len))) + { + type = ErrorFrame; + } + else + { + type = DataLenFrame; + } + ending_sample = mSWIM->GetSampleNumber(); + frame.mStartingSampleInclusive = starting_sample; + frame.mEndingSampleInclusive = ending_sample; + frame.mData1 = data_len >> 1; + frame.mData2 = 0; + frame.mType = type; + frame.mFlags = ack; + mResults->AddFrame(frame); + data_len >>= 1; + + //address frame + U64 address = 0; + U64 address_tmp = 0; + //address E + if (mSWIM->GetBitState() == BIT_HIGH) + { + mSWIM->AdvanceToNextEdge(); + } + starting_sample = mSWIM->GetSampleNumber(); + data_builder.Reset(&address_tmp, AnalyzerEnums::MsbFirst, 10); + for (size_t i = 0; i < 10; i++) + { + data_builder.AddBit(ParseBit(is_high_speed)); + } + ack = ParseACK(is_high_speed) == BIT_HIGH; + if (AnalyzerHelpers::IsOdd(AnalyzerHelpers::GetOnesCount(address_tmp))) + { + type = ErrorFrame; + } + else + { + type = AddressFrame; + } + address = ((address_tmp & 0x1FE) >> 1) << 16; + + //address H + if (mSWIM->GetBitState() == BIT_HIGH) + { + mSWIM->AdvanceToNextEdge(); + } + address_tmp = 0; + data_builder.Reset(&address_tmp, AnalyzerEnums::MsbFirst, 10); + for (size_t i = 0; i < 10; i++) + { + data_builder.AddBit(ParseBit(is_high_speed)); + } + ack &= ParseACK(is_high_speed) == BIT_HIGH; + if (AnalyzerHelpers::IsOdd(AnalyzerHelpers::GetOnesCount(address_tmp))) + { + type = ErrorFrame; + } + else + { + type = AddressFrame; + } + address |= ((address_tmp & 0x1FE) >> 1) << 8; + + //address L + if (mSWIM->GetBitState() == BIT_HIGH) + { + mSWIM->AdvanceToNextEdge(); + } + address_tmp = 0; + data_builder.Reset(&address_tmp, AnalyzerEnums::MsbFirst, 10); + for (size_t i = 0; i < 10; i++) + { + data_builder.AddBit(ParseBit(is_high_speed)); + } + ack &= ParseACK(is_high_speed) == BIT_HIGH; + if (AnalyzerHelpers::IsOdd(AnalyzerHelpers::GetOnesCount(address_tmp))) + { + type = ErrorFrame; + } + else + { + type = AddressFrame; + } + address |= (address_tmp & 0x1FE) >> 1; + + ending_sample = mSWIM->GetSampleNumber(); + frame.mStartingSampleInclusive = starting_sample; + frame.mEndingSampleInclusive = ending_sample; + frame.mData1 = address; + frame.mData2 = 0; + frame.mType = type; + frame.mFlags = ack; + mResults->AddFrame(frame); + } + + if (type_parse == ROTFFrame) + { + //Read Data + + for (size_t j = 0; j < data_len; j++) + { + if (mSWIM->GetBitState() == BIT_HIGH) + { + mSWIM->AdvanceToNextEdge(); + } + U64 data; + data_builder.Reset(&data, AnalyzerEnums::MsbFirst, 10); + starting_sample = mSWIM->GetSampleNumber(); + for (size_t i = 0; i < 10; i++) + { + data_builder.AddBit(ParseBit(is_high_speed)); + } + ack = ParseACK(is_high_speed) == BIT_HIGH; + if (AnalyzerHelpers::IsEven(AnalyzerHelpers::GetOnesCount(data))) + { + type = ErrorFrame; + } + else + { + type = DataReadFrame; + } + ending_sample = mSWIM->GetSampleNumber(); + frame.mStartingSampleInclusive = starting_sample; + frame.mEndingSampleInclusive = ending_sample; + frame.mData1 = (data >> 1) & 0xFF; + frame.mData2 = 0; + frame.mType = type; + frame.mFlags = ack; + mResults->AddFrame(frame); + } + + } + else if (type_parse == WOTFFrame) + { + //Write Data + + for (size_t j = 0; j < data_len; j++) + { + if (mSWIM->GetBitState() == BIT_HIGH) + { + mSWIM->AdvanceToNextEdge(); + } + U64 data; + data_builder.Reset(&data, AnalyzerEnums::MsbFirst, 10); + starting_sample = mSWIM->GetSampleNumber(); + for (size_t i = 0; i < 10; i++) + { + data_builder.AddBit(ParseBit(is_high_speed)); + } + ack = ParseACK(is_high_speed) == BIT_HIGH; + if (AnalyzerHelpers::IsOdd(AnalyzerHelpers::GetOnesCount(data))) + { + type = ErrorFrame; + } + else + { + type = DataWriteFrame; + } + ending_sample = mSWIM->GetSampleNumber(); + frame.mStartingSampleInclusive = starting_sample; + frame.mEndingSampleInclusive = ending_sample; + frame.mData1 = (data >> 1) & 0xFF; + frame.mData2 = 0; + frame.mType = type; + frame.mFlags = ack; + mResults->AddFrame(frame); + } + } +} + +BitState SWIMAnalyzer::ParseBit(bool is_high_speed) +{ + U32 high_bit_num = 0; + U32 low_bit_num = 0; + BitState bit; + U64 starting_sample = mSWIM->GetSampleNumber(); + + if (is_high_speed) + { + for (size_t j = 0; j < mHighSpeedSampleOffsets.size(); j++) + { + mSWIM->Advance(mHighSpeedSampleOffsets[j]); + if (mSWIM->GetBitState() == BIT_LOW) + { + low_bit_num++; + } + else + { + high_bit_num++; + } + } + + U64 ending_sample = mSWIM->GetSampleNumber(); + + if (low_bit_num <= 4) + { + bit = BIT_HIGH; + mResults->AddMarker((starting_sample + ending_sample) / 2, AnalyzerResults::One, mSettings->mSWIMChannel); + } + else + { + bit = BIT_LOW; + mResults->AddMarker((starting_sample + ending_sample) / 2, AnalyzerResults::Zero, mSettings->mSWIMChannel); + } + } + else + { + for (size_t j = 0; j < mLowSpeedSampleOffsets.size(); j++) + { + mSWIM->Advance(mLowSpeedSampleOffsets[j]); + if (mSWIM->GetBitState() == BIT_LOW) + { + low_bit_num++; + } + else + { + high_bit_num++; + } + } + + U64 ending_sample = mSWIM->GetSampleNumber(); + + if (low_bit_num <= 8) + { + bit = BIT_HIGH; + mResults->AddMarker((starting_sample + ending_sample) / 2, AnalyzerResults::One, mSettings->mSWIMChannel); + } + else + { + bit = BIT_LOW; + mResults->AddMarker((starting_sample + ending_sample) / 2, AnalyzerResults::Zero, mSettings->mSWIMChannel); + } + } + + mSWIM->AdvanceToNextEdge(); + return bit; +} + +BitState SWIMAnalyzer::ParseACK(bool is_high_speed) +{ + U32 high_bit_num = 0; + U32 low_bit_num = 0; + BitState bit; + + if (mSWIM->GetBitState() == BIT_HIGH) + { + mSWIM->AdvanceToNextEdge(); + } + U64 starting_sample = mSWIM->GetSampleNumber(); + + if (is_high_speed) + { + for (size_t j = 0; j < mHighSpeedSampleOffsets.size(); j++) + { + mSWIM->Advance(mHighSpeedSampleOffsets[j]); + if (mSWIM->GetBitState() == BIT_LOW) + { + low_bit_num++; + } + else + { + high_bit_num++; + } + } + if (low_bit_num > 0) + { + // ACK detected + U64 ending_sample = mSWIM->GetSampleNumber(); + + if (low_bit_num <= 4) + { + bit = BIT_HIGH; + mResults->AddMarker((starting_sample + ending_sample) / 2, AnalyzerResults::Square, mSettings->mSWIMChannel); + } + else + { + bit = BIT_LOW; + mResults->AddMarker((starting_sample + ending_sample) / 2, AnalyzerResults::ErrorSquare, mSettings->mSWIMChannel); + } + } + else + { + // No ACK detected + mSWIM->AdvanceToAbsPosition(starting_sample); + bit = BIT_LOW; + } + } + else + { + for (size_t j = 0; j < mLowSpeedSampleOffsets.size(); j++) + { + mSWIM->Advance(mLowSpeedSampleOffsets[j]); + if (mSWIM->GetBitState() == BIT_LOW) + { + low_bit_num++; + } + else + { + high_bit_num++; + } + } + + if (low_bit_num > 0) + { + // ACK detected + U64 ending_sample = mSWIM->GetSampleNumber(); + + if (low_bit_num <= 8) + { + bit = BIT_HIGH; + mResults->AddMarker((starting_sample + ending_sample) / 2, AnalyzerResults::Square, mSettings->mSWIMChannel); + } + else + { + bit = BIT_LOW; + mResults->AddMarker((starting_sample + ending_sample) / 2, AnalyzerResults::ErrorSquare, mSettings->mSWIMChannel); + } + } + else + { + // No ACK detected + mSWIM->AdvanceToAbsPosition(starting_sample); + bit = BIT_LOW; + } + } + return bit; +} + +void SWIMAnalyzer::ParseEntry() +{ + U64 starting_sample = mSWIM->GetSampleNumber(); + U64 ending_sample = 0; + Frame frame; + + for (size_t i = 0; i < 17; i++) + { + // Skip 17 edges for 8 pulses + mSWIM->AdvanceToNextEdge(); + } + ending_sample = mSWIM->GetSampleNumber(); + + frame.mStartingSampleInclusive = starting_sample; + frame.mEndingSampleInclusive = ending_sample; + frame.mData1 = 0; + frame.mData2 = 0; + frame.mType = EntryPulses; + mResults->AddFrame(frame); + + // HSI calibration pulse + mSWIM->AdvanceToNextEdge(); + starting_sample = mSWIM->GetSampleNumber(); + mSWIM->AdvanceToNextEdge(); + ending_sample = mSWIM->GetSampleNumber(); + + frame.mStartingSampleInclusive = starting_sample; + frame.mEndingSampleInclusive = ending_sample; + frame.mData1 = GetSampleRate() / (ending_sample - starting_sample) * 128 * 2; + frame.mData2 = 0; + frame.mType = EntryHSICalibrate; + mResults->AddFrame(frame); + + // WOTF Header + mSWIM->AdvanceToNextEdge(); + ParseSWIM(false); +} + +U32 SWIMAnalyzer::GenerateSimulationData(U64 minimum_sample_index, U32 device_sample_rate, SimulationChannelDescriptor** simulation_channels) +{ + if (mSimulationInitilized == false) { + mSimulationDataGenerator.Initialize(GetSimulationSampleRate(), mSettings.get()); + mSimulationInitilized = true; + } + + return mSimulationDataGenerator.GenerateSimulationData(minimum_sample_index, device_sample_rate, simulation_channels); +} + + +U32 SWIMAnalyzer::GetMinimumSampleRateHz() +{ + return mSettings->mHSIClockFreq; //we don't have any idea, depends on the SPI rate, etc.; return the lowest rate. +} + +const char* SWIMAnalyzer::GetAnalyzerName() const +{ + return "SWIM"; +} + +const char* GetAnalyzerName() +{ + return "SWIM"; +} + +Analyzer* CreateAnalyzer() +{ + return new SWIMAnalyzer(); +} + +void DestroyAnalyzer(Analyzer* analyzer) +{ + delete analyzer; +} diff --git a/SWIMAnalyzer/SWIMAnalyzer.h b/SWIMAnalyzer/SWIMAnalyzer.h new file mode 100644 index 0000000..fa10789 --- /dev/null +++ b/SWIMAnalyzer/SWIMAnalyzer.h @@ -0,0 +1,74 @@ +#pragma once +#ifndef SWIM_ANALYZER_H +#define SWIM_ANALYZER_H + +#include +#include "SWIMAnalyzerResults.h" +#include "SWIMSimulationDataGenerator.h" + +class SWIMAnalyzerSettings; +enum FrameType +{ + EntryFrame, + EntryPulses, + EntryHSICalibrate, + SRSTFrame, + ROTFFrame, + WOTFFrame, + DataLenFrame, + AddressFrame, + DataReadFrame, + DataWriteFrame, + ErrorFrame, + UnknowFrame +}; + +#define SRST_HEADER 0x0 +#define ROTF_HEADER 0x2 +#define WOTF_HEADER 0x4 + +class ANALYZER_EXPORT SWIMAnalyzer : public Analyzer +{ +public: + SWIMAnalyzer(); + virtual ~SWIMAnalyzer(); + virtual void SetupResults(); + virtual void WorkerThread(); + + virtual U32 GenerateSimulationData(U64 newest_sample_requested, U32 sample_rate, SimulationChannelDescriptor** simulation_channels); + virtual U32 GetMinimumSampleRateHz(); + + virtual const char* GetAnalyzerName() const; + virtual bool NeedsRerun(); + +protected: //functions + void SetupChannel(); + void SetupSample(); + void ParseSWIM(bool is_high_speed); + BitState ParseBit(bool is_high_speed); + BitState ParseACK(bool is_high_speed); + void ParseEntry(); + +#pragma warning( push ) +#pragma warning( disable : 4251 ) //warning C4251: 'SerialAnalyzer::<...>' : class <...> needs to have dll-interface to be used by clients of class +protected: //vars + std::auto_ptr< SWIMAnalyzerSettings > mSettings; + std::auto_ptr< SWIMAnalyzerResults > mResults; + bool mSimulationInitilized; + SWIMSimulationDataGenerator mSimulationDataGenerator; + + AnalyzerChannelData* mSWIM; + AnalyzerChannelData* mRST; + + U64 mCurrentSample; + std::vector mHighSpeedSampleOffsets; + std::vector mLowSpeedSampleOffsets; + +#pragma warning( pop ) +}; + +extern "C" ANALYZER_EXPORT const char* __cdecl GetAnalyzerName(); +extern "C" ANALYZER_EXPORT Analyzer * __cdecl CreateAnalyzer(); +extern "C" ANALYZER_EXPORT void __cdecl DestroyAnalyzer(Analyzer * analyzer); + +#endif //SWIM_ANALYZER_H diff --git a/SWIMAnalyzer/SWIMAnalyzer.vcxproj b/SWIMAnalyzer/SWIMAnalyzer.vcxproj new file mode 100644 index 0000000..eab371b --- /dev/null +++ b/SWIMAnalyzer/SWIMAnalyzer.vcxproj @@ -0,0 +1,171 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + 16.0 + Win32Proj + {d895576d-0780-43ec-91ab-e646bd36c7ae} + SWIMAnalyzer + 10.0 + + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + DynamicLibrary + true + v143 + MultiByte + + + DynamicLibrary + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)AnalyzerSDK\inc;$(IncludePath) + $(SolutionDir)AnalyzerSDK\lib\Win64;$(LibraryPath) + $(ExternalIncludePath) + $(SolutionDir)AnalyzerSDK\lib\Win64;$(ReferencePath) + + + $(SolutionDir)AnalyzerSDK\inc;$(IncludePath) + $(SolutionDir)AnalyzerSDK\lib\Win64;$(ReferencePath) + $(SolutionDir)AnalyzerSDK\lib\Win64;$(LibraryPath) + + + + Level3 + true + WIN32;_DEBUG;SWIMANALYZER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + false + + + + + Level3 + true + true + true + WIN32;NDEBUG;SWIMANALYZER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + true + true + false + + + + + Level3 + false + WIN32;_DEBUG;SWIMANALYZER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + NotUsing + pch.h + %(AdditionalIncludeDirectories) + + + Windows + true + false + Analyzer.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories) + + + + + Level3 + true + true + true + WIN32;NDEBUG;SWIMANALYZER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + NotUsing + pch.h + + + Windows + true + true + true + false + Analyzer.lib;%(AdditionalDependencies) + + + + + + \ No newline at end of file diff --git a/SWIMAnalyzer/SWIMAnalyzer.vcxproj.filters b/SWIMAnalyzer/SWIMAnalyzer.vcxproj.filters new file mode 100644 index 0000000..baf4512 --- /dev/null +++ b/SWIMAnalyzer/SWIMAnalyzer.vcxproj.filters @@ -0,0 +1,45 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + \ No newline at end of file diff --git a/SWIMAnalyzer/SWIMAnalyzer.vcxproj.user b/SWIMAnalyzer/SWIMAnalyzer.vcxproj.user new file mode 100644 index 0000000..d18fb69 --- /dev/null +++ b/SWIMAnalyzer/SWIMAnalyzer.vcxproj.user @@ -0,0 +1,11 @@ + + + + $(ProgramFiles)\KingstVIS\KingstVIS.exe + WindowsLocalDebugger + + + $(ProgramFiles)\KingstVIS\KingstVIS.exe + WindowsLocalDebugger + + \ No newline at end of file diff --git a/SWIMAnalyzer/SWIMAnalyzerResults.cpp b/SWIMAnalyzer/SWIMAnalyzerResults.cpp new file mode 100644 index 0000000..b74edee --- /dev/null +++ b/SWIMAnalyzer/SWIMAnalyzerResults.cpp @@ -0,0 +1,416 @@ +#include "SWIMAnalyzerResults.h" +#include +#include "SWIMAnalyzer.h" +#include "SWIMAnalyzerSettings.h" +#include +#include + +//#pragma warning(disable: 4996) //warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. + +SWIMAnalyzerResults::SWIMAnalyzerResults(SWIMAnalyzer* analyzer, SWIMAnalyzerSettings* settings) + : AnalyzerResults(), + mSettings(settings), + mAnalyzer(analyzer) +{ +} + +SWIMAnalyzerResults::~SWIMAnalyzerResults() +{ +} + +void SWIMAnalyzerResults::GenerateBubbleText(U64 frame_index, Channel& channel, DisplayBase display_base) //unrefereced vars commented out to remove warnings. +{ + ClearResultStrings(); + Frame frame = GetFrame(frame_index); + + switch (frame.mType) + { + case EntryFrame: + AddResultString("Entry Frame In Reset State"); + break; + case EntryPulses: + AddResultString("Entry Pulses"); + break; + case EntryHSICalibrate: + { + std::stringstream ss; + ss << "HSI Freq: " << frame.mData1 / 1e6 << "MHz"; + AddResultString(ss.str().c_str()); + } + break; + case SRSTFrame: + if (frame.mFlags) + { + AddResultString("SRST [A]"); + } + else + { + AddResultString("SRST [N]"); + } + break; + case ROTFFrame: + if (frame.mFlags) + { + AddResultString("ROTF [A]"); + } + else + { + AddResultString("ROTF [N]"); + } + break; + case WOTFFrame: + if (frame.mFlags) + { + AddResultString("WOTF [A]"); + } + else + { + AddResultString("WOTF [N]"); + } + break; + case DataLenFrame: + if (frame.mFlags) + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "N: " << number_str << " [A]"; + AddResultString(ss.str().c_str()); + } + else + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "N: " << number_str << " [N]"; + AddResultString(ss.str().c_str()); + } + break; + case AddressFrame: + if (frame.mFlags) + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 24, number_str, 128); + std::stringstream ss; + ss << "Addr: " << number_str << " [A]"; + AddResultString(ss.str().c_str()); + } + else + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 24, number_str, 128); + std::stringstream ss; + ss << "Addr: " << number_str << " [N]"; + AddResultString(ss.str().c_str()); + } + break; + case DataReadFrame: + if (frame.mFlags) + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "RD: " << number_str << " [A]"; + AddResultString(ss.str().c_str()); + } + else + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "RD: " << number_str << " [N]"; + AddResultString(ss.str().c_str()); + } + break; + case DataWriteFrame: + if (frame.mFlags) + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "WD: " << number_str << " [A]"; + AddResultString(ss.str().c_str()); + } + else + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "WD: " << number_str << " [N]"; + AddResultString(ss.str().c_str()); + } + break; + case ErrorFrame: + if (frame.mFlags) + { + AddResultString("Error Frame [A]"); + } + else + { + AddResultString("Error Frame [N]"); + } + break; + case UnknowFrame: + if (frame.mFlags) + { + AddResultString("Unknow Frame [A]"); + } + else + { + AddResultString("Unknow Frame [N]"); + } + break; + default: + break; + } +} + +void SWIMAnalyzerResults::GenerateExportFile(const char* file, DisplayBase display_base, U32 /*export_type_user_id*/) +{ + //export_type_user_id is only important if we have more than one export type. + + std::stringstream ss; + void* f = AnalyzerHelpers::StartFile(file); + + U64 trigger_sample = mAnalyzer->GetTriggerSample(); + U32 sample_rate = mAnalyzer->GetSampleRate(); + + ss << "Time [s],Frame ID,Type,Data,ACK" << std::endl; + + bool reset_used = true; + + if (mSettings->mResetChannel == UNDEFINED_CHANNEL) + { + reset_used = false; + } + + U64 num_frames = GetNumFrames(); + for (U32 i = 0; i < num_frames; i++) { + Frame frame = GetFrame(i); + + char time_str[128]; + AnalyzerHelpers::GetTimeString(frame.mStartingSampleInclusive, trigger_sample, sample_rate, time_str, 128); + + ss << time_str << "," << i << ","; + + char data_str[128] = ""; + + switch (frame.mType) + { + case EntryFrame: + ss << "Entry," << ",," << std::endl; + break; + case EntryPulses: + ss << "Entry," << ",," << std::endl; + break; + case EntryHSICalibrate: + ss << "Freq," << frame.mData1 / 1e6 << ",," << std::endl; + break; + case SRSTFrame: + ss << "SRST," << "," << ((frame.mFlags == 0) ? "N" : "A") << std::endl; + break; + case ROTFFrame: + ss << "ROTF," << "," << ((frame.mFlags == 0) ? "N" : "A") << std::endl; + break; + case WOTFFrame: + ss << "WOTF," << "," << ((frame.mFlags == 0) ? "N" : "A") << std::endl; + break; + case DataLenFrame: + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, data_str, 128); + ss << "N," << data_str <<"," << ((frame.mFlags == 0) ? "N" : "A") << std::endl; + break; + case AddressFrame: + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 24, data_str, 128); + ss << "ADDR," << data_str << "," << ((frame.mFlags == 0) ? "N" : "A") << std::endl; + break; + case DataReadFrame: + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, data_str, 128); + ss << "RD," << data_str << "," << ((frame.mFlags == 0) ? "N" : "A") << std::endl; + break; + case DataWriteFrame: + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, data_str, 128); + ss << "WD," << data_str << "," << ((frame.mFlags == 0) ? "N" : "A") << std::endl; + break; + case ErrorFrame: + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, data_str, 128); + ss << "Error," << data_str << "," << ((frame.mFlags == 0) ? "N" : "A") << std::endl; + break; + case UnknowFrame: + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, data_str, 128); + ss << "Unknown," << data_str << "," << ((frame.mFlags == 0) ? "N" : "A") << std::endl; + break; + default: + break; + } + + AnalyzerHelpers::AppendToFile((U8*)ss.str().c_str(), ss.str().length(), f); + ss.str(std::string()); + + if (UpdateExportProgressAndCheckForCancel(i, num_frames) == true) { + AnalyzerHelpers::EndFile(f); + return; + } + } + + UpdateExportProgressAndCheckForCancel(num_frames, num_frames); + AnalyzerHelpers::EndFile(f); +} + +void SWIMAnalyzerResults::GenerateFrameTabularText(U64 frame_index, DisplayBase display_base) +{ + ClearTabularText(); + Frame frame = GetFrame(frame_index); + + switch (frame.mType) + { + case EntryFrame: + AddTabularText("Entry Frame In Reset State"); + break; + case EntryPulses: + AddTabularText("Entry Pulses"); + break; + case EntryHSICalibrate: + { + std::stringstream ss; + ss << "HSI Freq: " << frame.mData1 / 1e6 << "MHz"; + AddTabularText(ss.str().c_str()); + } + break; + case SRSTFrame: + if (frame.mFlags) + { + AddTabularText("SRST [A]"); + } + else + { + AddTabularText("SRST [N]"); + } + break; + case ROTFFrame: + if (frame.mFlags) + { + AddTabularText("ROTF [A]"); + } + else + { + AddTabularText("ROTF [N]"); + } + break; + case WOTFFrame: + if (frame.mFlags) + { + AddTabularText("WOTF [A]"); + } + else + { + AddTabularText("WOTF [N]"); + } + break; + case DataLenFrame: + if (frame.mFlags) + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "N: " << number_str << " [A]"; + AddTabularText(ss.str().c_str()); + } + else + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "N: " << number_str << " [N]"; + AddTabularText(ss.str().c_str()); + } + break; + case AddressFrame: + if (frame.mFlags) + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 24, number_str, 128); + std::stringstream ss; + ss << "Addr: " << number_str << " [A]"; + AddTabularText(ss.str().c_str()); + } + else + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 24, number_str, 128); + std::stringstream ss; + ss << "Addr: " << number_str << " [N]"; + AddTabularText(ss.str().c_str()); + } + break; + case DataReadFrame: + if (frame.mFlags) + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "RD: " << number_str << " [A]"; + AddTabularText(ss.str().c_str()); + } + else + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "RD: " << number_str << " [N]"; + AddTabularText(ss.str().c_str()); + } + break; + case DataWriteFrame: + if (frame.mFlags) + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "WD: " << number_str << " [A]"; + AddTabularText(ss.str().c_str()); + } + else + { + char number_str[128]; + AnalyzerHelpers::GetNumberString(frame.mData1, display_base, 8, number_str, 128); + std::stringstream ss; + ss << "WD: " << number_str << " [N]"; + AddTabularText(ss.str().c_str()); + } + break; + case ErrorFrame: + if (frame.mFlags) + { + AddTabularText("Error Frame [A]"); + } + else + { + AddTabularText("Error Frame [N]"); + } + break; + case UnknowFrame: + if (frame.mFlags) + { + AddTabularText("Unknow Frame [A]"); + } + else + { + AddTabularText("Unknow Frame [N]"); + } + break; + default: + break; + } +} + +void SWIMAnalyzerResults::GeneratePacketTabularText(U64 /*packet_id*/, DisplayBase /*display_base*/) //unrefereced vars commented out to remove warnings. +{ + ClearResultStrings(); + AddResultString("not supported"); +} + +void SWIMAnalyzerResults::GenerateTransactionTabularText(U64 /*transaction_id*/, DisplayBase /*display_base*/) //unrefereced vars commented out to remove warnings. +{ + ClearResultStrings(); + AddResultString("not supported"); +} diff --git a/SWIMAnalyzer/SWIMAnalyzerResults.h b/SWIMAnalyzer/SWIMAnalyzerResults.h new file mode 100644 index 0000000..d8d7219 --- /dev/null +++ b/SWIMAnalyzer/SWIMAnalyzerResults.h @@ -0,0 +1,30 @@ +#pragma once +#ifndef SWIM_ANALYZER_RESULTS +#define SWIM_ANALYZER_RESULTS + +#include + +class SWIMAnalyzer; +class SWIMAnalyzerSettings; + +class SWIMAnalyzerResults : public AnalyzerResults +{ +public: + SWIMAnalyzerResults(SWIMAnalyzer* analyzer, SWIMAnalyzerSettings* settings); + virtual ~SWIMAnalyzerResults(); + + virtual void GenerateBubbleText(U64 frame_index, Channel& channel, DisplayBase display_base); + virtual void GenerateExportFile(const char* file, DisplayBase display_base, U32 export_type_user_id); + + virtual void GenerateFrameTabularText(U64 frame_index, DisplayBase display_base); + virtual void GeneratePacketTabularText(U64 packet_id, DisplayBase display_base); + virtual void GenerateTransactionTabularText(U64 transaction_id, DisplayBase display_base); + +protected: //functions + +protected: //vars + SWIMAnalyzerSettings* mSettings; + SWIMAnalyzer* mAnalyzer; +}; + +#endif //SWIM_ANALYZER_RESULTS \ No newline at end of file diff --git a/SWIMAnalyzer/SWIMAnalyzerSettings.cpp b/SWIMAnalyzer/SWIMAnalyzerSettings.cpp new file mode 100644 index 0000000..e5d34dd --- /dev/null +++ b/SWIMAnalyzer/SWIMAnalyzerSettings.cpp @@ -0,0 +1,128 @@ +#include "SWIMAnalyzerSettings.h" + +#include +#include +#include + +SWIMAnalyzerSettings::SWIMAnalyzerSettings() + : mSWIMChannel(UNDEFINED_CHANNEL), + mResetChannel(UNDEFINED_CHANNEL), + mHSIClockFreq(16000000), + mLSIClockFreq(128000) +{ + mSWIMChannelInterface.reset(new AnalyzerSettingInterfaceChannel()); + mSWIMChannelInterface->SetTitleAndTooltip("SWIM", "Single Wire Interface Module"); + mSWIMChannelInterface->SetChannel(mSWIMChannel); + mSWIMChannelInterface->SetSelectionOfNoneIsAllowed(true); + + mResetChannelInterface.reset(new AnalyzerSettingInterfaceChannel()); + mResetChannelInterface->SetTitleAndTooltip("RST", "CPU Reset Line"); + mResetChannelInterface->SetChannel(mResetChannel); + mResetChannelInterface->SetSelectionOfNoneIsAllowed(true); + + mHSIClockFreqInterface.reset(new AnalyzerSettingInterfaceInteger()); + mHSIClockFreqInterface->SetTitleAndTooltip("HSI Clock Freq.", "Specify the HSI clock frequency."); + mHSIClockFreqInterface->SetMax(25000000); + mHSIClockFreqInterface->SetMin(10000000); + mHSIClockFreqInterface->SetInteger(mHSIClockFreq); + + mLSIClockFreqInterface.reset(new AnalyzerSettingInterfaceInteger()); + mLSIClockFreqInterface->SetTitleAndTooltip("LSI Clock Freq.", "Specify the LSI clock frequency."); + mLSIClockFreqInterface->SetMax(200000); + mLSIClockFreqInterface->SetMin(30000); + mLSIClockFreqInterface->SetInteger(mLSIClockFreq); + + + AddInterface(mSWIMChannelInterface.get()); + AddInterface(mResetChannelInterface.get()); + AddInterface(mHSIClockFreqInterface.get()); + AddInterface(mLSIClockFreqInterface.get()); + + AddExportOption(0, "Export as text/csv file"); + AddExportExtension(0, "Text file", "txt"); + AddExportExtension(0, "CSV file", "csv"); + + ClearChannels(); + AddChannel(mSWIMChannel, "SWIM", false); + AddChannel(mResetChannel, "RST", false); +} + + SWIMAnalyzerSettings::~SWIMAnalyzerSettings() +{ +} + +bool SWIMAnalyzerSettings::SetSettingsFromInterfaces() +{ + Channel swim = mSWIMChannelInterface->GetChannel(); + Channel rst = mResetChannelInterface->GetChannel(); + + std::vector channels; + channels.push_back(swim); + channels.push_back(rst); + + if (AnalyzerHelpers::DoChannelsOverlap(&channels[0], channels.size()) == true) { + SetErrorText("Please select different channels for each input."); + return false; + } + + if (swim == UNDEFINED_CHANNEL) { + SetErrorText("Please select at least one input for SWIM."); + return false; + } + + mSWIMChannel = mSWIMChannelInterface->GetChannel(); + mResetChannel = mResetChannelInterface->GetChannel(); + + mHSIClockFreq = mHSIClockFreqInterface->GetInteger(); + mLSIClockFreq = mLSIClockFreqInterface->GetInteger(); + + ClearChannels(); + AddChannel(mSWIMChannel, "SWIM", mSWIMChannel != UNDEFINED_CHANNEL); + AddChannel(mResetChannel, "RST", mResetChannel != UNDEFINED_CHANNEL); + + return true; +} + +void SWIMAnalyzerSettings::LoadSettings(const char* settings) +{ + SimpleArchive text_archive; + text_archive.SetString(settings); + + const char* name_string; //the first thing in the archive is the name of the protocol analyzer that the data belongs to. + text_archive >> &name_string; + if (strcmp(name_string, "KingstSpiAnalyzer") != 0) { + AnalyzerHelpers::Assert("Kingst: Provided with a settings string that doesn't belong to us;"); + } + + text_archive >> mSWIMChannel; + text_archive >> mResetChannel; + text_archive >> mHSIClockFreq; + text_archive >> mLSIClockFreq; + + ClearChannels(); + AddChannel(mSWIMChannel, "SWIM", mSWIMChannel != UNDEFINED_CHANNEL); + AddChannel(mResetChannel, "RST", mResetChannel != UNDEFINED_CHANNEL); + + UpdateInterfacesFromSettings(); +} + +const char* SWIMAnalyzerSettings::SaveSettings() +{ + SimpleArchive text_archive; + + text_archive << "KingstSpiAnalyzer"; + text_archive << mSWIMChannel; + text_archive << mResetChannel; + text_archive << mHSIClockFreq; + text_archive << mLSIClockFreq; + + return SetReturnString(text_archive.GetString()); +} + +void SWIMAnalyzerSettings::UpdateInterfacesFromSettings() +{ + mSWIMChannelInterface->SetChannel(mSWIMChannel); + mResetChannelInterface->SetChannel(mResetChannel); + mHSIClockFreqInterface->SetInteger(mHSIClockFreq); + mLSIClockFreqInterface->SetInteger(mLSIClockFreq); +} \ No newline at end of file diff --git a/SWIMAnalyzer/SWIMAnalyzerSettings.h b/SWIMAnalyzer/SWIMAnalyzerSettings.h new file mode 100644 index 0000000..6c14ef3 --- /dev/null +++ b/SWIMAnalyzer/SWIMAnalyzerSettings.h @@ -0,0 +1,33 @@ +#pragma once +#ifndef SWIM_ANALYZER_SETTINGS +#define SWIM_ANALYZER_SETTINGS + +#include +#include + +class SWIMAnalyzerSettings : public AnalyzerSettings +{ +public: + SWIMAnalyzerSettings(); + virtual ~SWIMAnalyzerSettings(); + + virtual bool SetSettingsFromInterfaces(); + virtual void LoadSettings(const char* settings); + virtual const char* SaveSettings(); + + void UpdateInterfacesFromSettings(); + + Channel mSWIMChannel; + Channel mResetChannel; + + U32 mHSIClockFreq; // Unit Hz + U32 mLSIClockFreq; // Unit Hz + +protected: + std::auto_ptr< AnalyzerSettingInterfaceChannel > mSWIMChannelInterface; + std::auto_ptr< AnalyzerSettingInterfaceChannel > mResetChannelInterface; + std::auto_ptr< AnalyzerSettingInterfaceInteger > mHSIClockFreqInterface; + std::auto_ptr< AnalyzerSettingInterfaceInteger > mLSIClockFreqInterface; +}; + +#endif //SWIM_ANALYZER_SETTINGS \ No newline at end of file diff --git a/SWIMAnalyzer/SWIMSimulationDataGenerator.cpp b/SWIMAnalyzer/SWIMSimulationDataGenerator.cpp new file mode 100644 index 0000000..a7d3585 --- /dev/null +++ b/SWIMAnalyzer/SWIMSimulationDataGenerator.cpp @@ -0,0 +1,286 @@ +#include "SWIMSimulationDataGenerator.h" +#include "SWIMAnalyzerSettings.h" + +SWIMSimulationDataGenerator::SWIMSimulationDataGenerator() +{ +} + +SWIMSimulationDataGenerator::~SWIMSimulationDataGenerator() +{ +} + +void SWIMSimulationDataGenerator::Initialize(U32 simulation_sample_rate, SWIMAnalyzerSettings* settings) +{ + mSimulationSampleRateHz = simulation_sample_rate; + mSettings = settings; + + mHSIClockGenerator.Init(mSettings->mHSIClockFreq, simulation_sample_rate); + mLSIClockGenerator.Init(mSettings->mLSIClockFreq, simulation_sample_rate); + + if (settings->mSWIMChannel != UNDEFINED_CHANNEL) { + mSWIM = mSWIMSimulationChannels.Add(settings->mSWIMChannel, mSimulationSampleRateHz, BIT_HIGH); + } + else { + mSWIM = NULL; + } + + if (settings->mResetChannel != UNDEFINED_CHANNEL) { + mRST = mSWIMSimulationChannels.Add(settings->mResetChannel, mSimulationSampleRateHz, BIT_HIGH); + } + else { + mRST = NULL; + } + + mSWIMSimulationChannels.AdvanceAll(mLSIClockGenerator.AdvanceByTimeS(10e-6)); //insert 10us of idle + + mValue = 0; +} + +U32 SWIMSimulationDataGenerator::GenerateSimulationData(U64 largest_sample_requested, U32 sample_rate, SimulationChannelDescriptor** simulation_channels) +{ + U64 adjusted_largest_sample_requested = AnalyzerHelpers::AdjustSimulationTargetSample(largest_sample_requested, sample_rate, mSimulationSampleRateHz); + + while (mSWIM->GetCurrentSampleNumber() < adjusted_largest_sample_requested) + { + GenerateSWIMTransaction(); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByTimeS(1e-3)); //insert 1ms of idle + } + + *simulation_channels = mSWIMSimulationChannels.GetArray(); + return mSWIMSimulationChannels.GetCount(); +} + +void SWIMSimulationDataGenerator::GenerateSWIMTransaction() +{ + U8 data[128] = { 0 }; + + for (size_t i = 0; i < sizeof(data); i++) + { + data[i] = i; + } + + GenerateEntrySequence(); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(1024 * 2)); + GenerateSRSTSequence(false); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(1024 * 2)); + GenerateWOTFSequence(128, 0x00, data, false); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(1024 * 2)); + GenerateROTFSequence(128, 0x00, data, false); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(1024 * 2)); + + GenerateSRSTSequence(true); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(1024 * 2)); + GenerateWOTFSequence(128, 0x00, data, true); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(1024 * 2)); + GenerateROTFSequence(128, 0x00, data, true); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(1024 * 2)); +} + +void SWIMSimulationDataGenerator::GenerateEntrySequence() +{ + if (mRST != NULL) + { + mRST->TransitionIfNeeded(BIT_LOW); + } // Reset signal + + mSWIMSimulationChannels.AdvanceAll(mLSIClockGenerator.AdvanceByHalfPeriod(2.0)); + + if (mSWIM != NULL) + { + mSWIM->TransitionIfNeeded(BIT_LOW); + + mSWIMSimulationChannels.AdvanceAll(mLSIClockGenerator.AdvanceByTimeS(1e-3)); + + for (size_t i = 0; i < 4; i++) + { + mSWIM->Transition(); + mSWIMSimulationChannels.AdvanceAll(mLSIClockGenerator.AdvanceByTimeS(0.5e-3)); + mSWIM->Transition(); + mSWIMSimulationChannels.AdvanceAll(mLSIClockGenerator.AdvanceByTimeS(0.5e-3)); + } // Four pulses at 1 kHz. + + for (size_t i = 0; i < 4; i++) + { + mSWIM->Transition(); + mSWIMSimulationChannels.AdvanceAll(mLSIClockGenerator.AdvanceByTimeS(0.25e-3)); + mSWIM->Transition(); + mSWIMSimulationChannels.AdvanceAll(mLSIClockGenerator.AdvanceByTimeS(0.25e-3)); + } // Four pulses at 2 kHz. + + mSWIM->Transition(); + mSWIMSimulationChannels.AdvanceAll(mLSIClockGenerator.AdvanceByTimeS(0.25e-3)); + // Waiting for HSI to start up. + + mSWIM->Transition(); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(128 * 2)); + // Slave send 128 pulses at HSI frequence. + + mSWIM->Transition(); + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByTimeS(400e-6)); + // Waiting for HSI to calibrate. + } + + // Setting SWIM_CSR register + U8 data[] = { 0xA0 }; + GenerateWOTFSequence(1, 0x7F80, data, false); + + if (mRST != NULL) + { + mRST->TransitionIfNeeded(BIT_HIGH); + } // Reset signal +} + +void SWIMSimulationDataGenerator::GenerateROTFSequence(U8 data_len, U32 address, U8 data[], U8 high_spped) +{ + // ROTF Head: 00011 1 + GenerateBitLow(high_spped); + GenerateBitLow(high_spped); + GenerateBitLow(high_spped); + GenerateBitHigh(high_spped); + GenerateBitHigh(high_spped); + GenerateBitHigh(high_spped); + + // N: + GenerateByteHost(data_len, high_spped); + + // Address + GenerateByteHost(address >> 16, high_spped); + GenerateByteHost(address >> 8, high_spped); + GenerateByteHost(address, high_spped); + + // Data + for (size_t i = 0; i < data_len; i++) + { + GenerateByteSlave(data[i], high_spped); + } +} + +void SWIMSimulationDataGenerator::GenerateWOTFSequence(U8 data_len, U32 address, U8 data[], U8 high_spped) +{ + // WOTF Head: 00101 1 + GenerateBitLow(high_spped); + GenerateBitLow(high_spped); + GenerateBitHigh(high_spped); + GenerateBitLow(high_spped); + GenerateBitHigh(high_spped); + GenerateBitHigh(high_spped); + + // N: + GenerateByteHost(data_len, high_spped); + + // Address + GenerateByteHost(address >> 16, high_spped); + GenerateByteHost(address >> 8, high_spped); + GenerateByteHost(address, high_spped); + + // Data + for (size_t i = 0; i < data_len; i++) + { + GenerateByteHost(data[i], high_spped); + } +} + +void SWIMSimulationDataGenerator::GenerateSRSTSequence(U8 high_spped) +{ + // WOTF Head: 00000 1 + GenerateBitLow(high_spped); + GenerateBitLow(high_spped); + GenerateBitLow(high_spped); + GenerateBitLow(high_spped); + GenerateBitLow(high_spped); + GenerateBitHigh(high_spped); +} + +void SWIMSimulationDataGenerator::GenerateByteHost(U8 data, U8 high_spped) +{ + // Header bit + GenerateBitLow(high_spped); + + // 8-bit data + BitExtractor bit_extractor(data, AnalyzerEnums::ShiftOrder::MsbFirst, 8); + for (size_t i = 0; i < 8; i++) + { + if (bit_extractor.GetNextBit()) + { + GenerateBitHigh(high_spped); + } + else + { + GenerateBitLow(high_spped); + } + } + + // Parity bit + if (AnalyzerHelpers::IsOdd(AnalyzerHelpers::GetOnesCount(data)) == true) + { + GenerateBitHigh(high_spped); + } + else + { + GenerateBitLow(high_spped); + } + + // ACK bit + GenerateBitHigh(high_spped); +} + +void SWIMSimulationDataGenerator::GenerateByteSlave(U8 data, U8 high_spped) +{ + // Header bit + GenerateBitHigh(high_spped); + + // 8-bit data + BitExtractor bit_extractor(data, AnalyzerEnums::ShiftOrder::MsbFirst, 8); + for (size_t i = 0; i < 8; i++) + { + if (bit_extractor.GetNextBit()) + { + GenerateBitHigh(high_spped); + } + else + { + GenerateBitLow(high_spped); + } + } + + // Parity bit + if (AnalyzerHelpers::IsOdd(AnalyzerHelpers::GetOnesCount(data)) == true) + { + GenerateBitHigh(high_spped); + } + else + { + GenerateBitLow(high_spped); + } + + // ACK bit + GenerateBitHigh(high_spped); +} + +void SWIMSimulationDataGenerator::GenerateBitLow(U8 high_spped) +{ + if (mSWIM != NULL) + { + mSWIM->TransitionIfNeeded(BIT_LOW); + + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(high_spped == false ? 20 * 2 : 8 * 2)); + + mSWIM->TransitionIfNeeded(BIT_HIGH); + + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(2 * 2)); + } +} + +void SWIMSimulationDataGenerator::GenerateBitHigh(U8 high_spped) +{ + if (mSWIM != NULL) + { + mSWIM->TransitionIfNeeded(BIT_LOW); + + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(2 * 2)); + + mSWIM->TransitionIfNeeded(BIT_HIGH); + + mSWIMSimulationChannels.AdvanceAll(mHSIClockGenerator.AdvanceByHalfPeriod(high_spped == false ? 20 * 2 : 8 * 2)); + } +} \ No newline at end of file diff --git a/SWIMAnalyzer/SWIMSimulationDataGenerator.h b/SWIMAnalyzer/SWIMSimulationDataGenerator.h new file mode 100644 index 0000000..8c49c8e --- /dev/null +++ b/SWIMAnalyzer/SWIMSimulationDataGenerator.h @@ -0,0 +1,42 @@ +#pragma once +#ifndef SWIM_SIMULATION_DATA_GENERATOR +#define SWIM_SIMULATION_DATA_GENERATOR + +#include + +class SWIMAnalyzerSettings; + +class SWIMSimulationDataGenerator +{ +public: + SWIMSimulationDataGenerator(); + ~SWIMSimulationDataGenerator(); + + void Initialize(U32 simulation_sample_rate, SWIMAnalyzerSettings* settings); + U32 GenerateSimulationData(U64 newest_sample_requested, U32 sample_rate, SimulationChannelDescriptor** simulation_channels); + +protected: + SWIMAnalyzerSettings* mSettings; + U32 mSimulationSampleRateHz; + U64 mValue; + +protected: //SWIM specific + ClockGenerator mHSIClockGenerator; + ClockGenerator mLSIClockGenerator; + + void GenerateSWIMTransaction(); + void GenerateEntrySequence(); + void GenerateROTFSequence(U8 data_len, U32 address, U8 data[], U8 high_spped = false); + void GenerateWOTFSequence(U8 data_len, U32 address, U8 data[], U8 high_spped = false); + void GenerateSRSTSequence(U8 high_spped = false); + void GenerateByteHost(U8 data, U8 high_spped = false); + void GenerateByteSlave(U8 data, U8 high_spped = false); + void GenerateBitLow(U8 high_spped = false); + void GenerateBitHigh(U8 high_spped = false); + + + SimulationChannelDescriptorGroup mSWIMSimulationChannels; + SimulationChannelDescriptor* mSWIM; + SimulationChannelDescriptor* mRST; +}; +#endif //SWIM_SIMULATION_DATA_GENERATOR diff --git a/doc/SWIM-1.png b/doc/SWIM-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f49ec7c5e953625ae9eda78ce253ca7a41a840b5 GIT binary patch literal 16981 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 SV&IbypqDbr&|)dW!2bsXyKE2u literal 0 HcmV?d00001 diff --git a/doc/SWIM-2.png b/doc/SWIM-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9edf14792e246eaab4c765c6df3895782d3eaa GIT binary patch literal 7454 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

e$iko;^6Rh-eoiU^B|X*xLEbb9iH5RCvK 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 literal 0 HcmV?d00001