程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10696|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# s8 O1 M. o' Z. {#include <linux/init.h>
: Z9 s+ a* Y3 ~  Y- e. d! a7 G#include <linux/module.h>4 A4 O: q& y8 f; i7 w4 X: A' ]
#include <linux/kernel.h>
% X5 e% q+ J% g. x( a6 c#include <linux/types.h>
" N. u. ~# Q" d9 T8 o2 ]#include <linux/gpio.h>
7 k* o, ^! ?4 @/ ~! A( G# U#include <linux/leds.h>$ w, V: v7 a! B' }- @. u/ K/ z7 c
#include <linux/platform_device.h>
5 G1 [8 v% M* H. `9 G5 y8 B* l# I% K/ m0 ~1 V
#include <asm/mach-types.h>' z% b  Y1 X, q/ O7 ^2 h
#include <asm/mach/arch.h>
  U$ V3 ?6 N8 ?' o5 ~#include <mach/da8xx.h>
$ Q4 a/ I. h8 I5 g6 n! V#include <mach/mux.h>
* _: D1 v8 E& b$ q/ l9 p, k# L( k( A- L* E: N: f) b) o
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! L0 |1 Y) k: c& ]
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: v6 t3 T; }$ W( r2 V" J: b7 l0 A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 d% r9 A  v0 D  c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 W$ E+ S$ F0 I

1 s/ }' S* b6 r* q) w1 T: t8 B/ q/* assign the tl som board LED-GPIOs*/0 O7 S* g' R: a7 @7 D4 t; o! a
static const short da850_evm_tl_user_led_pins[] = {; n3 E' O1 W# Q
        /* These pins are definition at <mach/mux.h> file */
! W* h" q8 L, }7 K, A+ ^8 \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* [5 l5 K5 ?* N% v* |3 q; M$ B4 t5 n        -1/ p" k) y% \1 G( K5 w% R& p# H
};
/ x& V' a1 Y: T- H7 r0 |+ k( P* w7 Q0 ~- r* s) A% o
static struct gpio_led da850_evm_tl_leds[] = {
2 r- L/ W6 M8 G2 {( _        {
) J& |" J7 M0 B3 Y                .active_low = 0,  G1 k8 J, Z2 B
                .gpio = DA850_USER_LED0,) A5 ~( }0 I9 t9 Z) v; [- m) D* u  y
                .name = "user_led0",
& f1 F7 w) r' U3 }                .default_trigger = "default-on",, J5 s& w( g  J: I+ T6 l4 Q1 T
        },
1 t$ Y+ C+ F* O. n, b9 d. v+ M7 T        {' L+ m+ C- t  E( |' N: {& q0 U
                .active_low = 0,9 a9 T  t9 [+ \1 x, T, E9 ^
                .gpio = DA850_USER_LED1,* k# ^1 Y  F) r0 A
                .name = "user_led1",2 ~2 o  b3 ^! y5 \# t, }- s
                .default_trigger = "default-on",
6 u8 e- P* D) V        },
% t3 f% e' j+ x. u/ K3 q2 J1 I        {
! O* @1 y* R' R7 u8 P  L                .active_low = 0,* O- t1 m0 \/ c3 e
                .gpio = DA850_USER_LED2,5 E6 ^& W$ X4 H+ o- f* S' Y8 B
                .name = "user_led2",8 A+ n7 q, M0 J5 |, I
                .default_trigger = "default-on",/ O  n8 a% D5 c. k6 _
        },
4 A: r) ^# P: B        {
3 ?3 Z! P7 I. {4 ^                .active_low = 0,3 p. {8 |4 A, @1 ]
                .gpio = DA850_USER_LED3,% F* H' T, D; W9 \2 X% u
                .name = "user_led3",
, H2 A8 i$ q/ ~+ q4 S                .default_trigger = "default-on",- ^3 s8 Y8 i* p) L3 s
        },
6 _; l% ^% C/ ]7 M" u};
; u0 V2 l  P) A% |& h; z6 d7 u& j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, Y* v) z% K- m' ?        .leds = da850_evm_tl_leds,
) @6 N* ^# N7 j# U5 k2 ?4 d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 v4 i9 x  Q! C% a4 a};: E6 H" W0 [+ {
' }8 B; K7 L* A3 X$ q3 h* f2 b& P
static void led_dev_release(struct device *dev)
0 J( P+ W5 |1 h0 o3 N; z$ o{
4 s3 c: v9 M4 A};
0 H/ Q  p' l7 E+ t, k" m2 n* V& p/ ?0 h
static struct platform_device da850_evm_tl_leds_device = {$ w9 A2 S. g9 Y. |
        .name                = "leds-gpio",
& M4 g& @7 a7 V: N: a        .id                = 1,
) e5 `3 D! r$ t5 h8 t        .dev = {$ }7 q4 C& E. L
                .platform_data = &da850_evm_tl_leds_pdata,
# ]* p0 h2 C+ F/ M' i  E                .release = led_dev_release,% X, I. f8 z* Q
        }! @& D& B" s! d1 ^& y( P2 k
};: M. F8 F8 ], ~- u
% g: {3 ]. O, N( t; f6 F  M) r
static int __init led_platform_init(void)% P+ f6 {  T3 ^. v- U3 F( f0 H
{) s: H8 b# C, g6 _7 M
        int ret;
  K6 n' J7 O& }. V#if 0
# q& M% V3 {* F! w. M# k% U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 C( x( p# B* N! u
        if (ret)
* l9 R+ I) r% Y7 _) _2 D                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 X1 s' i* p1 f  ^; p
                                "%d\n", ret);' |% p6 I% K/ @+ u) @- [
#endif
9 D  u6 M5 J6 c5 O# u0 Q4 X        ret = platform_device_register(&da850_evm_tl_leds_device);
+ n) K  P( ?- @$ n( l        if (ret)& ~. b3 C) {/ g- ]  d, N' F0 A
                pr_warning("Could not register som GPIO expander LEDS");; N  m9 E, K5 Q- d' B: l
        else& g8 l/ J; k! h6 z, P) d
                printk(KERN_INFO "LED register sucessful!\n");& m0 o3 J  L4 B2 S) x  g, b, V1 Z

- ]% n' n- M  e/ z8 |$ N3 ]+ E        return ret;; N2 `( ]# n( D/ J
}; M  A$ n8 x$ [6 n0 s
8 G* p! [9 h+ i9 l8 M, u7 w
static void __exit led_platform_exit(void)! N0 `- S  \; n0 n, X. b
{! V8 ?  A  A) ^& n5 `7 ~
        platform_device_unregister(&da850_evm_tl_leds_device);
( }# h" B7 K9 U5 t, L3 e: r7 t" u' l8 z- C4 D; j/ q
        printk(KERN_INFO "LED unregister!\n");4 U- s( O, e0 ?2 P# f3 g
}! i  o/ U' J, Y% K
3 _4 |/ w/ u! U6 `" c, u; |9 r
module_init(led_platform_init);. o- n. W6 E3 [% m9 u- i
module_exit(led_platform_exit);; B. @  o7 z2 ]" I# G

1 i5 W, b5 d8 W/ M) x: Y; ]- l4 sMODULE_DESCRIPTION("Led platform driver");
$ c% Z1 e' u( B* Q5 GMODULE_AUTHOR("Tronlong");9 `8 [+ J4 C( c4 \
MODULE_LICENSE("GPL");  O( P7 ?% y" _
9 T5 Y7 Y' w( r  u* W& `& v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-24 09:31 , Processed in 0.040729 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表