之前写的乱七八糟一大堆1
利用rt_kprintf()输出有疑问的变量或其他,但是注意, 修改是做下标记 !!
例如:
rt_kprintf("EventGet-eEvent: %x \r\n", eEvent); //... 或 //srb11-24
标记统一,便于后期删改,全局搜索 “//...” 即可!!!
关于命名规则
无论是变量、文件还是函数,都适用。
可跟随编程环境/系统。
例如,使用RT_Thread框架编程,命名均是小写加下划线,
1、大小驼峰
//eg:
struct SmiDevice
{
};
?
//eg:
uint8_t PidControl = 1;
2、小写加下划线
//eg:
drv_pwm.c
drv_soft_i2c.c
i2c_core.c
i2c_dev.c
//eg: 以下为i2c类的封装
/***************************************************************************************/
stm32_i2c -> rt_i2c_bus_device -> rt_device
-> rt_object(name,type,flag) [rt_list_t list; /**< list node of kernel object */]
/***************************************************************************************/
/* stm32 i2c dirver class */
struct stm32_i2c
{
struct rt_i2c_bit_ops ops;
struct rt_i2c_bus_device i2c2_bus;
};
struct rt_i2c_bit_ops
{
void *data; /* private data for lowlevel routines */
void (*set_sda)(void *data, rt_int32_t state);
void (*set_scl)(void *data, rt_int32_t state);
rt_int32_t (*get_sda)(void *data);
rt_int32_t (*get_scl)(void *data);
?
void (*udelay)(rt_uint32_t us);
?
rt_uint32_t delay_us; /* scl and sda line delay */
rt_uint32_t timeout; /* in tick */
};
/*for i2c bus driver*/
struct rt_i2c_bus_device
{
struct rt_device parent;
const struct rt_i2c_bus_device_ops *ops;
rt_uint16_t flags;
rt_uint16_t addr;
struct rt_mutex lock;
rt_uint32_t timeout;
rt_uint32_t retries;
void *priv;
};
?
/**
* Device structure
*/
struct rt_device
{
struct rt_object parent; /**< inherit from rt_object */
?
enum rt_device_class_type type; /**< device type */
rt_uint16_t flag; /**< device flag */
rt_uint16_t open_flag; /**< device open flag */
?
rt_uint8_t ref_count; /**< reference count */
rt_uint8_t device_id; /**< 0 - 255 */
?
/* device call back */
rt_err_t (*rx_indicate)(rt_device_t dev, rt_size_t size);
rt_err_t (*tx_complete)(rt_device_t dev, void *buffer);
?