mirror of
https://github.com/hathach/tinyusb.git
synced 2025-03-24 07:43:38 +00:00
add binary const & its test code
This commit is contained in:
parent
3d8babcb14
commit
0c1d4f705b
@ -39,8 +39,6 @@
|
||||
#include "unity.h"
|
||||
#include "common/binary.h"
|
||||
|
||||
#define TT(a, ...) printf(a, ##__VA_ARGS__)
|
||||
|
||||
void setUp(void)
|
||||
{
|
||||
}
|
||||
@ -49,7 +47,43 @@ void tearDown(void)
|
||||
{
|
||||
}
|
||||
|
||||
void test_binary_byte()
|
||||
void test_binary_8()
|
||||
{
|
||||
TEST_IGNORE();
|
||||
TEST_ASSERT_EQUAL_HEX8(0x00, BIN8(00000000));
|
||||
TEST_ASSERT_EQUAL_HEX8(0x01, BIN8(00000001));
|
||||
TEST_ASSERT_EQUAL_HEX8(0x02, BIN8(00000010));
|
||||
TEST_ASSERT_EQUAL_HEX8(0x04, BIN8(00000100));
|
||||
TEST_ASSERT_EQUAL_HEX8(0x08, BIN8(00001000));
|
||||
TEST_ASSERT_EQUAL_HEX8(0x10, BIN8(00010000));
|
||||
TEST_ASSERT_EQUAL_HEX8(0x20, BIN8(00100000));
|
||||
TEST_ASSERT_EQUAL_HEX8(0x40, BIN8(01000000));
|
||||
TEST_ASSERT_EQUAL_HEX8(0x80, BIN8(10000000));
|
||||
|
||||
TEST_ASSERT_EQUAL_HEX8(0x0f, BIN8(00001111));
|
||||
TEST_ASSERT_EQUAL_HEX8(0xf0, BIN8(11110000));
|
||||
TEST_ASSERT_EQUAL_HEX8(0xff, BIN8(11111111));
|
||||
}
|
||||
|
||||
void test_binary_16()
|
||||
{
|
||||
TEST_ASSERT_EQUAL_HEX16(0x0000, BIN16(00000000, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX16(0x000f, BIN16(00000000, 00001111));
|
||||
TEST_ASSERT_EQUAL_HEX16(0x00f0, BIN16(00000000, 11110000));
|
||||
TEST_ASSERT_EQUAL_HEX16(0x0f00, BIN16(00001111, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX16(0xf000, BIN16(11110000, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX16(0xffff, BIN16(11111111, 11111111));
|
||||
}
|
||||
|
||||
void test_binary_32()
|
||||
{
|
||||
TEST_ASSERT_EQUAL_HEX32(0x00000000, BIN32(00000000, 00000000, 00000000, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX32(0x0000000f, BIN32(00000000, 00000000, 00000000, 00001111));
|
||||
TEST_ASSERT_EQUAL_HEX32(0x000000f0, BIN32(00000000, 00000000, 00000000, 11110000));
|
||||
TEST_ASSERT_EQUAL_HEX32(0x00000f00, BIN32(00000000, 00000000, 00001111, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX32(0x0000f000, BIN32(00000000, 00000000, 11110000, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX32(0x000f0000, BIN32(00000000, 00001111, 00000000, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX32(0x00f00000, BIN32(00000000, 11110000, 00000000, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX32(0x0f000000, BIN32(00001111, 00000000, 00000000, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX32(0xf0000000, BIN32(11110000, 00000000, 00000000, 00000000));
|
||||
TEST_ASSERT_EQUAL_HEX32(0xffffffff, BIN32(11111111, 11111111, 11111111, 11111111));
|
||||
}
|
||||
|
@ -66,11 +66,12 @@
|
||||
/// clear n-th bit of x
|
||||
#define BIT_CLR_(x, n) ( (x) & (~BIT_(n)) )
|
||||
|
||||
|
||||
#if defined(__GNUC__)
|
||||
|
||||
#define BIN8(x) (0b##x)
|
||||
#define BIN16 BIN8
|
||||
#define BIN32 BIN8
|
||||
#define BIN8(x) (0b##x)
|
||||
#define BIN16(b1, b2) (0b##b1##b2)
|
||||
#define BIN32(b1, b2, b3, b4) (0b##b1##b2##b3##b4)
|
||||
|
||||
#else
|
||||
|
||||
@ -85,12 +86,12 @@
|
||||
+((x&0xF0000000LU)?128:0)
|
||||
|
||||
#define BIN8(d) ((uint8_t)_B8__(0x##d##LU))
|
||||
#define BIN16(dmsb,dlsb) (((uint16_t)B8(dmsb)<<8) + B8(dlsb))
|
||||
#define BIN16(dmsb,dlsb) (((uint16_t)BIN8(dmsb)<<8) + BIN8(dlsb))
|
||||
#define BIN32(dmsb,db2,db3,dlsb) \
|
||||
(((uint32_t)B8(dmsb)<<24) \
|
||||
+ ((uint32_t)B8(db2)<<16) \
|
||||
+ ((uint32_t)B8(db3)<<8) \
|
||||
+ B8(dlsb))
|
||||
(((uint32_t)BIN8(dmsb)<<24) \
|
||||
+ ((uint32_t)BIN8(db2)<<16) \
|
||||
+ ((uint32_t)BIN8(db3)<<8) \
|
||||
+ BIN8(dlsb))
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
Loading…
x
Reference in New Issue
Block a user