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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( M/ q4 r& }/ M1 X9 H* w+ K#include <linux/init.h>1 d5 R6 L; @- x$ V
#include <linux/module.h>
% h# P- R$ m  W#include <linux/kernel.h>2 B+ u1 F# E/ v7 E
#include <linux/types.h>
, k6 f0 W4 I5 F, L+ G: }#include <linux/gpio.h>
! t& n$ ~' D% {( A" C+ q) b#include <linux/leds.h>
0 [2 e5 c1 L) Z1 d#include <linux/platform_device.h>6 F$ H+ g/ R! ^7 `: l

$ D& r. i# D: O# _#include <asm/mach-types.h>% B6 J/ ?% m% Y% H" \
#include <asm/mach/arch.h>% r( s# y, O1 S* i6 d/ A
#include <mach/da8xx.h>
, e  F' j& B0 a2 m% f#include <mach/mux.h>/ q: f  U7 m% H7 W9 O

% k9 I' |; a+ z" W- C( [* D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ _: d; v/ ^/ s* X; N. I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# R4 ]% o7 U" j. L% Z% a9 I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 y$ M9 J7 L% {8 U! s! X! o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- g8 V8 c3 F' G; m# a& n# T0 F( A- o/ }, J- f
/* assign the tl som board LED-GPIOs*/" y* m/ A% b4 c- j
static const short da850_evm_tl_user_led_pins[] = {1 }! L4 p' J  X2 Q0 q4 P
        /* These pins are definition at <mach/mux.h> file */
, v! \  \$ x: F- ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! H4 s' Y( W; W& `8 @; V3 a6 r. p
        -1
/ S0 S/ {0 H# e" }" E};
4 p4 Z; ?7 m. T4 p( h5 v& k$ W' k# \! Q8 K) u) g2 `6 E
static struct gpio_led da850_evm_tl_leds[] = {
4 Q) G9 x8 z6 p; L        {3 q1 h0 }! j. ]# A- N3 z2 i
                .active_low = 0,/ ^" }7 x- g. _# Y/ [8 M2 e9 N
                .gpio = DA850_USER_LED0,  E2 e; `1 G  ?3 }6 Q
                .name = "user_led0",
# ?- i- F9 U+ A2 U                .default_trigger = "default-on",( N; s0 w3 m5 C- Q) }' f1 V
        },
3 n# i9 i" e0 ^        {/ S& x: w5 i% y6 Y# z/ _' l* H
                .active_low = 0,) g0 _( t2 C5 j! I9 J
                .gpio = DA850_USER_LED1,* K% l+ `& P" O1 l0 u: g1 \. q; L
                .name = "user_led1",
+ e6 ^# Z7 V0 [! _- k                .default_trigger = "default-on",
4 \% V6 K5 U, h4 Q4 y# i        },
/ f: j8 R" g5 H& }  d        {  e. g6 z/ l" s" g8 j8 \' l3 q. x4 K
                .active_low = 0,9 G3 k" r$ Z# l8 N" T3 N
                .gpio = DA850_USER_LED2,, R/ E2 f+ n$ k; e! @/ i4 [* v
                .name = "user_led2",
( q( b4 q$ U- n- R% |( G3 h                .default_trigger = "default-on",
6 |" x+ o( u7 ~9 ]/ w$ T        },
/ P* }0 F' W" u4 _+ n% n        {
# _; z2 F8 s+ ?: L                .active_low = 0,
5 X/ r" v: b2 a                .gpio = DA850_USER_LED3,
" N" F  [2 l1 i/ w+ f                .name = "user_led3",
* i# I2 q" F1 a: g- ]                .default_trigger = "default-on",0 d) b$ I' ^1 W) f5 l$ ^1 b' e
        },
" N( f( f/ N6 A  X, X};8 N# l, G# P, k, d
2 M/ `& ^: }* U
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" C4 s0 z1 l. s: G1 I        .leds = da850_evm_tl_leds," ], T7 V, W# D7 o% b# G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 d( N9 J; Z$ T
};9 E8 L: [* s: _8 k: y9 r

4 u6 S  p+ q7 \static void led_dev_release(struct device *dev); R8 M: T# d& R0 z9 J3 p
{/ W  K, G; E$ L) @3 k5 `
};* }: O# ?* `' Q# i* }

1 V; ?# O! f5 Z4 }& g  o/ Ostatic struct platform_device da850_evm_tl_leds_device = {) C2 D0 e1 K" g' S  @4 x. a7 \5 i
        .name                = "leds-gpio",  U$ E% X  F: q# K2 a2 e' ?2 S" Y
        .id                = 1,
5 H. f6 _3 P) h5 D/ w$ b        .dev = {! o9 X; k- i/ B& V9 ?& X; H
                .platform_data = &da850_evm_tl_leds_pdata,
: N4 n. m5 o0 A+ O2 X                .release = led_dev_release,
' c- a, L5 ^' H* B        }
( _! q1 z6 Z0 E};  Q2 N9 _+ m/ A; o2 ~( h
1 t- \; {. W3 Y) p  j9 g# \% D; L
static int __init led_platform_init(void)
* L6 e0 }; g8 m5 f# y' P3 K  \2 b{
: c; o- @+ J# Z9 \        int ret;$ `# Q8 }0 G1 Y+ w
#if 07 r' K& j! K! P+ U$ ~5 [" N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 G1 A0 d2 W1 J5 H& f) O
        if (ret)( g7 U2 p, ?; h& h; z  t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ Q5 _4 H2 |8 S" A8 I
                                "%d\n", ret);
. P0 U$ o4 r/ g3 ]#endif
: y! u; M3 T- D! j        ret = platform_device_register(&da850_evm_tl_leds_device);) K: g  A% ~# w6 G  R
        if (ret)0 \9 J7 s  _1 A. g0 D0 g/ y
                pr_warning("Could not register som GPIO expander LEDS");
. O3 _: G: m( f9 y/ |8 a        else. W. @! [  U+ w) [5 H( w
                printk(KERN_INFO "LED register sucessful!\n");
  H0 V9 r: ~# E9 B1 r1 M) X
+ I+ J: p6 H/ p/ T* v; `        return ret;
9 C: Y1 i2 c. N}( X7 H) t! p- r) `5 ^

  J9 [5 l% V$ ]% l4 e; b. {, H2 ostatic void __exit led_platform_exit(void)
' l8 Z* ^% S4 T" a, }{
4 S9 T6 u' t0 |/ l* ]8 n9 |9 I' b6 z2 o        platform_device_unregister(&da850_evm_tl_leds_device);' h+ x/ Q: [) r* i1 r
  ]2 ~0 [+ F/ F" D9 Z0 _
        printk(KERN_INFO "LED unregister!\n");
* m& Y# O2 ?3 W& u2 _- M9 ^}/ Y; V; N5 o% N" g
2 V* e8 `! Y1 B8 ?( b2 T; j! M
module_init(led_platform_init);
& O, H/ p" _% \module_exit(led_platform_exit);
7 ]8 l: q/ _+ L/ |3 t8 H+ F: S5 Y+ q4 e) w' A
MODULE_DESCRIPTION("Led platform driver");+ c# j1 `1 U( x& V' r( X* r
MODULE_AUTHOR("Tronlong");8 f5 f- g# y, S7 e
MODULE_LICENSE("GPL");
  H) W2 t1 ~( c, x1 |
+ H6 N: L+ G. Q+ C1 F9 G% I! ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-8 18:01 , Processed in 0.040437 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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