移植Test命令,验证成功
EJ EX 写工厂信息验证成功
This commit is contained in:
@@ -1158,8 +1158,8 @@
|
|||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>.\source\elec_det\elec_det.c</PathWithFileName>
|
<PathWithFileName>.\source\elec_det\test\EW_TestUsartApp.c</PathWithFileName>
|
||||||
<FilenameWithoutPath>elec_det.c</FilenameWithoutPath>
|
<FilenameWithoutPath>EW_TestUsartApp.c</FilenameWithoutPath>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
@@ -1170,11 +1170,71 @@
|
|||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\source\elec_det\test\EWCheckerTest.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>EWCheckerTest.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>6</GroupNumber>
|
||||||
|
<FileNumber>56</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\source\elec_det\test\Test.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>Test.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>6</GroupNumber>
|
||||||
|
<FileNumber>57</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\source\elec_det\test\XTCheckerTest.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>XTCheckerTest.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>6</GroupNumber>
|
||||||
|
<FileNumber>58</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>.\source\elec_det\elec_cmd.c</PathWithFileName>
|
<PathWithFileName>.\source\elec_det\elec_cmd.c</PathWithFileName>
|
||||||
<FilenameWithoutPath>elec_cmd.c</FilenameWithoutPath>
|
<FilenameWithoutPath>elec_cmd.c</FilenameWithoutPath>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>6</GroupNumber>
|
||||||
|
<FileNumber>59</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\source\elec_det\elec_det.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>elec_det.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>6</GroupNumber>
|
||||||
|
<FileNumber>60</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\source\elec_det\elec_io.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>elec_io.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
@@ -1185,7 +1245,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>7</GroupNumber>
|
||||||
<FileNumber>56</FileNumber>
|
<FileNumber>61</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1197,7 +1257,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>7</GroupNumber>
|
||||||
<FileNumber>57</FileNumber>
|
<FileNumber>62</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1217,7 +1277,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>58</FileNumber>
|
<FileNumber>63</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1229,7 +1289,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>59</FileNumber>
|
<FileNumber>64</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1241,7 +1301,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>60</FileNumber>
|
<FileNumber>65</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1253,7 +1313,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>61</FileNumber>
|
<FileNumber>66</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1265,7 +1325,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>62</FileNumber>
|
<FileNumber>67</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1277,7 +1337,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>63</FileNumber>
|
<FileNumber>68</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1289,7 +1349,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>64</FileNumber>
|
<FileNumber>69</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1301,7 +1361,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>65</FileNumber>
|
<FileNumber>70</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1313,7 +1373,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>66</FileNumber>
|
<FileNumber>71</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1325,7 +1385,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>67</FileNumber>
|
<FileNumber>72</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1337,7 +1397,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>68</FileNumber>
|
<FileNumber>73</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1349,7 +1409,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>69</FileNumber>
|
<FileNumber>74</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1361,7 +1421,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>70</FileNumber>
|
<FileNumber>75</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1373,7 +1433,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>71</FileNumber>
|
<FileNumber>76</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1385,7 +1445,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>72</FileNumber>
|
<FileNumber>77</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1397,7 +1457,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>73</FileNumber>
|
<FileNumber>78</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1409,7 +1469,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>74</FileNumber>
|
<FileNumber>79</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1421,7 +1481,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>75</FileNumber>
|
<FileNumber>80</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1433,7 +1493,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>76</FileNumber>
|
<FileNumber>81</FileNumber>
|
||||||
<FileType>2</FileType>
|
<FileType>2</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1453,7 +1513,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>77</FileNumber>
|
<FileNumber>82</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1465,7 +1525,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>78</FileNumber>
|
<FileNumber>83</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1477,7 +1537,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>79</FileNumber>
|
<FileNumber>84</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1489,7 +1549,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>80</FileNumber>
|
<FileNumber>85</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1501,7 +1561,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>81</FileNumber>
|
<FileNumber>86</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1513,7 +1573,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>82</FileNumber>
|
<FileNumber>87</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1525,7 +1585,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>83</FileNumber>
|
<FileNumber>88</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1537,7 +1597,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>84</FileNumber>
|
<FileNumber>89</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1549,7 +1609,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>85</FileNumber>
|
<FileNumber>90</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1561,7 +1621,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>86</FileNumber>
|
<FileNumber>91</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1573,7 +1633,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>87</FileNumber>
|
<FileNumber>92</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1593,7 +1653,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>88</FileNumber>
|
<FileNumber>93</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1605,7 +1665,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>89</FileNumber>
|
<FileNumber>94</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1617,7 +1677,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>90</FileNumber>
|
<FileNumber>95</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1629,7 +1689,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>91</FileNumber>
|
<FileNumber>96</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1641,7 +1701,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>92</FileNumber>
|
<FileNumber>97</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1661,7 +1721,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>11</GroupNumber>
|
<GroupNumber>11</GroupNumber>
|
||||||
<FileNumber>93</FileNumber>
|
<FileNumber>98</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1681,7 +1741,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>94</FileNumber>
|
<FileNumber>99</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1693,7 +1753,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>95</FileNumber>
|
<FileNumber>100</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1705,7 +1765,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>96</FileNumber>
|
<FileNumber>101</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1717,7 +1777,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>97</FileNumber>
|
<FileNumber>102</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1729,7 +1789,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>98</FileNumber>
|
<FileNumber>103</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1741,7 +1801,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>99</FileNumber>
|
<FileNumber>104</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1761,7 +1821,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>13</GroupNumber>
|
<GroupNumber>13</GroupNumber>
|
||||||
<FileNumber>100</FileNumber>
|
<FileNumber>105</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1781,7 +1841,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>14</GroupNumber>
|
<GroupNumber>14</GroupNumber>
|
||||||
<FileNumber>101</FileNumber>
|
<FileNumber>106</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1793,7 +1853,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>14</GroupNumber>
|
<GroupNumber>14</GroupNumber>
|
||||||
<FileNumber>102</FileNumber>
|
<FileNumber>107</FileNumber>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@@ -724,15 +724,244 @@
|
|||||||
<FilePath>.\source\elec_det\interface\EWChecker.c</FilePath>
|
<FilePath>.\source\elec_det\interface\EWChecker.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>elec_det.c</FileName>
|
<FileName>EW_TestUsartApp.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>.\source\elec_det\elec_det.c</FilePath>
|
<FilePath>.\source\elec_det\test\EW_TestUsartApp.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>0</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>EWCheckerTest.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\test\EWCheckerTest.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>0</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>Test.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\test\Test.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>0</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>XTCheckerTest.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\test\XTCheckerTest.c</FilePath>
|
||||||
|
<FileOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>2</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>0</IncludeInBuild>
|
||||||
|
<AlwaysBuild>2</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>2</PublicsOnly>
|
||||||
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<FileArmAds>
|
||||||
|
<Cads>
|
||||||
|
<interw>2</interw>
|
||||||
|
<Optim>0</Optim>
|
||||||
|
<oTime>2</oTime>
|
||||||
|
<SplitLS>2</SplitLS>
|
||||||
|
<OneElfS>2</OneElfS>
|
||||||
|
<Strict>2</Strict>
|
||||||
|
<EnumInt>2</EnumInt>
|
||||||
|
<PlainCh>2</PlainCh>
|
||||||
|
<Ropi>2</Ropi>
|
||||||
|
<Rwpi>2</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>2</uThumb>
|
||||||
|
<uSurpInc>2</uSurpInc>
|
||||||
|
<uC99>2</uC99>
|
||||||
|
<uGnu>2</uGnu>
|
||||||
|
<useXO>2</useXO>
|
||||||
|
<v6Lang>0</v6Lang>
|
||||||
|
<v6LangP>0</v6LangP>
|
||||||
|
<vShortEn>2</vShortEn>
|
||||||
|
<vShortWch>2</vShortWch>
|
||||||
|
<v6Lto>2</v6Lto>
|
||||||
|
<v6WtE>2</v6WtE>
|
||||||
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
</FileArmAds>
|
||||||
|
</FileOption>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>elec_cmd.c</FileName>
|
<FileName>elec_cmd.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>.\source\elec_det\elec_cmd.c</FilePath>
|
<FilePath>.\source\elec_det\elec_cmd.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>elec_det.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\elec_det.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>elec_io.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\elec_io.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
@@ -1952,15 +2181,40 @@
|
|||||||
<FilePath>.\source\elec_det\interface\EWChecker.c</FilePath>
|
<FilePath>.\source\elec_det\interface\EWChecker.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>elec_det.c</FileName>
|
<FileName>EW_TestUsartApp.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>.\source\elec_det\elec_det.c</FilePath>
|
<FilePath>.\source\elec_det\test\EW_TestUsartApp.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>EWCheckerTest.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\test\EWCheckerTest.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>Test.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\test\Test.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>XTCheckerTest.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\test\XTCheckerTest.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>elec_cmd.c</FileName>
|
<FileName>elec_cmd.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>.\source\elec_det\elec_cmd.c</FilePath>
|
<FilePath>.\source\elec_det\elec_cmd.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>elec_det.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\elec_det.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>elec_io.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\source\elec_det\elec_io.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
@@ -136,8 +136,9 @@ u=protm("com7")
|
|||||||
# u.wait()
|
# u.wait()
|
||||||
u.addr=0
|
u.addr=0
|
||||||
u.host_addr=0
|
u.host_addr=0
|
||||||
u.cmd=0x13
|
u.cmd=0x19
|
||||||
print(u.encode(bytearray()).hex(" "))
|
data=bytearray([0x11,0x22,0x33,0x44])
|
||||||
u.cmd=0x0c
|
crc=crc8(data)
|
||||||
print(u.encode(bytearray()).hex(" "))
|
data=bytes([4,crc])+data
|
||||||
|
print(u.encode(data).hex(" "))
|
||||||
|
|
||||||
|
@@ -204,3 +204,8 @@
|
|||||||
prot_uc 处理命令的时间如果距离接收时间超过100ms时视为过期,不处理过期消息
|
prot_uc 处理命令的时间如果距离接收时间超过100ms时视为过期,不处理过期消息
|
||||||
bootloader 在升级之前会进行校验,如果不是slave的程序则不会升级
|
bootloader 在升级之前会进行校验,如果不是slave的程序则不会升级
|
||||||
使用赋码仪主板 app升级,方案升级验证通过
|
使用赋码仪主板 app升级,方案升级验证通过
|
||||||
|
2023.10.12
|
||||||
|
移植Test命令,验证成功
|
||||||
|
EJ EX 写工厂信息验证成功
|
||||||
|
|
||||||
|
|
||||||
|
1
source/elec_det/.gitignore
vendored
Normal file
1
source/elec_det/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
compar/
|
@@ -17,7 +17,6 @@ static volatile CurrentSample_Range_eu buscurrent_range = Current_Max;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SMod_Read_Idle_Filter 90
|
#define SMod_Read_Idle_Filter 90
|
||||||
// 根据反码电流改变
|
|
||||||
#define DMod_Read_Idle_Filter 50
|
#define DMod_Read_Idle_Filter 50
|
||||||
|
|
||||||
volatile uint16_t* EW_Read_AD_V = FireBus_ADC_Buf;
|
volatile uint16_t* EW_Read_AD_V = FireBus_ADC_Buf;
|
||||||
@@ -746,7 +745,7 @@ static void DMod_SendBytesSelf(uint8_t* buf, uint8_t len, uint16_t pre,uint8_t r
|
|||||||
EW_DIFF_MOD_L;
|
EW_DIFF_MOD_L;
|
||||||
}
|
}
|
||||||
__enable_irq();
|
__enable_irq();
|
||||||
delay_ms(3);//保障芯片总线空闲监听退出
|
delay_ms(5);//保障芯片总线空闲监听退出
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -814,12 +813,11 @@ void DMod_ReadInspect_Data(uint16_t count,uint8_t* buf)
|
|||||||
while(index < count)
|
while(index < count)
|
||||||
{
|
{
|
||||||
data = *(buf+(index >> 3));
|
data = *(buf+(index >> 3));
|
||||||
if( DMod_ReadBit(300) > 0)
|
if( DMod_ReadBit(400) > 0)
|
||||||
{
|
{
|
||||||
data |= (0x01 << (index & 0x07));
|
data |= (0x01 << (index & 0x07));
|
||||||
};
|
}
|
||||||
EW_DIFF_MOD_L
|
delay_us(1200);
|
||||||
delay_us(800);
|
|
||||||
*(buf+(index >> 3)) = data;
|
*(buf+(index >> 3)) = data;
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
@@ -152,6 +152,14 @@ void DMod_SendBytes(uint8_t* buf, uint8_t len, uint16_t pre,uint8_t rw_flag);
|
|||||||
void DMod_SendBytesXor(uint8_t* buf, uint8_t len, uint8_t rw_flag);
|
void DMod_SendBytesXor(uint8_t* buf, uint8_t len, uint8_t rw_flag);
|
||||||
uint8_t DMod_ReadBytesXor(uint8_t* buf, uint8_t len,uint16_t retry_times);
|
uint8_t DMod_ReadBytesXor(uint8_t* buf, uint8_t len,uint16_t retry_times);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@brief 差分模式读取为应答
|
||||||
|
@param count 读取的数量
|
||||||
|
@param 接收数据缓存
|
||||||
|
*/
|
||||||
|
void DMod_ReadInspect_Data(uint16_t count,uint8_t* buf);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@breif 通信测试
|
@breif 通信测试
|
||||||
*/
|
*/
|
||||||
@@ -328,6 +336,13 @@ uint8_t EW_ReadRunCfgVersion(uint16_t addr,uint8_t* run_cfg,uint16_t* version);
|
|||||||
@param fac_addr 分配因子
|
@param fac_addr 分配因子
|
||||||
*/
|
*/
|
||||||
uint8_t EW_AutoSetAddr(uint16_t max_addr,uint16_t fac_addr);
|
uint8_t EW_AutoSetAddr(uint16_t max_addr,uint16_t fac_addr);
|
||||||
|
/*
|
||||||
|
@brief 读校准值
|
||||||
|
@param addr 通信地址
|
||||||
|
@param UID数据
|
||||||
|
*/
|
||||||
|
uint8_t EW_ReadUID(uint16_t addr,uint8_t* uid,uint8_t uid_len);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
#include "board.h"
|
#include "board.h"
|
||||||
#include "bytearray.h"
|
#include "bytearray.h"
|
||||||
#include "mystdlib.h"
|
#include "mystdlib.h"
|
||||||
|
#include "mystring.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "stdlib.h"
|
#include "stdlib.h"
|
||||||
#include "dev_flash.h"
|
#include "dev_flash.h"
|
||||||
@@ -185,10 +186,30 @@ array_def *elec_write_resistor_cbv(int cbv)
|
|||||||
board_st.resistor_diff=cbv;
|
board_st.resistor_diff=cbv;
|
||||||
array_def *r=arr_creat();
|
array_def *r=arr_creat();
|
||||||
arr_append(r,0);
|
arr_append(r,0);
|
||||||
return 0;
|
return arr_temp(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 写缓存
|
||||||
|
array_def *elec_write_fat_buff(array_def *d)
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
int num=arr_length(d);
|
||||||
|
if(num<CHECKER_FAC_BUF_LEN){
|
||||||
|
memcpy(Checker_FacBuf,arr_data(d),num);
|
||||||
|
DBG_LOG("facbuf:%s.",str_temp(arr_string(d)));
|
||||||
|
ret=0;
|
||||||
|
}else{
|
||||||
|
ret=1;
|
||||||
|
}
|
||||||
|
array_def *r=arr_creat();
|
||||||
|
arr_append(r,ret);
|
||||||
|
return arr_temp(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 测量桥丝阻值
|
// 测量桥丝阻值
|
||||||
array_def *elec_check_resistor(void)
|
array_def *elec_check_resistor(void)
|
||||||
{
|
{
|
||||||
@@ -303,7 +324,7 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
|
|||||||
checker_runcfg.excue_rtv = 0;
|
checker_runcfg.excue_rtv = 0;
|
||||||
checker_runcfg.task_info.retry_time = 0;
|
checker_runcfg.task_info.retry_time = 0;
|
||||||
if(taskid>=CHECKER_MAXID_COUNT){
|
if(taskid>=CHECKER_MAXID_COUNT){
|
||||||
DBG_WARN("tiskid out of bound.");
|
DBG_WARN("taskid=%d out of bound.",taskid);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
task_par= s->task_info_array[task_index];
|
task_par= s->task_info_array[task_index];
|
||||||
@@ -333,6 +354,7 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
|
|||||||
break;
|
break;
|
||||||
checker_runcfg.rtv_index-=checker_runcfg.rtv_count;
|
checker_runcfg.rtv_index-=checker_runcfg.rtv_count;
|
||||||
}
|
}
|
||||||
|
DBG_LOG("task_index:%d,taskid:%d,ret=%d.",task_index,taskid,checker_runcfg.excue_rtv);
|
||||||
|
|
||||||
// 找寻下一个任务
|
// 找寻下一个任务
|
||||||
if((checker_runcfg.excue_rtv != 0)
|
if((checker_runcfg.excue_rtv != 0)
|
||||||
|
@@ -24,6 +24,8 @@ array_def *elec_write_hardversion(int version);
|
|||||||
|
|
||||||
array_def *elec_write_resistor_cbv(int cbv);
|
array_def *elec_write_resistor_cbv(int cbv);
|
||||||
|
|
||||||
|
array_def *elec_write_fat_buff(array_def *d);
|
||||||
|
|
||||||
array_def *elec_check_resistor(void);
|
array_def *elec_check_resistor(void);
|
||||||
|
|
||||||
array_def *elec_check_with_scheme(array_def *uid_psw);
|
array_def *elec_check_with_scheme(array_def *uid_psw);
|
||||||
|
65
source/elec_det/elec_io.c
Normal file
65
source/elec_det/elec_io.c
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
|
||||||
|
#include "base/delay.h"
|
||||||
|
#include "base/utility.h"
|
||||||
|
#include "hardware/adc_cfg.h"
|
||||||
|
#include "hardware/dac_cfg.h"
|
||||||
|
#include "hardware/gpio_cfg.h"
|
||||||
|
#include "hardware/jw3425iic.h"
|
||||||
|
#include "hardware/power.h"
|
||||||
|
#include "hardware/timer_cfg.h"
|
||||||
|
#include "driver/EWDriver.h"
|
||||||
|
#include "driver/JQDriver.h"
|
||||||
|
#include "driver/XTDriver.h"
|
||||||
|
#include "interface/BaseChecker.h"
|
||||||
|
#include "interface/JQChecker.h"
|
||||||
|
#include "interface/XTChecker.h"
|
||||||
|
#include "interface/EWChecker.h"
|
||||||
|
|
||||||
|
#include "elec_det.h"
|
||||||
|
#include "dev_flash.h"
|
||||||
|
#include "mystring.h"
|
||||||
|
#include "elec_io.h"
|
||||||
|
|
||||||
|
// 此文件实现elec模块的输入输出接口
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int ConsoleUsart_send_bytes(uint8_t *d,int len)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int SaveBoardInfo(void)
|
||||||
|
{
|
||||||
|
sys_param_def *spar=0;
|
||||||
|
spar=calloc(1,sizeof(sys_param_def));
|
||||||
|
memcpy(spar,sys_param(),sizeof(sys_param_def));
|
||||||
|
spar->hard_version=boardinfo_un.boardinfo.hard_v;
|
||||||
|
spar->resistor_diff=boardinfo_un.boardinfo.resistor_diff;
|
||||||
|
flash_save_param(spar);
|
||||||
|
free(spar);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int LoadBoardInfo(void)
|
||||||
|
{
|
||||||
|
boardinfo_un.boardinfo.bootflag=1;
|
||||||
|
boardinfo_un.boardinfo.hard_v=sys_param()->hard_version;
|
||||||
|
boardinfo_un.boardinfo.resistor_diff=sys_param()->resistor_diff;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void Ye_RunPlanCheckTest(void)
|
||||||
|
{
|
||||||
|
array_def *data=arr_creat();
|
||||||
|
array_def *r=elec_check_with_scheme(data);
|
||||||
|
arr_delete(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
64
source/elec_det/elec_io.h
Normal file
64
source/elec_det/elec_io.h
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#ifndef elec_io_h__
|
||||||
|
#define elec_io_h__
|
||||||
|
|
||||||
|
// 此文件实现elec模块的输入输出接口
|
||||||
|
// 引用时,此文件一定要最后包含
|
||||||
|
|
||||||
|
#include "stdint.h"
|
||||||
|
#include "commend.h"
|
||||||
|
#include "list.h"
|
||||||
|
|
||||||
|
#ifdef printf
|
||||||
|
#undef printf
|
||||||
|
#endif
|
||||||
|
#ifdef rt_kprintf
|
||||||
|
#undef rt_kprintf
|
||||||
|
#endif
|
||||||
|
#ifdef MSH_CMD_EXPORT_ALIAS
|
||||||
|
#undef MSH_CMD_EXPORT_ALIAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// 定义最大参数个数
|
||||||
|
#define MSH_CMD_PARAM_MAX_NUM 50
|
||||||
|
|
||||||
|
|
||||||
|
#define printf cmd_print
|
||||||
|
#define rt_kprintf cmd_print
|
||||||
|
|
||||||
|
#define MSH_CMD_EXPORT_ALIAS(fun_,cmd_,desc)\
|
||||||
|
static int __msh_##fun_(list_def *argv /* str */)\
|
||||||
|
{\
|
||||||
|
char *s[MSH_CMD_PARAM_MAX_NUM]={0};\
|
||||||
|
int num=list_length(argv);\
|
||||||
|
int ret=0;\
|
||||||
|
for(int i=0;i<num;i++){s[i]=list_get_str(argv,i);}\
|
||||||
|
fun_(num,s);\
|
||||||
|
return ret;\
|
||||||
|
}\
|
||||||
|
commend_export(cmd_,__msh_##fun_,#desc);
|
||||||
|
|
||||||
|
|
||||||
|
int ConsoleUsart_send_bytes(uint8_t *d,int len);
|
||||||
|
|
||||||
|
int SaveBoardInfo(void);
|
||||||
|
|
||||||
|
int LoadBoardInfo(void);
|
||||||
|
|
||||||
|
void Ye_RunPlanCheckTest(void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -273,7 +273,8 @@
|
|||||||
#define EW_SINGLE_MOD_M {PCout(OUTBH_Pin_Nu)=0;PBout(OUTAL_Pin_Nu)=0;PBout(OUTAH_Pin_Nu)=0; delay_nop(50); PBout(OUTBL_Pin_Nu)=1;PAout(LAVC_M_Pin_Nu)=1;}
|
#define EW_SINGLE_MOD_M {PCout(OUTBH_Pin_Nu)=0;PBout(OUTAL_Pin_Nu)=0;PBout(OUTAH_Pin_Nu)=0; delay_nop(50); PBout(OUTBL_Pin_Nu)=1;PAout(LAVC_M_Pin_Nu)=1;}
|
||||||
#define EW_SINGLE_MOD_H HMOS_SWITCH_W_1
|
#define EW_SINGLE_MOD_H HMOS_SWITCH_W_1
|
||||||
|
|
||||||
#define EW_DIFF_MOD_M {PCout(OUTBH_Pin_Nu)=0;PBout(OUTAL_Pin_Nu)=0; delay_nop(50); PBout(OUTBL_Pin_Nu)=1;PBout(OUTAH_Pin_Nu)=1;PAout(LAVC_M_Pin_Nu)=1;}
|
//#define EW_DIFF_MOD_M {PCout(OUTBH_Pin_Nu)=0;PBout(OUTAL_Pin_Nu)=0; delay_nop(50); PBout(OUTBL_Pin_Nu)=1;PBout(OUTAH_Pin_Nu)=1;PAout(LAVC_M_Pin_Nu)=1;}
|
||||||
|
#define EW_DIFF_MOD_M {PCout(OUTBH_Pin_Nu)=0;PBout(OUTAL_Pin_Nu)=0;PBout(OUTAH_Pin_Nu)=0; delay_nop(50); PBout(OUTBL_Pin_Nu)=1;PAout(LAVC_M_Pin_Nu)=1;}
|
||||||
|
|
||||||
#define EW_DIFF_MOD_H HMOS_SWITCH_W_1
|
#define EW_DIFF_MOD_H HMOS_SWITCH_W_1
|
||||||
#define EW_DIFF_MOD_L HMOS_SWITCH_W_0
|
#define EW_DIFF_MOD_L HMOS_SWITCH_W_0
|
||||||
|
@@ -88,6 +88,7 @@ uint32_t Power_GetBousV()
|
|||||||
{
|
{
|
||||||
uint32_t abus_v,bbus_v;
|
uint32_t abus_v,bbus_v;
|
||||||
uint16_t adv_buf[10];
|
uint16_t adv_buf[10];
|
||||||
|
uint32_t hbus_v=0;
|
||||||
Power_CurCalibration();
|
Power_CurCalibration();
|
||||||
GetADC1_Value(AD_OUTA_CH,adv_buf,10) ;
|
GetADC1_Value(AD_OUTA_CH,adv_buf,10) ;
|
||||||
Bubble_Sort_u16(adv_buf,10);
|
Bubble_Sort_u16(adv_buf,10);
|
||||||
@@ -104,6 +105,15 @@ uint32_t Power_GetBousV()
|
|||||||
|
|
||||||
abus_v = Power_ADVGetCalVal_106(abus_v);
|
abus_v = Power_ADVGetCalVal_106(abus_v);
|
||||||
abus_v = abus_v*11/100000;
|
abus_v = abus_v*11/100000;
|
||||||
|
|
||||||
|
hbus_v=Power_GetHPowerV();
|
||||||
|
|
||||||
|
//? 验证电压失调
|
||||||
|
// 电压相差过大的时候输出一个离谱的值
|
||||||
|
if((hbus_v>abus_v+10)||(abus_v>hbus_v+10)){
|
||||||
|
abus_v=500;
|
||||||
|
}
|
||||||
|
|
||||||
return abus_v;
|
return abus_v;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -446,7 +456,10 @@ void PowerSetVoltage(PowerInfo_st* info_st)
|
|||||||
C_H_DAC_Set(info_st->V_LAH_DAC);
|
C_H_DAC_Set(info_st->V_LAH_DAC);
|
||||||
C_M_DAC_Set(info_st->V_LAM_DAC);
|
C_M_DAC_Set(info_st->V_LAM_DAC);
|
||||||
POWER_ON;
|
POWER_ON;
|
||||||
|
//? 验证电压失调
|
||||||
|
delay_ms(5);
|
||||||
|
C_H_DAC_Set(info_st->V_LAH_DAC);
|
||||||
|
C_M_DAC_Set(info_st->V_LAM_DAC);
|
||||||
}
|
}
|
||||||
//获取当前电压配置值
|
//获取当前电压配置值
|
||||||
void PowerGetSet(PowerInfo_st* info_st)
|
void PowerGetSet(PowerInfo_st* info_st)
|
||||||
|
@@ -213,4 +213,21 @@ uint8_t Checker_FunIsValid(CheckerTask* taskArray,uint16_t run_index)
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
@brief 缓存空间检测
|
||||||
|
@rtv 1 失败 0 成功
|
||||||
|
*/
|
||||||
|
uint8_t Checker_FacBufCheck()
|
||||||
|
{
|
||||||
|
uint8_t uc_len = Checker_FacBuf[0];
|
||||||
|
uint8_t uc_crc = Checker_FacBuf[1];
|
||||||
|
if(uc_len > (CHECKER_FAC_BUF_LEN-2) || uc_len == 0)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(uc_crc != CheckCRC_8(Checker_FacBuf+2,uc_len))
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@@ -98,4 +98,9 @@ uint8_t JQXT_Test_IsNeedBind(void);
|
|||||||
检测执行函数是否正常
|
检测执行函数是否正常
|
||||||
*/
|
*/
|
||||||
uint8_t Checker_FunIsValid(CheckerTask* taskArray,uint16_t run_index);
|
uint8_t Checker_FunIsValid(CheckerTask* taskArray,uint16_t run_index);
|
||||||
|
/*
|
||||||
|
@brief 缓存空间检测
|
||||||
|
@rtv 1 失败 0 成功
|
||||||
|
*/
|
||||||
|
uint8_t Checker_FacBufCheck(void);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1058,6 +1058,107 @@ void JQ_Test_ReadVersion(void)
|
|||||||
Checker_SetRtv(&us_temp,checker_runcfg.rtv_count);
|
Checker_SetRtv(&us_temp,checker_runcfg.rtv_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@brief 写入OTP数据
|
||||||
|
@param0 OTP起始地址
|
||||||
|
@param1 缓存首地址
|
||||||
|
@param2 写入长度
|
||||||
|
*/
|
||||||
|
void JQ_Test_WriteFacBuff(void)
|
||||||
|
{
|
||||||
|
uint8_t uc_rtv = 0;
|
||||||
|
uint8_t uc_ack;
|
||||||
|
uint8_t uc_otpAddr = checker_runcfg.params[0];
|
||||||
|
uint8_t uc_bufIndex = checker_runcfg.params[1];
|
||||||
|
uint8_t uc_writeCount = checker_runcfg.params[2];
|
||||||
|
uint8_t uc_count = 0;
|
||||||
|
uint8_t uc_wcount ;
|
||||||
|
uint8_t ul_temp[4];
|
||||||
|
//Checker_FacBuf 验证合法性
|
||||||
|
if(0 != Checker_FacBufCheck())
|
||||||
|
{
|
||||||
|
uc_rtv = 1;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
JQ_EnWOTP();
|
||||||
|
JQ_EnWOTP();
|
||||||
|
for(uc_count = 0; uc_count < uc_writeCount;uc_count++,uc_otpAddr++,uc_bufIndex++)
|
||||||
|
{
|
||||||
|
uc_ack = JQ_ReadOTP(CHECKER_NET_ID,uc_otpAddr,1,ul_temp);
|
||||||
|
if(uc_ack < 1)
|
||||||
|
{
|
||||||
|
uc_rtv = 2;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(Checker_FacBuf[uc_bufIndex+2] == ul_temp[0])
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(ul_temp[0] != 0)
|
||||||
|
{
|
||||||
|
if((ul_temp[0] & Checker_FacBuf[uc_bufIndex+2]) != ul_temp[0])//OTP不能由1变成0
|
||||||
|
{
|
||||||
|
uc_rtv = 3;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uc_wcount = JQ_WriteOTP(uc_otpAddr,1,&Checker_FacBuf[uc_bufIndex+2]);
|
||||||
|
if(uc_wcount != 1)
|
||||||
|
{
|
||||||
|
uc_rtv = 4;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
uc_rtv = 0;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@brief 验证OTP内部与缓存比较
|
||||||
|
@param0 OTP起始地址
|
||||||
|
@param1 缓存首地址
|
||||||
|
@param2 验证长度
|
||||||
|
*/
|
||||||
|
void JQ_Test_VerifyFacBuff(void)
|
||||||
|
{
|
||||||
|
uint8_t uc_rtv = 0;
|
||||||
|
uint8_t uc_ack;
|
||||||
|
uint8_t uc_otpAddr = checker_runcfg.params[0];
|
||||||
|
uint8_t uc_bufIndex = checker_runcfg.params[1];
|
||||||
|
uint8_t uc_verifyCount = checker_runcfg.params[2];
|
||||||
|
uint8_t uc_count = 0;
|
||||||
|
uint8_t ul_temp[4];
|
||||||
|
if(0 != Checker_FacBufCheck())
|
||||||
|
{
|
||||||
|
uc_rtv = 1;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for(uc_count = 0; uc_count < uc_verifyCount;uc_count++)
|
||||||
|
{
|
||||||
|
uc_ack = JQ_ReadOTP(CHECKER_NET_ID,uc_otpAddr,1,ul_temp);
|
||||||
|
if((uc_ack < 1) || (Checker_FacBuf[uc_bufIndex+2] != ul_temp[0]))
|
||||||
|
{
|
||||||
|
uc_rtv = 2;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uc_bufIndex++;
|
||||||
|
uc_otpAddr++;
|
||||||
|
}
|
||||||
|
uc_rtv = 0;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
CheckerTask jqtaskArray[CHECKER_MAXID_COUNT] ={
|
CheckerTask jqtaskArray[CHECKER_MAXID_COUNT] ={
|
||||||
Checker_PowerPrapare, //0 电源准备
|
Checker_PowerPrapare, //0 电源准备
|
||||||
JQ_Test_PowerOn, //1 上电充能
|
JQ_Test_PowerOn, //1 上电充能
|
||||||
@@ -1094,6 +1195,8 @@ Checker_ResistorSample,//31 测量桥丝阻值
|
|||||||
JQ_Test_EnOTPW ,//32 使能OTP写
|
JQ_Test_EnOTPW ,//32 使能OTP写
|
||||||
JQ_Test_WriteVersion ,//33 写模块版本
|
JQ_Test_WriteVersion ,//33 写模块版本
|
||||||
JQ_Test_ReadVersion ,//34 读取版本号
|
JQ_Test_ReadVersion ,//34 读取版本号
|
||||||
|
JQ_Test_WriteFacBuff ,//35 写缓存数据
|
||||||
|
JQ_Test_VerifyFacBuff ,//36 验证缓存数据
|
||||||
(void*)0 //数组结束
|
(void*)0 //数组结束
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -215,4 +215,18 @@ void JQ_Test_ReadVersion(void);
|
|||||||
@param0 模块版本号
|
@param0 模块版本号
|
||||||
*/
|
*/
|
||||||
void JQ_Test_WriteVersion(void);
|
void JQ_Test_WriteVersion(void);
|
||||||
|
/*
|
||||||
|
@brief 写入OTP数据
|
||||||
|
@param0 OTP起始地址
|
||||||
|
@param1 缓存首地址
|
||||||
|
@param2 写入长度
|
||||||
|
*/
|
||||||
|
void JQ_Test_WriteFacBuff(void);
|
||||||
|
/*
|
||||||
|
@brief 验证OTP内部与缓存比较
|
||||||
|
@param0 OTP起始地址
|
||||||
|
@param1 缓存首地址
|
||||||
|
@param2 验证长度
|
||||||
|
*/
|
||||||
|
void JQ_Test_VerifyFacBuff(void);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -480,34 +480,22 @@ void XT_Test_WriteShell(void)
|
|||||||
{
|
{
|
||||||
uint8_t uc_rtv = 0;
|
uint8_t uc_rtv = 0;
|
||||||
uint8_t uc_count = 0;
|
uint8_t uc_count = 0;
|
||||||
if((checker_runcfg.params[0] + checker_runcfg.params[1] > CHECKER_WRITE_BUF))
|
if(0 != Checker_FacBufCheck())
|
||||||
{
|
{
|
||||||
uc_rtv = 1;
|
uc_rtv = 1;
|
||||||
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(CheckCRC_8(&Checker_FacBuf[2],Checker_FacBuf[0]) != Checker_FacBuf[1])
|
//管壳号最长 13个字节
|
||||||
|
if((checker_runcfg.params[0] + checker_runcfg.params[1] > CHECKER_WRITE_BUF) || checker_runcfg.params[1] > 13)
|
||||||
{
|
{
|
||||||
uc_rtv = 1;
|
uc_rtv = 2;
|
||||||
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
memset(XT_RunBuf,0,XT_CHECKER_RUN_BUF);
|
memset(XT_RunBuf,0,XT_CHECKER_RUN_BUF);
|
||||||
memcpy(XT_RunBuf,&Checker_FacBuf[2]+checker_runcfg.params[0],checker_runcfg.params[1]);
|
memcpy(XT_RunBuf,&Checker_FacBuf[2]+checker_runcfg.params[0],checker_runcfg.params[1]);
|
||||||
uc_rtv |= XT_Write_Shell(XT_RunBuf);
|
uc_rtv |= XT_Write_Shell(XT_RunBuf);
|
||||||
if(checker_runcfg.uid_len > 0)
|
|
||||||
{
|
|
||||||
uc_rtv |= XT_Read_Shell(checker_runcfg.writeuid,checker_runcfg.uid_len,XT_RunBuf+16);
|
|
||||||
}else{
|
|
||||||
uc_rtv |= XT_Read_Shell_All(XT_RunBuf+16);
|
|
||||||
}
|
|
||||||
for(uc_count = 0; uc_count < 13;uc_count++)
|
|
||||||
{
|
|
||||||
if(XT_RunBuf[uc_count] != XT_RunBuf[13+uc_count])
|
|
||||||
{
|
|
||||||
uc_rtv |= 0x01;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1237,7 +1225,49 @@ void XT_CurMonitor(void)
|
|||||||
Checker_MaskResult(0,checker_runcfg.task_info.runindex);
|
Checker_MaskResult(0,checker_runcfg.task_info.runindex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@brief 验证壳码 如果测试器有uid,将采用uid方式通信
|
||||||
|
@param 命令缓存参数的起始
|
||||||
|
@param 验证数据长度
|
||||||
|
*/
|
||||||
|
void XT_Test_VerfyShell(void)
|
||||||
|
{
|
||||||
|
uint8_t uc_rtv = 0;
|
||||||
|
uint8_t uc_count = 0;
|
||||||
|
uint8_t uc_index = 0;
|
||||||
|
if(0 != Checker_FacBufCheck())
|
||||||
|
{
|
||||||
|
uc_rtv = 1;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//管壳号最长 13个字节
|
||||||
|
if((checker_runcfg.params[0] + checker_runcfg.params[1] > CHECKER_WRITE_BUF) || checker_runcfg.params[1] > 13)
|
||||||
|
{
|
||||||
|
uc_rtv = 2;
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
memset(XT_RunBuf,0,XT_CHECKER_RUN_BUF);
|
||||||
|
if(checker_runcfg.uid_len > 0)
|
||||||
|
{
|
||||||
|
uc_rtv=XT_Read_Shell(checker_runcfg.writeuid,checker_runcfg.uid_len,XT_RunBuf);
|
||||||
|
if(uc_rtv) uc_rtv =3;
|
||||||
|
}else{
|
||||||
|
uc_rtv=XT_Read_Shell_All(XT_RunBuf);
|
||||||
|
if(uc_rtv) uc_rtv =4;
|
||||||
|
}
|
||||||
|
uc_index = checker_runcfg.params[0]+2;
|
||||||
|
for(uc_count = 0; uc_count < checker_runcfg.params[1];uc_count++)
|
||||||
|
{
|
||||||
|
if(Checker_FacBuf[uc_index++] != XT_RunBuf[uc_count])
|
||||||
|
{
|
||||||
|
uc_rtv =5;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
}
|
||||||
|
|
||||||
CheckerTask xttaskArray[CHECKER_MAXID_COUNT] ={
|
CheckerTask xttaskArray[CHECKER_MAXID_COUNT] ={
|
||||||
Checker_PowerPrapare, //0 电源准备
|
Checker_PowerPrapare, //0 电源准备
|
||||||
@@ -1278,6 +1308,7 @@ Checker_ResistorSample,//34 桥丝电阻测试
|
|||||||
XT_Test_UID_PWD_Bind ,//35 检测过程中注码
|
XT_Test_UID_PWD_Bind ,//35 检测过程中注码
|
||||||
XT_Test_UID_PWD_Verify,//36 验证注码
|
XT_Test_UID_PWD_Verify,//36 验证注码
|
||||||
XT_OnLine_SCAN ,//37 模块在线检测
|
XT_OnLine_SCAN ,//37 模块在线检测
|
||||||
|
XT_Test_VerfyShell ,//38 验证管壳码
|
||||||
(void*)0 //数组结束
|
(void*)0 //数组结束
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -240,6 +240,12 @@ void XT_OnLine_SCAN(void);
|
|||||||
|
|
||||||
void XT_OFFLine_SCAN(void);
|
void XT_OFFLine_SCAN(void);
|
||||||
/*
|
/*
|
||||||
|
@brief 验证壳码 如果测试器有uid,将采用uid方式通信
|
||||||
|
@param 命令缓存参数的起始
|
||||||
|
@param 验证数据长度
|
||||||
|
*/
|
||||||
|
void XT_Test_VerfyShell(void);
|
||||||
|
/*
|
||||||
@brief 芯片离线检测
|
@brief 芯片离线检测
|
||||||
@param0 充电使能
|
@param0 充电使能
|
||||||
@param1 采样周期 10ms
|
@param1 采样周期 10ms
|
||||||
@@ -247,4 +253,5 @@ void XT_OFFLine_SCAN(void);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
void XT_CurMonitor(void);
|
void XT_CurMonitor(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
379
source/elec_det/test/EWCheckerTest.c
Normal file
379
source/elec_det/test/EWCheckerTest.c
Normal file
@@ -0,0 +1,379 @@
|
|||||||
|
#include "base/define.h"
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "hardware/gpio_cfg.h"
|
||||||
|
#include "base/delay.h"
|
||||||
|
#include "hardware/adc_cfg.h"
|
||||||
|
#include "hardware/power.h"
|
||||||
|
#include "base/utility.h"
|
||||||
|
//#include "usartapp.h"
|
||||||
|
//#include "database.h"
|
||||||
|
#include "interface/BaseChecker.h"
|
||||||
|
#include "hardware/jw3425iic.h"
|
||||||
|
#include "driver/EWDriver.h"
|
||||||
|
#include "elec_io.h"
|
||||||
|
static void MCCheckerTest(int argc, char**argv)
|
||||||
|
{
|
||||||
|
uint16_t us_array[20];
|
||||||
|
uint8_t* puc_buf;
|
||||||
|
uint16_t us_temp;
|
||||||
|
rt_memset(&checker_runcfg.params,0,sizeof(checker_runcfg.params));
|
||||||
|
rt_memset(&checker_runcfg.Task_Result,0,sizeof(checker_runcfg.Task_Result));
|
||||||
|
checker_runcfg.excue_rtv = 0;
|
||||||
|
checker_runcfg.param_count = 0;
|
||||||
|
checker_runcfg.rtv_count = 0;
|
||||||
|
checker_runcfg.rtv_index = 0;
|
||||||
|
checker_runcfg.task_info.runindex = 0;
|
||||||
|
if(argc > 2)
|
||||||
|
{
|
||||||
|
checker_runcfg.param_count = argc-2;
|
||||||
|
us_temp = 0;
|
||||||
|
while(us_temp < checker_runcfg.param_count)
|
||||||
|
{
|
||||||
|
checker_runcfg.params[us_temp] = atoi(argv[us_temp+2]);
|
||||||
|
us_temp++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
goto MC_help_label_;
|
||||||
|
}else if(!rt_strcmp(argv[1], "SDAOut")){
|
||||||
|
SDA_OUT();
|
||||||
|
if(checker_runcfg.params[0] == 0)
|
||||||
|
{
|
||||||
|
IIC_SDA(0);
|
||||||
|
}else{
|
||||||
|
IIC_SDA(1);
|
||||||
|
}
|
||||||
|
}else if(!rt_strcmp(argv[1], "SDAIn")){
|
||||||
|
SDA_IN();
|
||||||
|
rt_kprintf("SDAIn %1\n",READ_SDA);
|
||||||
|
}else if(!rt_strcmp(argv[1], "SCLOut")){
|
||||||
|
if(checker_runcfg.params[0] == 0)
|
||||||
|
{
|
||||||
|
IIC_SCL(0);
|
||||||
|
}else{
|
||||||
|
IIC_SCL(1);
|
||||||
|
}
|
||||||
|
}else if(!rt_strcmp(argv[1], "CodeCrc")){
|
||||||
|
printf("CodeCrc %X\n",boardinfo_un.boardinfo.mc_ICodeCrc32);
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "VrefTrim")){
|
||||||
|
MC_VrefTrim();
|
||||||
|
printf("VrefTrim Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "IrefTrim")){
|
||||||
|
MC_IrefTrim();
|
||||||
|
printf("IrefTrim Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "RC4MTrim")){
|
||||||
|
MC_RC4MTrim();
|
||||||
|
printf("RC4MTrim Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "RC128KTrim")){
|
||||||
|
MC_RC128KTrim();
|
||||||
|
printf("RC128KTrim Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetMTPVol")){
|
||||||
|
MC_SetMTPVol();
|
||||||
|
printf("SetMTPVol Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "EraseMTP")){
|
||||||
|
MC_EraseMTP();
|
||||||
|
printf("EraseMTP Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "IICWriteMTP")){
|
||||||
|
MC_IICWriteMTP();
|
||||||
|
printf("IICWriteMTP Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "IICEnMTP")){
|
||||||
|
MC_IICEnMTP();
|
||||||
|
printf("IICEnMTP Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "IICReadMTP")){
|
||||||
|
checker_runcfg.rtv_count = (checker_runcfg.params[1]+1)/2;
|
||||||
|
MC_IICReadMTP();
|
||||||
|
printf("IICMTPState Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
us_temp = 0;
|
||||||
|
while(us_temp < checker_runcfg.rtv_count)
|
||||||
|
{
|
||||||
|
if((us_temp+1) % 4 == 0)
|
||||||
|
{
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
printf("%02X %02X ",(checker_runcfg.Test_Rtv[us_temp] & 0xFF) ,((checker_runcfg.Test_Rtv[us_temp] >> 8) & 0xFF));
|
||||||
|
us_temp++;
|
||||||
|
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}else if(!rt_strcmp(argv[1], "IICMTPState")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
MC_IICCheckMTPState();
|
||||||
|
printf("IICMTPState Excute %d state %x \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0] & 0x0FF);
|
||||||
|
}else if(!rt_strcmp(argv[1], "IICUpdateMTP")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
POWER_ON
|
||||||
|
delay_ms(50);
|
||||||
|
MC_IICUpdateMTP();
|
||||||
|
POWER_OFF;
|
||||||
|
printf("IICMTPState Excute %d Error Code %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0] & 0x0FF);
|
||||||
|
}
|
||||||
|
|
||||||
|
else{
|
||||||
|
MC_help_label_:
|
||||||
|
rt_kprintf("SDAOut [0/1] gpio out\n");
|
||||||
|
rt_kprintf("SDAIn read gpio pin\n");
|
||||||
|
rt_kprintf("SCLOut [0/1] gpio out\n");
|
||||||
|
rt_kprintf("VrefTrim [En_update] [trim_value]\n");
|
||||||
|
rt_kprintf("IrefTrim [Iref1En_update] [Iref2En_update] [Iref1_value] [Iref2_value]\n");
|
||||||
|
rt_kprintf("RC4MTrim [En_update] [trim_value] \n");
|
||||||
|
rt_kprintf("RC128KTrim [En_update] [trim_value] \n");
|
||||||
|
rt_kprintf("SetMTPVol [L_V_Class] [H_V_Class] \n");
|
||||||
|
rt_kprintf("EraseMTP [Addr] [Erase_Type] \n");
|
||||||
|
rt_kprintf("IICWriteMTP [N datas len < 11] \n");
|
||||||
|
rt_kprintf("IICReadMTP [read len] \n");
|
||||||
|
rt_kprintf("IICMTPState read MTP status \n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MSH_CMD_EXPORT_ALIAS(MCCheckerTest ,MCI, EW IIC CMD );
|
||||||
|
|
||||||
|
static void EWDriverTest(int argc, char**argv)
|
||||||
|
{
|
||||||
|
uint16_t us_array[20];
|
||||||
|
uint8_t* puc_buf;
|
||||||
|
uint16_t us_temp;
|
||||||
|
uint32_t ul_temp,ul_temp2;
|
||||||
|
RunCfg_un runcfg;
|
||||||
|
rt_memset(&checker_runcfg.params,0,sizeof(checker_runcfg.params));
|
||||||
|
rt_memset(&checker_runcfg.Task_Result,0,sizeof(checker_runcfg.Task_Result));
|
||||||
|
checker_runcfg.excue_rtv = 0;
|
||||||
|
checker_runcfg.param_count = 0;
|
||||||
|
checker_runcfg.rtv_count = 0;
|
||||||
|
checker_runcfg.rtv_index = 0;
|
||||||
|
checker_runcfg.task_info.runindex = 0;
|
||||||
|
if(argc > 2)
|
||||||
|
{
|
||||||
|
checker_runcfg.param_count = argc-2;
|
||||||
|
us_temp = 0;
|
||||||
|
while(us_temp < checker_runcfg.param_count)
|
||||||
|
{
|
||||||
|
checker_runcfg.params[us_temp] = atoi(argv[us_temp+2]);
|
||||||
|
us_temp++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
goto EW_help_label_;
|
||||||
|
}else if(!rt_strcmp(argv[1], "BUS_H")){
|
||||||
|
EW_DIFF_MOD_H
|
||||||
|
}else if(!rt_strcmp(argv[1], "BUS_L")){
|
||||||
|
|
||||||
|
EW_DIFF_MOD_L
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "BUS_M")){
|
||||||
|
EW_DIFF_MOD_M
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "BUS_OFF")){
|
||||||
|
HMOS_SWITCH_OFF
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "BUS_ON")){
|
||||||
|
HMOS_SWITCH_ON
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "BUS_CUR")){
|
||||||
|
printf("BUS_CUR %d \r\n",Power_GetCurrent());
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "SetV")){
|
||||||
|
us_temp = PowerCalibration_set(checker_runcfg.params[0],checker_runcfg.params[1]);
|
||||||
|
printf("SetV Excute %d\n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "DModSend")){
|
||||||
|
HexStrings2Byte(argv+4,argc-4,(uint8_t*)us_array,20);
|
||||||
|
DMod_SendBytes((uint8_t*)us_array,checker_runcfg.params[0],checker_runcfg.params[1],1);
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "CommTest")){
|
||||||
|
memcpy(us_array,"1234567890ABC",4);
|
||||||
|
if(checker_runcfg.params[0] < 200)
|
||||||
|
{
|
||||||
|
checker_runcfg.params[0] = 200;
|
||||||
|
}
|
||||||
|
puc_buf = (uint8_t*)us_array;
|
||||||
|
us_temp = EW_CommTest(puc_buf,4,checker_runcfg.params[0]);
|
||||||
|
puc_buf[5+1] = '\0';
|
||||||
|
printf("CommTest Excute %d %s\n",us_temp,puc_buf+2);
|
||||||
|
}else if(!rt_strcmp(argv[1], "EnWriteMTP")){
|
||||||
|
us_temp = EW_EnWriteMTP(checker_runcfg.params[0],checker_runcfg.params[1]);
|
||||||
|
printf("EnWriteMTP Excute %d\n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WriteMTP")){
|
||||||
|
HexStrings2Byte(argv+5,argc-5,(uint8_t*)us_array,sizeof(us_array));
|
||||||
|
us_temp = EW_WriteMTP(checker_runcfg.params[0],checker_runcfg.params[1],(uint8_t*)us_array,checker_runcfg.params[3]);
|
||||||
|
printf("WriteMTP Excute %d\n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadMTP")){
|
||||||
|
puc_buf = (uint8_t*)us_array;
|
||||||
|
us_temp = EW_ReadMTP(checker_runcfg.params[0],checker_runcfg.params[1],puc_buf,checker_runcfg.params[2]);
|
||||||
|
printf("ReadMTP Excute %d \n",us_temp);
|
||||||
|
for(us_temp = 0; us_temp < checker_runcfg.params[2]; us_temp++)
|
||||||
|
{
|
||||||
|
printf("%02X ",puc_buf[us_temp]);
|
||||||
|
if((us_temp + 1) %8 == 0)
|
||||||
|
{
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((us_temp + 1) %8 != 0)
|
||||||
|
{
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}else if(!rt_strcmp(argv[1], "Boot")){
|
||||||
|
us_temp = EW_RunBootLoader(checker_runcfg.params[0],checker_runcfg.params[1]);
|
||||||
|
printf("Boot Excute %d\n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WriteRunCfg")){
|
||||||
|
runcfg.runcfg_st.fire_mos_sw = checker_runcfg.params[1];
|
||||||
|
runcfg.runcfg_st.vbus_rx_sg = 3;
|
||||||
|
runcfg.runcfg_st.vbus_mode = 1;
|
||||||
|
runcfg.runcfg_st.reset_run_step = checker_runcfg.params[2];
|
||||||
|
runcfg.runcfg_st.uid_len = checker_runcfg.params[3];
|
||||||
|
runcfg.runcfg_st.pwd_len = checker_runcfg.params[4];
|
||||||
|
runcfg.runcfg_st.version = checker_runcfg.params[5];
|
||||||
|
us_temp = EW_WriteRunCfg(checker_runcfg.params[0],&runcfg);
|
||||||
|
printf("WriteRunCfg Excute %d\n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetAddr")){
|
||||||
|
puc_buf = (uint8_t*)us_array;
|
||||||
|
memcpy(argv[3],puc_buf,strlen(argv[3]));
|
||||||
|
us_temp = EW_SetAddrByUID(checker_runcfg.params[0],puc_buf,strlen(argv[3])-1,(uint8_t*)checker_runcfg.Test_Rtv);
|
||||||
|
printf("SetAddr Excute %d delay %d state %04X\n",us_temp,checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "FastSet")){
|
||||||
|
puc_buf = (uint8_t*)us_array;
|
||||||
|
memcpy(argv[5],puc_buf,strlen(argv[5]));
|
||||||
|
us_temp = EW_FastSetByUID(checker_runcfg.params[0],checker_runcfg.params[1],checker_runcfg.params[2],puc_buf,strlen(argv[5])-1,(uint8_t*)checker_runcfg.Test_Rtv);
|
||||||
|
printf("FastSet Excute %d delay %d state %04X\n",us_temp,checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetDelay")){
|
||||||
|
us_temp = EW_SetDelay(checker_runcfg.params[0],checker_runcfg.params[1]);
|
||||||
|
printf("SetDelay Excute %d \n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "VerfyPWD")){
|
||||||
|
puc_buf = (uint8_t*)us_array;
|
||||||
|
memcpy(argv[3],puc_buf,strlen(argv[3]));
|
||||||
|
us_temp = EW_VerfyPWD(checker_runcfg.params[0],puc_buf,strlen(argv[3])-1);
|
||||||
|
printf("VerfyPWD Excute %d \n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Boom")){
|
||||||
|
us_temp = EW_Boom(checker_runcfg.params[0],checker_runcfg.params[1]);
|
||||||
|
printf("Boom Excute %d \n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Charge")){
|
||||||
|
us_temp = EW_Charge(checker_runcfg.params[0],checker_runcfg.params[1],checker_runcfg.params[2]);
|
||||||
|
printf("Charge Excute %d \n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "DisCharge")){
|
||||||
|
us_temp = EW_DisCharge(checker_runcfg.params[0]);
|
||||||
|
printf("DisCharge Excute %d \n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadState")){
|
||||||
|
ul_temp = 0;
|
||||||
|
us_temp = EW_ReadState(checker_runcfg.params[0],(uint8_t*)&ul_temp);
|
||||||
|
printf("ReadState Excute %d state %08X\n",us_temp,ul_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ClkAmend")){
|
||||||
|
us_temp = EW_ClkAmend(checker_runcfg.params[0],checker_runcfg.params[1],checker_runcfg.params[2]);
|
||||||
|
printf("ClkAmend Excute %d\n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Inspect")){
|
||||||
|
puc_buf = (uint8_t*)us_array;
|
||||||
|
us_temp = EW_Inspect(checker_runcfg.params[0],checker_runcfg.params[1],checker_runcfg.params[2],puc_buf);
|
||||||
|
printf("Inspect Excute %d\n",us_temp);
|
||||||
|
us_temp = (checker_runcfg.params[1] - checker_runcfg.params[0] + 7)/8;
|
||||||
|
for(ul_temp = 0; ul_temp< us_temp;ul_temp++)
|
||||||
|
{
|
||||||
|
printf("%02X ",puc_buf[us_temp]);
|
||||||
|
if((us_temp + 1) %8 == 0)
|
||||||
|
{
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((us_temp + 1) %8 != 0)
|
||||||
|
{
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "ClkAmend")){
|
||||||
|
us_temp = EW_ClkAmend(checker_runcfg.params[0],checker_runcfg.params[1],checker_runcfg.params[2]);
|
||||||
|
printf("ClkAmend Excute %d\n",us_temp);
|
||||||
|
} else if(!rt_strcmp(argv[1], "CheckRunCfg")){
|
||||||
|
ul_temp = HexStrings2UInt(argv[3]);
|
||||||
|
ul_temp2 = HexStrings2UInt(argv[4]);
|
||||||
|
us_temp = EW_CheckRunCfg(checker_runcfg.params[0],ul_temp,ul_temp2,(uint8_t*)us_array);
|
||||||
|
printf("CheckRunCfg Excute %d Checke_Flag %d\n",us_temp,us_array[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ChecSelf")){
|
||||||
|
us_array[0] = 0;
|
||||||
|
us_temp = EW_ChecSelf(checker_runcfg.params[0],checker_runcfg.params[1],(uint8_t*)us_array);
|
||||||
|
printf("ChecSelf Excute %d SelfCheck Result %d \n",us_temp,us_array[0]);
|
||||||
|
} else if(!rt_strcmp(argv[1], "SaveFireInfo")){
|
||||||
|
us_temp = EW_SaveFireInfo(checker_runcfg.params[0]);
|
||||||
|
printf("SaveFireInfo Excute %d \n",us_temp);
|
||||||
|
} else if(!rt_strcmp(argv[1], "ReadDelayState")){
|
||||||
|
us_array[0] = 0;
|
||||||
|
us_temp = EW_ReadDelay(checker_runcfg.params[0],us_array);
|
||||||
|
printf("SaveFireInfo Excute %d delay %d \n",us_temp,us_array[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetReportCfg")){
|
||||||
|
us_temp = EW_SetReportCfg(checker_runcfg.params[0],checker_runcfg.params[1]);
|
||||||
|
printf("SetReportCfg Excute %d \n",us_temp);
|
||||||
|
} else if(!rt_strcmp(argv[1], "UpdateCommAddr")){
|
||||||
|
us_temp = EW_UpdateCommAddr(checker_runcfg.params[0],checker_runcfg.params[1]);
|
||||||
|
printf("UpdateCommAddr Excute %d \n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadClkAmend")){
|
||||||
|
us_temp = EW_ReadClkAmend(checker_runcfg.params[0],&ul_temp);
|
||||||
|
printf("ReadClkAmend Excute %d amendValue %d\n",us_temp,ul_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadCfgVer")){
|
||||||
|
ul_temp2 = 0;
|
||||||
|
ul_temp = 0;
|
||||||
|
us_temp = EW_ReadRunCfgVersion(checker_runcfg.params[0],(uint8_t*)&ul_temp,(uint16_t*)&ul_temp2);
|
||||||
|
printf("ReadCfgVer Excute %d RunCfg %08X Version %04X\n",us_temp,ul_temp,ul_temp2);
|
||||||
|
}else if(!rt_strcmp(argv[1], "AutoSetAddr")){
|
||||||
|
us_temp = EW_AutoSetAddr(checker_runcfg.params[0],checker_runcfg.params[1]);
|
||||||
|
printf("AutoSetAddr Excute %d \n",us_temp);
|
||||||
|
}else if(!rt_strcmp(argv[1], "EW_ReadUID")){
|
||||||
|
puc_buf = (uint8_t*)us_array;
|
||||||
|
us_temp = EW_ReadUID(checker_runcfg.params[0],puc_buf,checker_runcfg.params[1]);
|
||||||
|
printf("EW_ReadUID Excute %d ",us_temp);
|
||||||
|
us_temp = checker_runcfg.params[1];
|
||||||
|
for(ul_temp = 0; ul_temp< us_temp;ul_temp++)
|
||||||
|
{
|
||||||
|
printf("%02X ",puc_buf[ul_temp]);
|
||||||
|
if((ul_temp + 1) %8 == 0)
|
||||||
|
{
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((ul_temp + 1) %8 != 0)
|
||||||
|
{
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
else{
|
||||||
|
EW_help_label_:
|
||||||
|
rt_kprintf("BUS_H Out High Voltage");
|
||||||
|
rt_kprintf("BUS_M Out Midle Voltage\n");
|
||||||
|
rt_kprintf("BUS_L Out High Voltage other side\n");
|
||||||
|
rt_kprintf("BUS_OFF Close Bus\n");
|
||||||
|
rt_kprintf("BUS_ON Open Bus\n");
|
||||||
|
rt_kprintf("BUS_CUR Get Bus Current\n");
|
||||||
|
rt_kprintf("SetV [Hight_V] [Midle_V]\n");
|
||||||
|
rt_kprintf("CommTest [Cycle]VBusD Transport Test \n");
|
||||||
|
rt_kprintf("EnWriteMTP [addr][en_flag] Enable or Disable MTP Written \n");
|
||||||
|
rt_kprintf("WriteMTP [addr][mtp_addr][dataSize][HexData] Write data to MTP \n");
|
||||||
|
rt_kprintf("ReadMTP [addr][mtp_addr][read_len] Read data from MTP \n");
|
||||||
|
rt_kprintf("Boot Jump to BootLoader \n");
|
||||||
|
rt_kprintf("WriteRunCfg [addr][mos_sw][reset_run_flg][uid_len][pwd_len][version] \n");
|
||||||
|
rt_kprintf("SetDelay [addr][delay]\n");
|
||||||
|
rt_kprintf("SetAddr [commaddr][UID] Update CommAddr by UID\n");
|
||||||
|
rt_kprintf("FastSet [commaddr][delay][pwd_flag][UID] Fast Set Delay and CommAddr By UID\n");
|
||||||
|
rt_kprintf("VerfyPWD [addr][pwd] Verfy PWD\n");
|
||||||
|
rt_kprintf("Boom [addr][delay] \n");
|
||||||
|
rt_kprintf("Charge [addr][voltage_class][group] voltage_class 0 bypass 1 16V 2 20V 3 3.5V addr > group*4 \n");
|
||||||
|
rt_kprintf("DisCharge [addr]\n");
|
||||||
|
rt_kprintf("ReadState [addr] read delay and state\n");
|
||||||
|
rt_kprintf("Inspect [bgaddr] [endaddr] [state_mask]\n");
|
||||||
|
rt_kprintf("ClkAmend [addr] [Cycle] [PlusCount]\n");
|
||||||
|
rt_kprintf("CheckRunCfg [addr] [Cfg_mask_hex] [Cfg_state_hex]\n");
|
||||||
|
rt_kprintf("ChecSelf [addr] [Checke_Mode] [Result]\n");
|
||||||
|
rt_kprintf("SaveFireInfo [addr]\n");
|
||||||
|
rt_kprintf("ReadDelayState [addr]\n");
|
||||||
|
rt_kprintf("SetReportCfg [speed][cur]\n");
|
||||||
|
rt_kprintf("UpdateCommAddr [addr][new_addr]\n");
|
||||||
|
rt_kprintf("ReadClkAmend [addr]\n");
|
||||||
|
rt_kprintf("ReadCfgVer [addr]\n");
|
||||||
|
rt_kprintf("AutoSetAddr [addr][addr_fac]\n");
|
||||||
|
rt_kprintf("EW_ReadUID [addr][uid_len]\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MSH_CMD_EXPORT_ALIAS(EWDriverTest ,EW, EWPro Driver );
|
302
source/elec_det/test/EW_TestUsartApp.c
Normal file
302
source/elec_det/test/EW_TestUsartApp.c
Normal file
@@ -0,0 +1,302 @@
|
|||||||
|
#include "driver/ewdriver.h"
|
||||||
|
#include "base/define.h"
|
||||||
|
#include "base/delay.h"
|
||||||
|
//#include "console_usart.h"
|
||||||
|
#include "base/utility.h"
|
||||||
|
//#include "usartapp.h"
|
||||||
|
//#include "arrayfifo.h"
|
||||||
|
//#include "YeCommProtocol.h"
|
||||||
|
#include "hardware/power.h"
|
||||||
|
#include "elec_io.h"
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
|
typedef struct{
|
||||||
|
uint8_t head[2];//<2F>̶<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸
|
||||||
|
uint16_t frame_len;//<2F><>֡<EFBFBD><D6A1><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD>CRC
|
||||||
|
uint8_t src_addr;//Դ<><D4B4>ַ
|
||||||
|
uint8_t dist_addr;//Ŀ<>ĵ<EFBFBD>ַ
|
||||||
|
uint8_t cmd;//<2F><><EFBFBD><EFBFBD>
|
||||||
|
uint16_t sq;//<2F><>ˮ<EFBFBD><CBAE>
|
||||||
|
}EwCmd_st;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
EwCmd_st head;
|
||||||
|
uint8_t oper_cmd;
|
||||||
|
uint16_t h_v;
|
||||||
|
uint16_t m_v;
|
||||||
|
}EwBusCmd_st;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
EwCmd_st head;
|
||||||
|
uint8_t oper_cmd;
|
||||||
|
uint16_t h_v;
|
||||||
|
uint16_t m_v;
|
||||||
|
uint16_t bus_v;
|
||||||
|
uint32_t cur;
|
||||||
|
uint8_t crc;
|
||||||
|
}EwHartBeatCmd_st;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
EwCmd_st head;
|
||||||
|
uint16_t r_len;
|
||||||
|
uint16_t w_len;
|
||||||
|
uint16_t reate;
|
||||||
|
uint8_t cmd_delay;
|
||||||
|
uint8_t buf[64];
|
||||||
|
}EwBusRW_st;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
EwCmd_st head;
|
||||||
|
uint8_t ack;
|
||||||
|
uint8_t buf[96];
|
||||||
|
}EwBusRWAck_st;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
EwCmd_st head;
|
||||||
|
uint16_t w_len;
|
||||||
|
uint16_t cycle;
|
||||||
|
uint16_t count;
|
||||||
|
uint16_t reate;
|
||||||
|
uint8_t cmd_delay;
|
||||||
|
uint8_t buf[64];
|
||||||
|
}EwClkAmend_st;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
EwCmd_st head;
|
||||||
|
uint16_t reate;
|
||||||
|
uint8_t w_len;
|
||||||
|
uint8_t cmd_delay;
|
||||||
|
uint16_t bitcount;
|
||||||
|
uint8_t buf[64];
|
||||||
|
}EwInspect_st;
|
||||||
|
|
||||||
|
typedef union{
|
||||||
|
EwCmd_st head;
|
||||||
|
EwBusCmd_st busoper01;
|
||||||
|
EwHartBeatCmd_st heartbeat02;
|
||||||
|
EwBusRW_st busrw03;
|
||||||
|
EwBusRWAck_st busrwack03;
|
||||||
|
EwClkAmend_st clkamend04;
|
||||||
|
EwInspect_st inspect05;
|
||||||
|
uint8_t buf[128];
|
||||||
|
|
||||||
|
}EWCmd_un;
|
||||||
|
#pragma pack()
|
||||||
|
EWCmd_un ewcmd_nu;
|
||||||
|
EwHartBeatCmd_st ew_beat_ack;
|
||||||
|
volatile uint8_t ew_app_rec_flag = 0;
|
||||||
|
volatile uint8_t heard_beat_flag = 0;
|
||||||
|
struct rt_event ew_usart0_rx_event;
|
||||||
|
|
||||||
|
//Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
static void EW_AckCmd(EWCmd_un* cmd_un)
|
||||||
|
{
|
||||||
|
uint8_t uc_temp = cmd_un->head.src_addr;
|
||||||
|
uint8_t uc_last_dist = cmd_un->head.dist_addr;
|
||||||
|
uint8_t uc_crc = 0;
|
||||||
|
cmd_un->head.frame_len++;//<2F><><EFBFBD>Ȱ<EFBFBD><C8B0><EFBFBD>CRC
|
||||||
|
cmd_un->head.src_addr = Gpio_GetDeivceAddr();//cmd_un->head.src_addr;
|
||||||
|
cmd_un->head.dist_addr = uc_temp;
|
||||||
|
uc_crc = CheckCRC_8(cmd_un->buf,cmd_un->head.frame_len-1);
|
||||||
|
cmd_un->buf[cmd_un->head.frame_len-1] = uc_crc;
|
||||||
|
ConsoleUsart_send_bytes(cmd_un->buf,cmd_un->head.frame_len);
|
||||||
|
//ConsoleUsart0DMA_send_bytes(cmd_un->yecmdbuf,cmd_un->head.frame_len,10);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void EW_BusCmd01(EWCmd_un* cmd_un)
|
||||||
|
{
|
||||||
|
if(cmd_un->busoper01.oper_cmd == 1)
|
||||||
|
{
|
||||||
|
PowerCalibration_set(cmd_un->busoper01.h_v,cmd_un->busoper01.m_v);
|
||||||
|
EW_DIFF_MOD_H;
|
||||||
|
}else{
|
||||||
|
|
||||||
|
PowerCalibration_set(POWER_DEF_V,POWER_DEF_V-10);
|
||||||
|
EW_BUS_OFF
|
||||||
|
}
|
||||||
|
cmd_un->head.frame_len = sizeof(EwCmd_st);
|
||||||
|
cmd_un->buf[cmd_un->head.frame_len] = 0;
|
||||||
|
cmd_un->head.frame_len++;
|
||||||
|
EW_AckCmd(cmd_un);
|
||||||
|
}
|
||||||
|
static void EW_HeartBeatCmd02(EWCmd_un* cmd_un)
|
||||||
|
{
|
||||||
|
heard_beat_flag = cmd_un->heartbeat02.oper_cmd;
|
||||||
|
memcpy(&ew_beat_ack,cmd_un,sizeof(EwCmd_st));
|
||||||
|
cmd_un->head.frame_len = sizeof(EwCmd_st);
|
||||||
|
cmd_un->buf[cmd_un->head.frame_len] = 0;
|
||||||
|
cmd_un->head.frame_len++;
|
||||||
|
EW_AckCmd(cmd_un);
|
||||||
|
}
|
||||||
|
extern uint16_t EW_DMOD_READ_Timeout;
|
||||||
|
static void EW_RWCmd03(EWCmd_un* cmd_un)
|
||||||
|
{
|
||||||
|
uint8_t auc_ew_head[2];
|
||||||
|
uint8_t uc_ack = 0;
|
||||||
|
uint16_t ul_readlen = cmd_un->busrw03.r_len;
|
||||||
|
auc_ew_head[0] = cmd_un->busrw03.buf[0];
|
||||||
|
auc_ew_head[1] = cmd_un->busrw03.buf[1];
|
||||||
|
if(cmd_un->busrw03.w_len > 0)
|
||||||
|
{
|
||||||
|
__disable_irq();
|
||||||
|
DMod_SendBytes(cmd_un->busrw03.buf,cmd_un->busrw03.w_len, cmd_un->busrw03.reate,ul_readlen);
|
||||||
|
__enable_irq();
|
||||||
|
}
|
||||||
|
delay_ms(cmd_un->busrw03.cmd_delay);
|
||||||
|
if(ul_readlen > 0)
|
||||||
|
{
|
||||||
|
__disable_irq();
|
||||||
|
uc_ack = DMod_FireBusReadDatasV2(cmd_un->busrwack03.buf,ul_readlen,EW_DMOD_READ_Timeout);
|
||||||
|
__enable_irq();
|
||||||
|
if(ul_readlen == 2 && uc_ack == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(auc_ew_head[0] != cmd_un->busrwack03.buf[0] || auc_ew_head[1] != cmd_un->busrwack03.buf[1])
|
||||||
|
{
|
||||||
|
uc_ack = 10;
|
||||||
|
}
|
||||||
|
}else if(ul_readlen > 2 && uc_ack == 0)
|
||||||
|
{
|
||||||
|
if(cmd_un->busrwack03.buf[ul_readlen-1] != CheckCRC_8(cmd_un->busrwack03.buf,ul_readlen-1))
|
||||||
|
{
|
||||||
|
uc_ack = 11;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cmd_un->busrwack03.ack = uc_ack;
|
||||||
|
cmd_un->busrwack03.head.frame_len = sizeof(EwCmd_st) +1+ ul_readlen;
|
||||||
|
EW_AckCmd(cmd_un);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void EW_ClkAmendCmd04(EWCmd_un* cmd_un)
|
||||||
|
{
|
||||||
|
uint16_t us_cycle = cmd_un->clkamend04.cycle;
|
||||||
|
|
||||||
|
__disable_irq();
|
||||||
|
DMod_SendBytes(cmd_un->clkamend04.buf,cmd_un->clkamend04.w_len, cmd_un->clkamend04.reate,0);
|
||||||
|
__enable_irq();
|
||||||
|
delay_ms(cmd_un->clkamend04.cmd_delay);
|
||||||
|
EW_SendTrimSquare(us_cycle,us_cycle>>1,cmd_un->clkamend04.count);
|
||||||
|
cmd_un->busrwack03.ack = 0;
|
||||||
|
cmd_un->busrwack03.head.frame_len = sizeof(EwCmd_st) +1;
|
||||||
|
EW_AckCmd(cmd_un);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void EW_InspectCmd05(EWCmd_un* cmd_un)
|
||||||
|
{
|
||||||
|
uint16_t us_cycle = cmd_un->clkamend04.cycle;
|
||||||
|
uint16_t us_count = 0;
|
||||||
|
us_count = cmd_un->inspect05.bitcount;
|
||||||
|
__disable_irq();
|
||||||
|
DMod_SendBytes(cmd_un->inspect05.buf,cmd_un->inspect05.w_len, cmd_un->inspect05.reate,1);
|
||||||
|
__enable_irq();
|
||||||
|
delay_ms(cmd_un->inspect05.cmd_delay);
|
||||||
|
cmd_un->busrwack03.ack = 0;
|
||||||
|
DMod_ReadInspect_Data(us_count,cmd_un->busrwack03.buf);
|
||||||
|
cmd_un->busrwack03.head.frame_len = sizeof(EwCmd_st) +((us_count+7)>>3)+1;
|
||||||
|
EW_AckCmd(cmd_un);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EW_DoCmd(EWCmd_un* cmd_un)
|
||||||
|
{
|
||||||
|
switch(cmd_un->head.cmd)
|
||||||
|
{
|
||||||
|
case 0x01: EW_BusCmd01(cmd_un);break;
|
||||||
|
case 0x02: EW_HeartBeatCmd02(cmd_un);break;
|
||||||
|
case 0x03: EW_RWCmd03(cmd_un); break;
|
||||||
|
case 0x04: EW_ClkAmendCmd04(cmd_un);break;
|
||||||
|
case 0x05: EW_InspectCmd05(cmd_un);break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void DoHeartBeat()
|
||||||
|
{
|
||||||
|
uint8_t uc_crc;
|
||||||
|
ew_beat_ack.oper_cmd = 1;
|
||||||
|
ew_beat_ack.h_v = Power_GetHPowerV();
|
||||||
|
ew_beat_ack.m_v = Power_GetMPowerV();
|
||||||
|
ew_beat_ack.bus_v = Power_GetBousV();
|
||||||
|
ew_beat_ack.cur = Power_GetCurrent();
|
||||||
|
ew_beat_ack.head.frame_len = sizeof(EwHartBeatCmd_st);
|
||||||
|
uc_crc = CheckCRC_8((uint8_t*)&ew_beat_ack,ew_beat_ack.head.frame_len-1);
|
||||||
|
ew_beat_ack.crc = uc_crc;
|
||||||
|
ConsoleUsart_send_bytes((uint8_t*)&ew_beat_ack,ew_beat_ack.head.frame_len);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EWUsartApp_Task(void* param)
|
||||||
|
{
|
||||||
|
rt_uint32_t event;
|
||||||
|
uint32_t idle_count = 0;
|
||||||
|
UNUSED(param);
|
||||||
|
rt_event_init(&ew_usart0_rx_event, "ew_usart_rx_e", RT_IPC_FLAG_PRIO);
|
||||||
|
ew_app_rec_flag = 0;
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
if(idle_count > 9)
|
||||||
|
{
|
||||||
|
idle_count = 0;
|
||||||
|
if(heard_beat_flag > 0)
|
||||||
|
{
|
||||||
|
DoHeartBeat();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(rt_event_recv(&ew_usart0_rx_event, UART_MC_FRAME_EVENT,RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,100, &event) != RT_EOK)
|
||||||
|
{
|
||||||
|
idle_count++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if((event & UART_MC_FRAME_EVENT) > 0)
|
||||||
|
{
|
||||||
|
ConsoleRxDisable();
|
||||||
|
if(ewcmd_nu.buf[0]=='E' && ewcmd_nu.buf[1] == 'w')
|
||||||
|
{
|
||||||
|
|
||||||
|
if(ewcmd_nu.buf[ewcmd_nu.head.frame_len-1] == CheckCRC_8(ewcmd_nu.buf,ewcmd_nu.head.frame_len-1))
|
||||||
|
{
|
||||||
|
|
||||||
|
EW_DoCmd(&ewcmd_nu);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
ConsoleRxEnable();
|
||||||
|
ew_app_rec_flag = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@brief <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
||||||
|
@param buf Դ<><D4B4><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD>ռ<EFBFBD>
|
||||||
|
@paran len <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
|
||||||
|
@rtv <20><>
|
||||||
|
*/
|
||||||
|
void EW_UsartApp_Push_Cmd(uint8_t* buf, uint16_t len)
|
||||||
|
{
|
||||||
|
if(ew_app_rec_flag > 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(len > sizeof(EWCmd_un))
|
||||||
|
{
|
||||||
|
len = sizeof(EWCmd_un);
|
||||||
|
}
|
||||||
|
rt_memcpy((void*)&ewcmd_nu,buf,len);
|
||||||
|
rt_event_send(&ew_usart0_rx_event,UART_MC_FRAME_EVENT);//<2F><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||||
|
ew_app_rec_flag = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
597
source/elec_det/test/Test.c
Normal file
597
source/elec_det/test/Test.c
Normal file
@@ -0,0 +1,597 @@
|
|||||||
|
#include "base/define.h"
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "hardware/gpio_cfg.h"
|
||||||
|
#include "base/delay.h"
|
||||||
|
#include "hardware/adc_cfg.h"
|
||||||
|
#include "hardware/power.h"
|
||||||
|
#include "base/utility.h"
|
||||||
|
//#include "usartapp.h"
|
||||||
|
#include "driver/jqdriver.h"
|
||||||
|
#include "interface/jqchecker.h"
|
||||||
|
//#include "database.h"
|
||||||
|
#include "driver/XTDriver.h"
|
||||||
|
#include "interface/Basechecker.h"
|
||||||
|
#include "elec_io.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
volatile uint16_t jq_adc_test_buf[2048];
|
||||||
|
|
||||||
|
static void OutGroup1(uint32_t count,uint32_t delay,uint32_t cycle)
|
||||||
|
{
|
||||||
|
__disable_irq();
|
||||||
|
while(count > 0)
|
||||||
|
{
|
||||||
|
PCout(OUTBH_Pin_Nu) = 1;
|
||||||
|
PBout(OUTAH_Pin_Nu) = 1;
|
||||||
|
delay_us(delay);
|
||||||
|
PBout(OUTBL_Pin_Nu) = 0;
|
||||||
|
PBout(OUTAL_Pin_Nu) = 0;
|
||||||
|
delay_us(cycle);
|
||||||
|
PCout(OUTBH_Pin_Nu) = 0;
|
||||||
|
PBout(OUTAH_Pin_Nu) = 0;
|
||||||
|
delay_us(delay);
|
||||||
|
PBout(OUTBL_Pin_Nu) = 1;
|
||||||
|
PBout(OUTAL_Pin_Nu) = 1;
|
||||||
|
delay_us(cycle);
|
||||||
|
count--;
|
||||||
|
}
|
||||||
|
__enable_irq();
|
||||||
|
}
|
||||||
|
static void GpioTest(int argc, char**argv)
|
||||||
|
{
|
||||||
|
uint32_t io_value = 0;
|
||||||
|
uint32_t count = 0,delay,cycle;
|
||||||
|
if (argc < 3)
|
||||||
|
{
|
||||||
|
goto IO_help_label_;
|
||||||
|
}
|
||||||
|
if(argc == 3)
|
||||||
|
{
|
||||||
|
io_value = atoi(argv[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!rt_strcmp(argv[1], "LAVC_M"))
|
||||||
|
{
|
||||||
|
PAout(LAVC_M_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "SEG0"))
|
||||||
|
{
|
||||||
|
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG0_Pin_Nu));
|
||||||
|
}else if(!rt_strcmp(argv[1], "R10_ON"))
|
||||||
|
{
|
||||||
|
PBout(R10_ON_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "R510_ON")){
|
||||||
|
PBout(R510_ON_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "LED1")){
|
||||||
|
PBout(LED1_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "IO_APD12")){
|
||||||
|
PBout(IO_APD12_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "LED2")){
|
||||||
|
PBout(LED2_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "OUTAL"))
|
||||||
|
{
|
||||||
|
PBout(OUTAL_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "OUTBL"))
|
||||||
|
{
|
||||||
|
PBout(OUTBL_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "OUTAH"))
|
||||||
|
{
|
||||||
|
PBout(OUTAH_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "R100_ON"))
|
||||||
|
{
|
||||||
|
PCout(R100_ON_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "OUTBH"))
|
||||||
|
{
|
||||||
|
PCout(OUTBH_Pin_Nu) = io_value;
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "Power_ON"))
|
||||||
|
{
|
||||||
|
PCout(POWER_ON_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "SEG4"))
|
||||||
|
{
|
||||||
|
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG4_Pin_Nu));
|
||||||
|
}else if(!rt_strcmp(argv[1], "SEG3"))
|
||||||
|
{
|
||||||
|
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG3_Pin_Nu));
|
||||||
|
}else if(!rt_strcmp(argv[1], "SEG1"))
|
||||||
|
{
|
||||||
|
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG1_Pin_Nu));
|
||||||
|
}else if(!rt_strcmp(argv[1], "SEG2"))
|
||||||
|
{
|
||||||
|
rt_kprintf("Read SEG4 value = %d \n",PCin(SEG2_Pin_Nu));
|
||||||
|
}else if(!rt_strcmp(argv[1], "IO_APD22"))
|
||||||
|
{
|
||||||
|
PCout(IO_APD22_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "IO_APD21"))
|
||||||
|
{
|
||||||
|
PCout(IO_APD21_Pin_Nu) = io_value;
|
||||||
|
}else if(!rt_strcmp(argv[1], "IO_APD11"))
|
||||||
|
{
|
||||||
|
PCout(IO_APD11_Pin_Nu) = io_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(!rt_strcmp(argv[1], "Group1"))
|
||||||
|
{
|
||||||
|
|
||||||
|
count = atoi(argv[2]);
|
||||||
|
delay = atoi(argv[3]);
|
||||||
|
cycle = atoi(argv[4]);
|
||||||
|
OutGroup1(count,delay,cycle);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
IO_help_label_:
|
||||||
|
rt_kprintf("IO [IO_name] 0/1/R \n");
|
||||||
|
rt_kprintf("IO Group[number] count delay cycle \n");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MSH_CMD_EXPORT_ALIAS(GpioTest,IO,I/O Input Output test);
|
||||||
|
|
||||||
|
static void DACTest(int argc, char**argv)
|
||||||
|
{
|
||||||
|
uint32_t da_value = 0;
|
||||||
|
if (argc < 3)
|
||||||
|
{
|
||||||
|
goto DAC_help_label_;
|
||||||
|
}
|
||||||
|
if(argc == 3)
|
||||||
|
{
|
||||||
|
da_value = atoi(argv[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!rt_strcmp(argv[1], "C_H_DAC"))
|
||||||
|
{
|
||||||
|
if(da_value < 125)
|
||||||
|
{
|
||||||
|
rt_kprintf("C_H_DAC Min value 1400");
|
||||||
|
}else{
|
||||||
|
C_H_DAC_Set(da_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "C_M_DAC"))
|
||||||
|
{
|
||||||
|
C_M_DAC_Set(da_value);
|
||||||
|
}else{
|
||||||
|
DAC_help_label_:
|
||||||
|
rt_kprintf("DA [C_H_DAC/C_M_DAC] Value(0~4096) \n");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
MSH_CMD_EXPORT_ALIAS(DACTest,DA,Out DA Voltage);
|
||||||
|
static void ADCTest(int argc, char**argv)
|
||||||
|
{
|
||||||
|
uint16_t adv;
|
||||||
|
uint16_t ul_count = 0;
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
goto ADC_help_label_;
|
||||||
|
}else if(!rt_strcmp(argv[1], "V_LA_M"))
|
||||||
|
{
|
||||||
|
GetADC1_Value(V_LA_M_CH,&adv,1);
|
||||||
|
rt_kprintf("V_LA_M = %d \n",adv);
|
||||||
|
}else if(!rt_strcmp(argv[1], "V_LA_H"))
|
||||||
|
{
|
||||||
|
GetADC1_Value(V_LA_H_CH,&adv,1);
|
||||||
|
rt_kprintf("V_LA_H = %d \n",adv);
|
||||||
|
}else if(!rt_strcmp(argv[1], "VCC_2V5"))
|
||||||
|
{
|
||||||
|
GetADC1_Value(VCC_2V5_CH,&adv,1);
|
||||||
|
rt_kprintf("VCC_2V5 = %d \n",adv);
|
||||||
|
}else if(!rt_strcmp(argv[1], "VCC_1V25"))
|
||||||
|
{
|
||||||
|
GetADC1_Value(VCC_1V25_CH,&adv,1);
|
||||||
|
rt_kprintf("VCC_1V25 = %d \n",adv);
|
||||||
|
}else if(!rt_strcmp(argv[1], "RAD_01"))
|
||||||
|
{
|
||||||
|
GetADC1_Value(RAD_01_CH,&adv,1);
|
||||||
|
rt_kprintf("RAD_01 = %d \n",adv);
|
||||||
|
}else if(!rt_strcmp(argv[1], "AD_OUTA"))
|
||||||
|
{
|
||||||
|
GetADC1_Value(AD_OUTA_CH,&adv,1);
|
||||||
|
rt_kprintf("AD_OUTA = %d \n",adv);
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "AD_OUTB"))
|
||||||
|
{
|
||||||
|
GetADC1_Value(AD_OUTB_CH,&adv,1);
|
||||||
|
rt_kprintf("AD_OUTB = %d \n",adv);
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "V_BASE"))
|
||||||
|
{
|
||||||
|
GetADC1_Value(ADC_Channel_17,&adv,1);
|
||||||
|
rt_kprintf("V_BASE = %d \n",adv);
|
||||||
|
}else if(!rt_strcmp(argv[1], "TEMP"))
|
||||||
|
{
|
||||||
|
GetADC1_Value(ADC_Channel_16,&adv,1);
|
||||||
|
rt_kprintf("TEMP = %d \n",adv);
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "AN_UA"))
|
||||||
|
{
|
||||||
|
StartADC2Channel(AN_UA_CH,ADC_SPEED_MIDLE);
|
||||||
|
rt_kprintf("AN_UA = %d \n",GetADC1_Fast());
|
||||||
|
}else if(!rt_strcmp(argv[1], "AN_MAL"))
|
||||||
|
{
|
||||||
|
StartADC2Channel(AN_MAL_CH,ADC_SPEED_MIDLE);
|
||||||
|
rt_kprintf("AN_MAL = %d \n",GetADC1_Fast());
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "FMA"))
|
||||||
|
{
|
||||||
|
JQBUS_OFF;
|
||||||
|
rt_kprintf("Close Bus \n");
|
||||||
|
delay_ms(1000);
|
||||||
|
rt_kprintf("Open Bus \n");
|
||||||
|
POWER_ON;
|
||||||
|
StartADC2Channel(AN_MAL_CH,ADC_SPEED_HIGH);
|
||||||
|
Power_SetSampleCurrentRange(R100_0p2mA_3mA_MC);
|
||||||
|
JQBUS_ON;
|
||||||
|
delay_ms(1);
|
||||||
|
ul_count = 0;
|
||||||
|
while(ul_count < 2048)
|
||||||
|
{
|
||||||
|
jq_adc_test_buf[ul_count++] = GetADC1_Fast();
|
||||||
|
}
|
||||||
|
ul_count = 0;
|
||||||
|
rt_kprintf("Sample data \n");
|
||||||
|
while(ul_count < 2048)
|
||||||
|
{
|
||||||
|
rt_kprintf("%d\t%d\t%d\t%d\n",jq_adc_test_buf[ul_count],jq_adc_test_buf[ul_count+1],jq_adc_test_buf[ul_count+2],jq_adc_test_buf[ul_count+3]);
|
||||||
|
ul_count +=4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "FUA"))
|
||||||
|
{
|
||||||
|
JQBUS_OFF;
|
||||||
|
rt_kprintf("Close Bus \n");
|
||||||
|
delay_ms(1000);
|
||||||
|
rt_kprintf("Open Bus \n");
|
||||||
|
StartADC2Channel(AN_UA_CH,ADC_SPEED_HIGH);
|
||||||
|
POWER_ON;
|
||||||
|
Power_SetSampleCurrentRange(R10_0p1mA_1p6mA_UC);
|
||||||
|
JQBUS_ON;
|
||||||
|
delay_ms(1);
|
||||||
|
ul_count = 0;
|
||||||
|
while(ul_count < 2048)
|
||||||
|
{
|
||||||
|
jq_adc_test_buf[ul_count++] = GetADC1_Fast();
|
||||||
|
}
|
||||||
|
ul_count = 0;
|
||||||
|
rt_kprintf("Sample data \n");
|
||||||
|
while(ul_count < 2048)
|
||||||
|
{
|
||||||
|
rt_kprintf("%d\t%d\t%d\t%d\n",jq_adc_test_buf[ul_count],jq_adc_test_buf[ul_count+1],jq_adc_test_buf[ul_count+2],jq_adc_test_buf[ul_count+3]);
|
||||||
|
ul_count +=4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
ADC_help_label_:
|
||||||
|
rt_kprintf("AD [ChannelName] \n");
|
||||||
|
rt_kprintf("AD FUA / FMA \n");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
MSH_CMD_EXPORT_ALIAS(ADCTest,AD,Get AD Value);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void PowerTest(int argc, char**argv)
|
||||||
|
{
|
||||||
|
PowerInfo_st infos_st;
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
goto FB_help_label_;
|
||||||
|
}else if(!rt_strcmp(argv[1], "ON"))
|
||||||
|
{
|
||||||
|
POWER_ON
|
||||||
|
}else if(!rt_strcmp(argv[1], "OFF"))
|
||||||
|
{
|
||||||
|
POWER_OFF
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "HV"))
|
||||||
|
{
|
||||||
|
|
||||||
|
rt_kprintf("POWER HV(10) %d \n" , Power_GetHPowerV());
|
||||||
|
}else if(!rt_strcmp(argv[1], "MV"))
|
||||||
|
{
|
||||||
|
rt_kprintf("POWER MV(10) %d \n" , Power_GetMPowerV());
|
||||||
|
}else if(!rt_strcmp(argv[1], "CURRENT")){
|
||||||
|
rt_kprintf("CURRENT 0.1uA %d \n" , Power_GetCurrent());
|
||||||
|
}else if(!rt_strcmp(argv[1], "SET"))
|
||||||
|
{
|
||||||
|
infos_st.V_LAH = atoi(argv[2]);
|
||||||
|
infos_st.V_LAM = atoi(argv[3]);
|
||||||
|
infos_st.V_LAH_DAC = 0;
|
||||||
|
infos_st.V_LAM_DAC = 0;
|
||||||
|
PowerCalibration(&infos_st);
|
||||||
|
if( infos_st.V_LAH_DAC > 0)
|
||||||
|
PowerSetVoltage(&infos_st);
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
FB_help_label_:
|
||||||
|
rt_kprintf("POWER [ ON |HV | MV | CURRENT] \n");
|
||||||
|
rt_kprintf("POWER [SET] [HV max 260] [MV ] \n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MSH_CMD_EXPORT_ALIAS(PowerTest ,POWER, BUS POWER );
|
||||||
|
|
||||||
|
|
||||||
|
extern Checker_RunCfg_st checker_runcfg;
|
||||||
|
static void CheckerTest(int argc, char**argv)
|
||||||
|
{
|
||||||
|
uint32_t h_power,m_power;
|
||||||
|
uint16_t us_array[20];
|
||||||
|
uint8_t* puc_buf;
|
||||||
|
uint16_t us_temp;
|
||||||
|
rt_memset(&checker_runcfg,0,sizeof(Checker_RunCfg_st));
|
||||||
|
if(argc > 2)
|
||||||
|
{
|
||||||
|
checker_runcfg.param_count = argc-2;
|
||||||
|
us_temp = 0;
|
||||||
|
while(us_temp < checker_runcfg.param_count)
|
||||||
|
{
|
||||||
|
checker_runcfg.params[us_temp] = atoi(argv[us_temp+2]);
|
||||||
|
us_temp++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
goto CH_help_label_;
|
||||||
|
}else if(!rt_strcmp(argv[1], "ON")){
|
||||||
|
JQBUS_ON
|
||||||
|
}else if(!rt_strcmp(argv[1], "OFF")){
|
||||||
|
JQBUS_OFF
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "H")){
|
||||||
|
JQBUS_W_1
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "L")){
|
||||||
|
JQBUS_W_0
|
||||||
|
}else if(!rt_strcmp(argv[1], "CURRENT")){
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "PowerPrapare")){
|
||||||
|
|
||||||
|
Checker_PowerPrapare();
|
||||||
|
rt_kprintf("PowerPrapare Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "PowerOn")){
|
||||||
|
checker_runcfg.rtv_count = 2;
|
||||||
|
JQ_Test_PowerOn();
|
||||||
|
rt_kprintf("PowerOn Excute %d BusV %d Energy %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1] );
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetBusV")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
JQ_Test_SetBusV();
|
||||||
|
rt_kprintf("SetBusV Excute %d BusV %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0] );
|
||||||
|
}else if(!rt_strcmp(argv[1], "BaseCur")){
|
||||||
|
checker_runcfg.rtv_count = 2;
|
||||||
|
JQ_Test_BaseCur();
|
||||||
|
rt_kprintf("BaseCur Excute %d BusCur1 %d BusCur2 %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1] );
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "ScanUID")){
|
||||||
|
checker_runcfg.rtv_count = 8;
|
||||||
|
JQ_Test_ScanUID();
|
||||||
|
rt_kprintf("ScanUID excute %d, max_cur %d, max_time %d, min_cur %d, min_time %d UID\t",\
|
||||||
|
checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1],checker_runcfg.Test_Rtv[2],checker_runcfg.Test_Rtv[3]);
|
||||||
|
us_temp = 0;
|
||||||
|
while(us_temp < 4)
|
||||||
|
{
|
||||||
|
printf("%02x ",(checker_runcfg.Test_Rtv[us_temp+4]) & 0x0FF);
|
||||||
|
printf("%02x ",(checker_runcfg.Test_Rtv[us_temp+4]>>8) & 0x0FF);
|
||||||
|
us_temp++;
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadChipID")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
JQ_Test_ReadChipID();
|
||||||
|
printf("ReadChipID Excute %d ChipID %04x \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "PWCheck")){
|
||||||
|
JQ_Test_PWCheck();
|
||||||
|
printf("PWCheck Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "OTPCheck")){
|
||||||
|
JQ_Test_OTPCheck();
|
||||||
|
printf("OTPCheck Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "FTCheck")){
|
||||||
|
JQ_Test_FTCheck();
|
||||||
|
printf("FTCheck Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadState")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
JQ_Test_ReadState();
|
||||||
|
printf("ReadState Excute %d State %02x\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WriteUserInfo")){
|
||||||
|
JQ_Test_WriteUserInfo();
|
||||||
|
printf("WriteUserInfo Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ChgEnergy")){
|
||||||
|
checker_runcfg.rtv_count = 4;
|
||||||
|
JQ_Test_ChgEnergy();
|
||||||
|
printf("ReadState Excute %d Energy_0.1ms %d ",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
printf("EndCur_0.1uA %d ",checker_runcfg.Test_Rtv[1]);
|
||||||
|
printf("MaxCur_0.1mA %d ",checker_runcfg.Test_Rtv[2]);
|
||||||
|
printf("ShakeADV %d \n",checker_runcfg.Test_Rtv[3]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "CheckDAC")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
JQ_Test_CheckDAC();
|
||||||
|
printf("CheckDAC Excute %d End_DAC %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WaitDelay")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
Checker_WaitDelay();
|
||||||
|
printf("CheckDAC Excute %d End_DAC %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetDelay")){
|
||||||
|
JQ_Test_SetDelay();
|
||||||
|
printf("SetDelay Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadDelay")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
JQ_Test_ReadDelay();
|
||||||
|
printf("ReadDelay Excute %d Delay %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ClkTrim")){
|
||||||
|
JQ_Test_ClkTrim();
|
||||||
|
printf("ClkTrim Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Discharge")){
|
||||||
|
JQ_Test_Discharge();
|
||||||
|
printf("Discharge Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Reset")){
|
||||||
|
JQ_Test_Reset();
|
||||||
|
printf("Reset Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "BootEn")){
|
||||||
|
JQ_Test_BootEn();
|
||||||
|
printf("BootEn Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ClearBoom")){
|
||||||
|
JQ_Test_ClearBoom();
|
||||||
|
printf("ClearBoom Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "BoomEnergy")){
|
||||||
|
checker_runcfg.rtv_count = 4;
|
||||||
|
JQ_Test_BoomEnergy();
|
||||||
|
printf("BoomEnergy Excute %d Energy_0.1ms %d ",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
printf("PlusShakeADV %d ",checker_runcfg.Test_Rtv[1]);
|
||||||
|
printf("MaxChgCur_0.1mA %d ",checker_runcfg.Test_Rtv[2]);
|
||||||
|
printf("ChgShakeADV %d \n",checker_runcfg.Test_Rtv[3]);
|
||||||
|
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "EnCommEndCur")){
|
||||||
|
JQ_Test_EnCommEndCur();
|
||||||
|
printf("BootEn Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "GetCommEndCur")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
JQ_Test_GetCommEndCur();
|
||||||
|
printf("GetCommEndCur Excute %d CommCur %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "PowerOff")){
|
||||||
|
JQ_Test_PowerOff();
|
||||||
|
printf("PowerOff Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WriteOTP")){
|
||||||
|
HexStrings2Byte(argv+4,argc-4,(uint8_t*)(&checker_runcfg.params[2]),8);
|
||||||
|
JQ_Test_WriteOTP();
|
||||||
|
printf("WriteOTP Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadOTP")){
|
||||||
|
us_temp = checker_runcfg.params[1];
|
||||||
|
checker_runcfg.rtv_count = (us_temp + 1)/2;
|
||||||
|
JQ_Test_ReadOTP();
|
||||||
|
printf("ReadOTP Excute %d ReadDatas ",checker_runcfg.Task_Result[0]);
|
||||||
|
puc_buf = (uint8_t*)checker_runcfg.Test_Rtv;
|
||||||
|
while(us_temp > 0)
|
||||||
|
{
|
||||||
|
printf("%02x ",*puc_buf++);
|
||||||
|
us_temp--;
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}else if(!rt_strcmp(argv[1], "WriteBuf2OTP")){
|
||||||
|
JQ_Test_WriteBuf2OTP();
|
||||||
|
printf("WriteBuf2OTP Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "BindUIDPWD")){
|
||||||
|
|
||||||
|
memcpy(us_array,argv[2],strlen(argv[2]));
|
||||||
|
UidCode_YM2JQ(checker_runcfg.writeuid,(uint8_t*)us_array);
|
||||||
|
m_power = GetPasswordByUidCode((uint8_t*)us_array);
|
||||||
|
memcpy(checker_runcfg.writepwd,(uint8_t*)&m_power ,4);
|
||||||
|
checker_runcfg.pwd_len = 4;
|
||||||
|
checker_runcfg.uid_len = 8;
|
||||||
|
JQ_UID_PWD_Bind();
|
||||||
|
printf("BindUIDPWD Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "VerifyUIDPWD")){
|
||||||
|
JQ_Verify_UID_PWD();
|
||||||
|
printf("VerifyUIDPWD Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(!rt_strcmp(argv[1], "SetHardVer")){
|
||||||
|
HexStrings2Byte(argv+2,argc-2,(uint8_t*)(&boardinfo_un.boardinfo.hard_v),2);
|
||||||
|
SaveBoardInfo();
|
||||||
|
printf("SetHardVer %04x\n",boardinfo_un.boardinfo.hard_v);
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetRsisDiff")){
|
||||||
|
boardinfo_un.boardinfo.resistor_diff = checker_runcfg.params[0];
|
||||||
|
SaveBoardInfo();
|
||||||
|
printf("SetRsisDiff %d\n",boardinfo_un.boardinfo.resistor_diff);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadBoard")){
|
||||||
|
LoadBoardInfo();
|
||||||
|
printf("BootFlag %08x HardVersion %02x RsistorDiff %d\n",\
|
||||||
|
boardinfo_un.boardinfo.bootflag,boardinfo_un.boardinfo.hard_v,boardinfo_un.boardinfo.resistor_diff);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ExcuePlan")){
|
||||||
|
Ye_RunPlanCheckTest();
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "SetWriteBuf")){
|
||||||
|
HexStrings2Byte(argv+2,argc-2,Checker_FacBuf+2,CHECKER_FAC_BUF_LEN-2);
|
||||||
|
if(argc > CHECKER_FAC_BUF_LEN)
|
||||||
|
{
|
||||||
|
Checker_FacBuf[0] = CHECKER_FAC_BUF_LEN-2;
|
||||||
|
}else{
|
||||||
|
Checker_FacBuf[0] = argc-2;
|
||||||
|
}
|
||||||
|
Checker_FacBuf[1] = CheckCRC_8(Checker_FacBuf+2,Checker_FacBuf[0]);
|
||||||
|
printf("SetWriteBuf Excute 0 \n");
|
||||||
|
}else if(!rt_strcmp(argv[1], "ResistorSample")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
Checker_ResistorSample();
|
||||||
|
printf("CheckPWD Excute %d Res(0.01) %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "CapVoltage")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
JQ_Test_CapVoltage();
|
||||||
|
printf("CheckPWD Excute %d Res(0.01) %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "EnOTPW")){
|
||||||
|
JQ_Test_EnOTPW();
|
||||||
|
printf("EnOTPW Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WriteVersion")){
|
||||||
|
JQ_Test_WriteVersion();
|
||||||
|
printf("WriteVersion Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadVersion")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
JQ_Test_ReadVersion();
|
||||||
|
printf("ReadVersion Excute %d Ver %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WriteFacBuff")){
|
||||||
|
JQ_Test_WriteFacBuff();
|
||||||
|
printf("WriteFacBuff Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "VerifyFacBuff")){
|
||||||
|
JQ_Test_VerifyFacBuff();
|
||||||
|
printf("VerifyFacBuff Excute %d ",checker_runcfg.Task_Result[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
else{
|
||||||
|
CH_help_label_:
|
||||||
|
rt_kprintf("CH [ON | OFF | H | L ] \n");
|
||||||
|
rt_kprintf("PowerPrapare [V1,V2,V3...V10] \n");
|
||||||
|
rt_kprintf("PowerOn [Voltage] [TimeOut] [End_ADC_V] \n");
|
||||||
|
rt_kprintf("SetBusV [Voltage] \n");
|
||||||
|
rt_kprintf("BaseCur \n");
|
||||||
|
rt_kprintf("ScanUID [EN_CommCur] [E_UID_Equal_0] \n");
|
||||||
|
rt_kprintf("PWCheck [EN_PW_0] \n");
|
||||||
|
rt_kprintf("ReadChipID \n");
|
||||||
|
rt_kprintf("OTPCheck [EN_UID_PWD_0] [EN_Delay_Re_0] [EN_Factory_0]\n");
|
||||||
|
rt_kprintf("FTCheck \n");
|
||||||
|
rt_kprintf("ReadState [State_Mask] \n");
|
||||||
|
rt_kprintf("WriteUserInfo [2bytes] [2bytes]\n");
|
||||||
|
rt_kprintf("ChgEnergy [End_ADV] [Sample_timeout] [End_Cur_0.1] [Wait_Timeout] [Chg_Hold]\n");
|
||||||
|
rt_kprintf("CheckDAC [Bg_DAC] [End_DAC]\n");
|
||||||
|
rt_kprintf("WaitDelay [Delay_0.1S] [En_Monitor] \n");
|
||||||
|
rt_kprintf("SetDelay [Delay] \n");
|
||||||
|
rt_kprintf("ReadDelay \n");
|
||||||
|
rt_kprintf("ClkTrim [Cycle_us] [Pluse_count] \n");
|
||||||
|
rt_kprintf("Discharge \n");
|
||||||
|
rt_kprintf("Reset \n");
|
||||||
|
rt_kprintf("BoomEnergy [End_ADV] [Plus_Count] [DelaySample_ms]\n");
|
||||||
|
rt_kprintf("BootEn \n");
|
||||||
|
rt_kprintf("ClearBoom \n");
|
||||||
|
rt_kprintf("EnCommEndCur \n");
|
||||||
|
rt_kprintf("GetCommEndCur \n");
|
||||||
|
rt_kprintf("PowerOff \n");
|
||||||
|
rt_kprintf("WriteOTP [OTP_Addr] [Write_Len] [DATA ...]\n");
|
||||||
|
rt_kprintf("ReadOTP [OTP_Addr] [Read_Len] \n");
|
||||||
|
rt_kprintf("WriteBuf2OTP [OTP_Addr] [Buffer_Addr] [WriteLen] \n");
|
||||||
|
rt_kprintf("BindUIDPWD [uid_str] \n");
|
||||||
|
rt_kprintf("VerifyUIDPWD \n");
|
||||||
|
|
||||||
|
rt_kprintf("SetHardVer [HardVersion 2Bytes] \n");
|
||||||
|
rt_kprintf("SetRsisDiff [RsistorDiff *100] \n");
|
||||||
|
rt_kprintf("ReadBoardInfo \n");
|
||||||
|
rt_kprintf("ExcuePlan \n");
|
||||||
|
rt_kprintf("SetWriteBuf [HexData...]\n");
|
||||||
|
rt_kprintf("ResistorSample [Test_Modle]\n");
|
||||||
|
rt_kprintf("CapVoltage [WaitTime 0.1S]\n");
|
||||||
|
rt_kprintf("EnOTPW \n");
|
||||||
|
rt_kprintf("WriteVersion [Product Ver] \n");
|
||||||
|
rt_kprintf("ReadVersion \n");
|
||||||
|
rt_kprintf("WriteFacBuff [otp_addr][buf_bg][w_len] \n");
|
||||||
|
rt_kprintf("VerifyFacBuff [otp_addr][buf_bg][r_len] \n");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
MSH_CMD_EXPORT_ALIAS(CheckerTest ,JCH, BUS POWER );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
303
source/elec_det/test/XTCheckerTest.c
Normal file
303
source/elec_det/test/XTCheckerTest.c
Normal file
@@ -0,0 +1,303 @@
|
|||||||
|
#include "base/define.h"
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "hardware/gpio_cfg.h"
|
||||||
|
#include "base/delay.h"
|
||||||
|
#include "hardware/adc_cfg.h"
|
||||||
|
#include "hardware/power.h"
|
||||||
|
#include "base/utility.h"
|
||||||
|
//#include "usartapp.h"
|
||||||
|
//#include "database.h"
|
||||||
|
#include "driver/XTDriver.h"
|
||||||
|
#include "interface/BaseChecker.h"
|
||||||
|
#include "interface/XTChecker.h"
|
||||||
|
#include "elec_io.h"
|
||||||
|
|
||||||
|
//volatile uint16_t jq_adc_test_buf[2048];
|
||||||
|
static void XTCheckerTest(int argc, char**argv)
|
||||||
|
{
|
||||||
|
uint32_t h_power,m_power;
|
||||||
|
uint16_t us_array[20];
|
||||||
|
uint8_t* puc_buf;
|
||||||
|
uint16_t us_temp;
|
||||||
|
rt_memset(&checker_runcfg.params,0,sizeof(checker_runcfg.params));
|
||||||
|
rt_memset(&checker_runcfg.Task_Result,0,sizeof(checker_runcfg.Task_Result));
|
||||||
|
checker_runcfg.excue_rtv = 0;
|
||||||
|
checker_runcfg.param_count = 0;
|
||||||
|
checker_runcfg.rtv_count = 0;
|
||||||
|
checker_runcfg.rtv_index = 0;
|
||||||
|
checker_runcfg.task_info.runindex = 0;
|
||||||
|
|
||||||
|
if(argc > 2)
|
||||||
|
{
|
||||||
|
checker_runcfg.param_count = argc-2;
|
||||||
|
us_temp = 0;
|
||||||
|
while(us_temp < checker_runcfg.param_count)
|
||||||
|
{
|
||||||
|
checker_runcfg.params[us_temp] = atoi(argv[us_temp+2]);
|
||||||
|
us_temp++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
goto CH_help_label_;
|
||||||
|
}else if(!rt_strcmp(argv[1], "ON")){
|
||||||
|
XTBUS_ON
|
||||||
|
}else if(!rt_strcmp(argv[1], "OFF")){
|
||||||
|
XTBUS_OFF
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "H")){
|
||||||
|
XTBUS_W_1
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "L")){
|
||||||
|
XTBUS_W_0
|
||||||
|
}else if(!rt_strcmp(argv[1], "CURRENT")){
|
||||||
|
rt_kprintf("Bus Cur %d 0.1uA \n",Power_GetCurrent());
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "PowerPrapare")){
|
||||||
|
|
||||||
|
Checker_PowerPrapare();
|
||||||
|
rt_kprintf("PowerPrapare Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "PowerOn")){
|
||||||
|
checker_runcfg.rtv_count = 2;
|
||||||
|
XT_Test_PowerOn();
|
||||||
|
rt_kprintf("PowerOn Excute %d BusV %d Energy %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1] );
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetBusV")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
XT_Test_SetBusV();
|
||||||
|
rt_kprintf("SetBusV Excute %d BusV %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0] );
|
||||||
|
}else if(!rt_strcmp(argv[1], "BaseCur")){
|
||||||
|
checker_runcfg.rtv_count = 2;
|
||||||
|
XT_Test_BaseCur();
|
||||||
|
rt_kprintf("BaseCur Excute %d BusCur1 %d BusCur2 %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1] );
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "ScanUID")){
|
||||||
|
checker_runcfg.rtv_count = (checker_runcfg.params[0]+8+1)/2;
|
||||||
|
XT_Test_ScanUID();
|
||||||
|
rt_kprintf("ScanUID excute %d \t",checker_runcfg.Task_Result[0]);
|
||||||
|
us_temp = 0;
|
||||||
|
while(us_temp < checker_runcfg.rtv_count)
|
||||||
|
{
|
||||||
|
printf("%02x ",(checker_runcfg.Test_Rtv[us_temp]) & 0x0FF);
|
||||||
|
printf("%02x ",(checker_runcfg.Test_Rtv[us_temp]>>8) & 0x0FF);
|
||||||
|
us_temp++;
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}else if(!rt_strcmp(argv[1], "WriteChipCfg")){
|
||||||
|
XT_Test_WriteChipCfg();
|
||||||
|
printf("WriteChipCfg Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "CheckChipCfg")){
|
||||||
|
XT_Test_CheckChipCfg();
|
||||||
|
printf("CheckChipCfg Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "BindTestCode")){
|
||||||
|
XT_Test_BindTestCode();
|
||||||
|
printf("BindTestCode Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ChgEnergy")){
|
||||||
|
checker_runcfg.rtv_count = 4;
|
||||||
|
XT_Test_ChgEnergy();
|
||||||
|
printf("ReadState Excute %d Energy_0.1ms %d ",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
printf("EndCur_0.1uA %d ",checker_runcfg.Test_Rtv[1]);
|
||||||
|
printf("MaxCur_0.1mA %d ",checker_runcfg.Test_Rtv[2]);
|
||||||
|
printf("ShakeADV %d \n",checker_runcfg.Test_Rtv[3]);
|
||||||
|
} else if(!rt_strcmp(argv[1], "WriteRunField")){
|
||||||
|
XT_Test_WriteRunField();
|
||||||
|
printf("WriteRunField Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "CheckRunField")){
|
||||||
|
checker_runcfg.rtv_count = 4;
|
||||||
|
XT_Test_CheckRunField();
|
||||||
|
printf("ReadState Excute %d MaxCur %d MaxTime %d MinCur %d MinTime %d\n",checker_runcfg.Task_Result[0],\
|
||||||
|
checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1],checker_runcfg.Test_Rtv[2],checker_runcfg.Test_Rtv[3]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Resister")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
XT_Test_Resister();
|
||||||
|
printf("Resister Excute %d R_adc %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Cap")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
XT_Test_Cap();
|
||||||
|
printf("Cap Excute %d Cap %d 0.1uf\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WaitDelay")){
|
||||||
|
Checker_WaitDelay();
|
||||||
|
printf("Cap Excute %d C\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "WriteShell")){
|
||||||
|
XT_Test_WriteShell();
|
||||||
|
printf("WriteShell Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WriteUID")){
|
||||||
|
XT_Test_WriteUID();
|
||||||
|
printf("WriteUID Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "WritePWD")){
|
||||||
|
XT_Test_WritePWD();
|
||||||
|
printf("WritePWD Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "CheckBackFlag")){
|
||||||
|
XT_Test_CheckBackFlag();
|
||||||
|
printf("CheckBackFlag Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadBackFlag")){
|
||||||
|
checker_runcfg.rtv_count = 2;
|
||||||
|
XT_Test_ReadBackFlag();
|
||||||
|
printf("Discharge Excute %d BackBytes %04X %04X\n ",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Trim")){
|
||||||
|
XT_Test_Trim();
|
||||||
|
printf("Trim Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Discharge")){
|
||||||
|
XT_Test_Discharge();
|
||||||
|
printf("Discharge Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "EnCommEndCur")){
|
||||||
|
XT_Test_EnCommEndCur();
|
||||||
|
printf("EnCommEndCur Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "GetCommEndCur")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
XT_Test_GetCommEndCur();
|
||||||
|
printf("GetCommEndCur Excute %d Cur_ADC %d ",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "OneLineCheck")){
|
||||||
|
XT_Test_OneLineCheck();
|
||||||
|
printf("OneLineCheck Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "CheckState")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
XT_Test_CheckState();
|
||||||
|
printf("CheckState Excute %d CommCur %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Boom")){
|
||||||
|
checker_runcfg.rtv_count = 2;
|
||||||
|
XT_Test_Boom();
|
||||||
|
printf("Boom Excute %d delay %d 0.1ms net_id %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[1],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "Reset")){
|
||||||
|
XT_Test_Reset();
|
||||||
|
printf("Reset Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "PowerOFF")){
|
||||||
|
XT_Test_PowerOFF();
|
||||||
|
printf("PowerOFF Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "LockCmdC")){
|
||||||
|
XT_Test_LockCmdC();
|
||||||
|
printf("LockCmdC Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "CodeBindEn")){
|
||||||
|
XT_Test_CodeBindEn();
|
||||||
|
printf("LockCmdC Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetWriteBuf")){
|
||||||
|
Checker_FacBuf[0] = strlen(argv[2]);
|
||||||
|
memcpy(Checker_FacBuf+2,argv[2],Checker_FacBuf[0]);
|
||||||
|
Checker_FacBuf[1] = CheckCRC_8(Checker_FacBuf+2,Checker_FacBuf[0]);
|
||||||
|
printf("SetWriteBuf Excute 0 \n");
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetWriteBufHex")){
|
||||||
|
HexStrings2Byte(argv+2,argc-2,Checker_FacBuf+2,48);
|
||||||
|
Checker_FacBuf[0] = argc-2;
|
||||||
|
Checker_FacBuf[1] = CheckCRC_8(Checker_FacBuf+2,Checker_FacBuf[0]);
|
||||||
|
printf("SetWriteBufHex Excute 0 \n");
|
||||||
|
}else if(!rt_strcmp(argv[1], "InputCheck")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
XT_Test_InputCheck();
|
||||||
|
printf("InputCheck Excute %d BusVoltage %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "CheckPWD")){
|
||||||
|
XT_Test_CheckPWD();
|
||||||
|
printf("CheckPWD Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
|
||||||
|
}else if(!rt_strcmp(argv[1], "UID_PWD_Bind")){
|
||||||
|
|
||||||
|
printf("UID_PWD_Bind Excute %d \n",XT_UID_PWD_Bind());
|
||||||
|
}else if(!rt_strcmp(argv[1], "ResistorSample")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
Checker_ResistorSample();
|
||||||
|
printf("ResistorSample Excute %d Res(0.01) %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "LoadChipCfg")){
|
||||||
|
checker_runcfg.rtv_count = 4;
|
||||||
|
XT_Test_LoadChipCfg();
|
||||||
|
printf("LoadChipCfg Excute %d UID_LEN %d PWD_LEN %d CUR_CLASS %d Ver %d\n",\
|
||||||
|
checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1],checker_runcfg.Test_Rtv[3],checker_runcfg.Test_Rtv[2]);
|
||||||
|
}
|
||||||
|
else if(!rt_strcmp(argv[1], "CapVoltage")){
|
||||||
|
checker_runcfg.rtv_count = 1;
|
||||||
|
XT_Test_CapVoltage();
|
||||||
|
printf("CheckPWD Excute %d Res(0.01) %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "BindUIDPWD")){
|
||||||
|
|
||||||
|
memcpy(us_array,argv[2],strlen(argv[2]));
|
||||||
|
UidCode_YM2JQ(checker_runcfg.writeuid,(uint8_t*)us_array);
|
||||||
|
|
||||||
|
m_power = GetPasswordByUidCode((uint8_t*)us_array);
|
||||||
|
memcpy(checker_runcfg.writepwd,(uint8_t*)&m_power ,4);
|
||||||
|
|
||||||
|
checker_runcfg.pwd_len = 4;
|
||||||
|
checker_runcfg.uid_len = 8;
|
||||||
|
XT_Test_UID_PWD_Bind();
|
||||||
|
printf("BindUIDPWD Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "VerifyUIDPWD")){
|
||||||
|
XT_Test_UID_PWD_Verify();
|
||||||
|
printf("VerifyUIDPWD Excute %d \n",checker_runcfg.Task_Result[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
else if(!rt_strcmp(argv[1], "SetHardVer")){
|
||||||
|
HexStrings2Byte(argv+2,argc-2,(uint8_t*)(&boardinfo_un.boardinfo.hard_v),2);
|
||||||
|
SaveBoardInfo();
|
||||||
|
printf("SetHardVer %04x\n",boardinfo_un.boardinfo.hard_v);
|
||||||
|
}else if(!rt_strcmp(argv[1], "SetRsisDiff")){
|
||||||
|
boardinfo_un.boardinfo.resistor_diff = checker_runcfg.params[0];
|
||||||
|
SaveBoardInfo();
|
||||||
|
printf("SetRsisDiff %d\n",boardinfo_un.boardinfo.resistor_diff);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ReadBoard")){
|
||||||
|
LoadBoardInfo();
|
||||||
|
printf("BootFlag %08x HardVersion %02x RsistorDiff %d\n PlanID " ,\
|
||||||
|
boardinfo_un.boardinfo.bootflag,boardinfo_un.boardinfo.hard_v,boardinfo_un.boardinfo.resistor_diff);
|
||||||
|
}else if(!rt_strcmp(argv[1], "ExcuePlan")){
|
||||||
|
Ye_RunPlanCheckTest();
|
||||||
|
}else if(!rt_strcmp(argv[1], "CurMonitor")){
|
||||||
|
XT_CurMonitor();
|
||||||
|
printf("CurMonitor Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}else if(!rt_strcmp(argv[1], "VerfyShell")){
|
||||||
|
XT_Test_VerfyShell();
|
||||||
|
printf("VerfyShell Excute %d\n",checker_runcfg.Task_Result[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
else{
|
||||||
|
CH_help_label_:
|
||||||
|
rt_kprintf("CH [ON | OFF | H | L ] \n");
|
||||||
|
rt_kprintf("PowerPrapare [V1,V2,V3...V10] \n");
|
||||||
|
rt_kprintf("PowerOn [Voltage] [TimeOut] [End_ADC_V] \n");
|
||||||
|
rt_kprintf("SetBusV [Voltage] \n");
|
||||||
|
rt_kprintf("BaseCur \n");
|
||||||
|
rt_kprintf("ScanUID [UID_LEN] [E_UID_Equal_0]\n");
|
||||||
|
rt_kprintf("WriteChipCfg [UID_LEN] [PWD_LEN] [FreeBack_Class] [Ver] \n");
|
||||||
|
rt_kprintf("CheckChipCfg [UID_LEN] [PWD_LEN] [FreeBack_Class] [Ver] \n");
|
||||||
|
rt_kprintf("BindTestCode \n");
|
||||||
|
rt_kprintf("ChgEnergy [Vol_Class] [End_ADV] [End_Cur_0.1] [Wait_Timeout] [Chg_Hold]\n");
|
||||||
|
rt_kprintf("WriteRunField [Net_ID] [Delay] [Local_Num]\n");
|
||||||
|
rt_kprintf("CheckRunField [Net_ID] [Delay] [Local_Num] [En_Freebakc_0]\n");
|
||||||
|
rt_kprintf("Resister \n");
|
||||||
|
rt_kprintf("Cap [Chg_Class][Measure_Time]\n");
|
||||||
|
rt_kprintf("WriteShell [Buf_Bg] [Len] \n");
|
||||||
|
rt_kprintf("WaitDelay [Delay_0.1S] [En_Monitor] \n");
|
||||||
|
rt_kprintf("WriteUID [Buf_Bg] [Len] \n");
|
||||||
|
rt_kprintf("WritePWD [Buf_Bg] [Len]\n");
|
||||||
|
rt_kprintf("CheckBackFlag [EN_1Checke_0Write] [2BytesMask] [2BytesData]\n");
|
||||||
|
rt_kprintf("ReadBackFlag \n");
|
||||||
|
rt_kprintf("Trim [Trim_Mode][Cycle][Count]\n");
|
||||||
|
rt_kprintf("Discharge \n");
|
||||||
|
rt_kprintf("EnCommEndCur \n");
|
||||||
|
rt_kprintf("GetCommEndCur \n");
|
||||||
|
rt_kprintf("OneLineCheck [NetID] [MaxNetId]\n");
|
||||||
|
rt_kprintf("CheckState [StateMask] \n");
|
||||||
|
rt_kprintf("Boom [Monitor_time]\n");
|
||||||
|
rt_kprintf("Reset \n");
|
||||||
|
rt_kprintf("PowerOFF \n");
|
||||||
|
rt_kprintf("LockCmdC \n");
|
||||||
|
rt_kprintf("CodeBindEn \n");
|
||||||
|
rt_kprintf("InputCheck [BusVoltage][TimeOut_1ms]\n");
|
||||||
|
rt_kprintf("CheckPWD \n");
|
||||||
|
rt_kprintf("SetHardVer [HardVersion 2Bytes] \n");
|
||||||
|
rt_kprintf("SetRsisDiff [RsistorDiff *100] \n");
|
||||||
|
rt_kprintf("ReadBoardInfo \n");
|
||||||
|
rt_kprintf("SetWriteBuf [HexData...]\n");
|
||||||
|
rt_kprintf("ResistorSample [Test_Modle]\n");
|
||||||
|
rt_kprintf("CapVoltage [WaitTime 0.1S]\n");
|
||||||
|
rt_kprintf("BindUIDPWD [uid_str] \n");
|
||||||
|
rt_kprintf("VerifyUIDPWD \n");
|
||||||
|
rt_kprintf("OnlineScan [BusV][TimeOUt][UIDLen] \n");
|
||||||
|
rt_kprintf("VerfyShell [buf_bg][len] \n");
|
||||||
|
rt_kprintf("ExcuePlan \n");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
MSH_CMD_EXPORT_ALIAS(XTCheckerTest ,XCH, XT CHecker );
|
||||||
|
|
||||||
|
|
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define BUILD_DATE "2023-10-11 17:33:01"
|
#define BUILD_DATE "2023-10-12 18:40:51"
|
||||||
#define SOFT_VERSION "0.03"
|
#define SOFT_VERSION "0.03"
|
||||||
|
|
||||||
|
|
||||||
|
@@ -494,5 +494,22 @@ transmit_export(ym_slave,0x13,bootinfo)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 写缓存
|
||||||
|
static int write_fatbuf_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str)
|
||||||
|
{
|
||||||
|
emit tran_reply_signal(u->p,arr_temp(elec_write_fat_buff(data)));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
static ucport_def *write_fatbuf(tran_def *t, uint8_t cmd,array_def *data)
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
slave_def *u=slave_creat();
|
||||||
|
u->u.p=t;
|
||||||
|
u->u.del=slave_del;
|
||||||
|
u->u.dolater=write_fatbuf_dolater;
|
||||||
|
u->u.dolater(&u->u,cmd,data,"ok");
|
||||||
|
return (ucport_def *)u;
|
||||||
|
}
|
||||||
|
transmit_export(ym_slave,0x19,write_fatbuf)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user