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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' }/ _7 [1 u7 d- U#include <linux/init.h>9 H8 Q) a* G: f. l6 i
#include <linux/module.h>
& O) d8 F: b4 I8 S) k# t, u#include <linux/kernel.h>
2 I- W1 H8 F+ e! ^# V#include <linux/types.h>
8 c  k1 A; e: `& l6 }) _7 s#include <linux/gpio.h>8 i- D2 x  z; k1 e, m6 Q% B2 g
#include <linux/leds.h>
5 _" m& B1 c! ~  T  F- R# u#include <linux/platform_device.h>+ ?' x- A  w/ m
  _1 n+ y' L7 A* t( S! Z3 C
#include <asm/mach-types.h>% N4 z5 u. `7 w6 ?& Q7 `# h2 D
#include <asm/mach/arch.h>
, W+ V$ o0 U7 N2 ~  a) V, j% U- X#include <mach/da8xx.h>
0 s- @9 O& f; k& }6 `#include <mach/mux.h>
) r# B: F+ X3 N( o9 C% t
8 x( X5 P; _6 i0 C( v* v4 L/ n+ S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) V1 ^2 c7 F, z9 E) k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; T; K) ~) Q0 s- `" X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) r: O2 A3 \1 K  w/ l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. W$ ~' _$ m  Q) o! e* h+ |2 L0 n( G1 A* X, V
/* assign the tl som board LED-GPIOs*/0 s; t% Q! _0 K1 w1 P
static const short da850_evm_tl_user_led_pins[] = {
: H5 [" ~' A! N2 F! _& o        /* These pins are definition at <mach/mux.h> file */
' `6 E7 M$ {4 ?) _; X( w# h        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' n# F: H* @! }3 l        -16 l3 B! t4 x9 {" x- V
};
. I% `# v% C2 d; |# V0 V
+ k4 s- Z6 Y% ~3 Istatic struct gpio_led da850_evm_tl_leds[] = {0 @1 V7 O8 i9 E3 s
        {( p7 o$ e& O' b/ y
                .active_low = 0,
" n3 o; f( V# K. Z                .gpio = DA850_USER_LED0,
! C# Y" n$ ^2 J% c0 ^- D: {                .name = "user_led0",
3 k9 s: n& C5 n# p                .default_trigger = "default-on",* S& q) ]3 u4 D0 Y$ _
        },
% T' Z% `& g; m# s5 t- o; C        {
6 _& n  p- F0 v) Y" z7 s0 t                .active_low = 0,
. j9 Y5 {. P  l9 c& g7 U. g5 B5 c+ P                .gpio = DA850_USER_LED1,) t- ^" p) w! @; G" Y* i
                .name = "user_led1",
+ n1 _! j' N3 Q) Q7 [" L8 s                .default_trigger = "default-on",
$ A2 k3 U8 N( X, V$ C        },# S; g. o4 g6 h. g+ f6 \+ D
        {
& o" d1 N* V. C7 ]                .active_low = 0,  p- L/ Y/ s/ w
                .gpio = DA850_USER_LED2,& W) ^4 ^6 k# E1 E" Q& E
                .name = "user_led2",, ?) F% s; o2 N- p6 U
                .default_trigger = "default-on",+ i' ^+ @# G. R6 o1 S; t  _
        },
& e, B2 q' F: y) d8 s' P- S' p        {2 R3 }# U* w4 }3 a
                .active_low = 0,
9 z7 a3 Y0 |; Z( C: z9 |- J1 t$ U- y                .gpio = DA850_USER_LED3,
2 P, a6 }- J8 S2 e: M% u+ a2 b8 H                .name = "user_led3",
, {" D6 v: U  g+ h& t6 G                .default_trigger = "default-on",1 [  A5 n9 X* O! Y7 H. S8 `: Y8 [
        },
# C. C! l: p6 x/ Q4 E};
) p2 d$ v1 M( G+ t3 n. @
+ `) R9 W) W' |+ e6 S# Ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 ^! v6 g- H* ?4 k- |2 y
        .leds = da850_evm_tl_leds,/ V, m& N; D3 @8 r
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 \: A- S8 e) G2 T" f% v" |. Y+ w};
( H+ O+ ]) N) D
$ c3 u* u; V4 t& `static void led_dev_release(struct device *dev)5 Q; Q$ @4 C& ?0 [' p
{8 K: r% _! k; ?3 D* R4 W0 v
};
# `. r5 r9 L( B" P1 |' V5 e  r; c: y7 V/ U. \" @1 Q* u7 I$ g
static struct platform_device da850_evm_tl_leds_device = {. e; S. Z: ^( A. L. Z( i
        .name                = "leds-gpio",4 J1 m# h# O( D  J% a
        .id                = 1,
$ g! k# T; L3 K" r% u; Z4 b& I        .dev = {. Z/ Q3 y/ [( ?' E& c
                .platform_data = &da850_evm_tl_leds_pdata,
: N4 L! F/ C0 n# m                .release = led_dev_release,
: i# ]: M# S( E$ B2 H% ]        }
- }: ]8 r/ `6 i' {7 y+ V};  E; ~0 v2 {* L. x- t

5 x( y. C: p" h% I7 N1 i  z1 w+ E$ ustatic int __init led_platform_init(void)
1 L& R0 b; v! t) ^{: `9 J6 ?" [& p! U6 B. M
        int ret;+ c) ~: G. U: e9 Q
#if 0& v! @- `. s0 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  L- l2 v) [! d  a. n4 S* B        if (ret)( o# G; ~/ S) y) Z/ p. p3 D* k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, i" O6 A' O) b0 z6 X' S8 }                                "%d\n", ret);8 j9 e: g- u- I, n
#endif
% y) w  T( s" y! Q        ret = platform_device_register(&da850_evm_tl_leds_device);
8 F5 j1 C: P4 i% F) H+ f* }1 c        if (ret); f8 R  g. v. g, Y" c7 B; h8 I; Z
                pr_warning("Could not register som GPIO expander LEDS");
  B1 B& i; `) P7 U% ?& B" F        else0 F& l3 w6 r, {! o' h' m
                printk(KERN_INFO "LED register sucessful!\n");& Z1 b- y+ c3 Y: q
- z. B5 z7 b7 K1 o: F# [
        return ret;
, a) P  I" _  R" i" G. ^( g}( o$ S4 F0 _6 l
0 j, _" ^, e: c1 G" g+ v5 y3 W
static void __exit led_platform_exit(void)
1 @# o* f0 F( J{$ ~$ M) G* ~6 e
        platform_device_unregister(&da850_evm_tl_leds_device);
. j  i8 D* u1 v* e7 {* l; E# ^$ I) s( l7 A! b! N: g# r
        printk(KERN_INFO "LED unregister!\n");9 n) M2 G8 W, A% g1 c& v
}/ s% r& z0 ]  [
. F' n: X; K9 Q5 a
module_init(led_platform_init);0 {0 B0 Z0 x# E2 C& C3 B; s
module_exit(led_platform_exit);* b1 e# c; f! _1 @8 M+ l- e
6 G; }3 o0 D+ }' c5 e
MODULE_DESCRIPTION("Led platform driver");( I( V  ?. I; V9 B+ A& P
MODULE_AUTHOR("Tronlong");
& x' S% J! g$ k9 Y3 y+ kMODULE_LICENSE("GPL");; @0 S. S7 @1 a* z8 ~
4 O! v; |+ L/ x4 e2 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 02:12 , Processed in 0.038460 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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