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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# [' L- d6 Z' r
#include <linux/init.h>
; T. \- H  n2 l% M4 C3 ]#include <linux/module.h>+ O: o0 P1 B3 o
#include <linux/kernel.h>
( E' Y# c( e( k+ U8 B9 L#include <linux/types.h>) n% n5 }  B# R5 w4 y% X
#include <linux/gpio.h>/ v$ D/ ?& U) J  c0 ?
#include <linux/leds.h>
- e4 _8 ~% J8 f#include <linux/platform_device.h>
% N/ d; k9 ~* M' R! p& i* ~% B
. B  [! l" ?9 b. f#include <asm/mach-types.h>) M3 e, L6 M! E
#include <asm/mach/arch.h>
3 `; l+ `2 P/ _( z) k+ ^; n; o5 l3 h#include <mach/da8xx.h>0 u6 Z. t% A* d* |2 Q
#include <mach/mux.h>5 {: l) J  D/ D! s1 U" D; |/ Z4 t9 {% c1 R
: _# L* |3 S7 V/ Q' Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): u0 n% A" W, f
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): C5 n( e+ S( B+ p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, k( J4 p+ g  p; ^& [' m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 B# K# b7 ?. ^

$ W0 f- a; E  H  w- R7 V/* assign the tl som board LED-GPIOs*/% |' G& z0 _9 M
static const short da850_evm_tl_user_led_pins[] = {
' a: B' y+ @3 G        /* These pins are definition at <mach/mux.h> file */' f9 H# [0 S) X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; g+ [1 X2 N2 T+ v2 f
        -15 G7 j! B; G0 e& d! W
};9 m- b5 r$ m# C; `) ?( k
% M( T) u, H4 ~- R7 z  k
static struct gpio_led da850_evm_tl_leds[] = {
' n, x+ g: f/ }# M$ l' b) M        {
' R+ |' Q# R. @) B                .active_low = 0,
7 W  e6 ?7 w  _  T- W! F( s                .gpio = DA850_USER_LED0,; E, R0 Z2 b4 `0 |3 U; I6 A
                .name = "user_led0",' C3 M# K9 A6 ^1 f
                .default_trigger = "default-on",
0 i4 F; ?) \: M# v, m9 X        },
7 c/ v5 ^( t( `* x' n4 U$ y        {
4 V) `4 F; r  N+ ~, i& v- y                .active_low = 0,
& {9 J, J. \  U- {/ ~8 y7 i0 ]                .gpio = DA850_USER_LED1,
) w5 a% [( H! h                .name = "user_led1",
9 v; u9 M$ G$ @4 K1 b5 Q9 j                .default_trigger = "default-on",$ F( W; {9 d# [7 ]" T& W1 \
        },+ |/ P* ]7 l* _
        {
& s9 M1 X8 u5 m( p1 o( G- d                .active_low = 0,0 \9 n) V2 I9 s0 q" \% v
                .gpio = DA850_USER_LED2,7 Q+ t0 R7 D; A& T8 V
                .name = "user_led2",8 A+ O; G7 _+ q1 G' e" A7 I
                .default_trigger = "default-on",
5 [* d2 `6 Q( @' Y        },$ H2 U9 l( e5 r4 Y3 C0 O7 v7 o
        {; g1 Y' S+ E3 Y
                .active_low = 0,
0 F7 w# y3 I$ o" ]/ a8 _: f                .gpio = DA850_USER_LED3,
* U) @; P$ b; |$ O* t5 Z                .name = "user_led3",
  O) }% g; K" N, {2 L! q3 Z/ K# W                .default_trigger = "default-on",
  }9 }" O& J/ Y, \4 v2 Y        },
, u& f3 V" A( F, n0 d- U};1 I+ u! b0 N, @0 c) K$ F

( g+ U9 M# {) f' s% zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" O: [0 o) U- `% X: j* `( K; a/ g        .leds = da850_evm_tl_leds,
  U$ @+ q1 A: f4 o/ }3 u) M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" R# t' W! j# C" p( }0 [7 O};
1 m" _: a: B: M# e3 k5 G: @7 s3 u" [! R6 N9 p( ?+ `; z
static void led_dev_release(struct device *dev)4 H& @+ w: ]9 g
{
, R4 C4 F4 Z5 u" {% w8 }};) O# |/ y7 v# I$ i0 s  Y" W

: R4 H( @1 s% \! }, Bstatic struct platform_device da850_evm_tl_leds_device = {# N$ O0 z6 o9 T
        .name                = "leds-gpio",
' \2 Z' _) Q+ H0 D5 Z4 O1 m        .id                = 1,
+ k# y6 o  b5 P  A% o        .dev = {
* V# G2 b6 ?( k0 G7 ~0 u1 V                .platform_data = &da850_evm_tl_leds_pdata,
/ d9 {  l" M1 o6 A' I                .release = led_dev_release,8 f$ f3 j0 `0 S& P: p7 w& F
        }
: M) x) F0 M  b5 [, }};
& B$ j+ v7 w% Y$ d
) s- x4 Q' m% J, R$ Astatic int __init led_platform_init(void)" v) p0 F9 }1 v$ \7 y5 @
{8 X# H( r; i2 K% S4 q; Q8 ]0 s
        int ret;7 [. p+ }  y7 _: B2 P: N, z
#if 01 y% D" a( S, b* R
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 X& l9 e, t7 V4 X$ y9 c
        if (ret)
6 O$ g  r4 W+ s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! s% X/ E9 Q: S& \8 ~                                "%d\n", ret);
9 H! [( h" d9 R4 s#endif
0 W6 R' Z* {/ T7 r% u7 v; e2 |        ret = platform_device_register(&da850_evm_tl_leds_device);
& g' K( |. {# b9 P# {+ L  [        if (ret)' o. L6 O' `0 k: H: j
                pr_warning("Could not register som GPIO expander LEDS");
8 Q6 D( j( _& H* Q( f. R1 w        else9 y& j7 q: `3 M; f# L1 ]
                printk(KERN_INFO "LED register sucessful!\n");
( j8 w$ P  Y" |& Z7 X/ v- {+ O; o: I( X% n; q+ G+ k! k
        return ret;
) H  B0 X8 z$ W( R# q3 O  t2 [}
- N/ N2 s2 p6 ?! P  m9 {/ Q; B9 [5 f$ W4 I* c3 t2 W
static void __exit led_platform_exit(void)
% ]: r& r% `" k6 Z( D! x, D" Y{# u0 O: f$ r/ J# \4 P
        platform_device_unregister(&da850_evm_tl_leds_device);
5 \' B; j% o' V9 x! O( W
3 h4 z. ]7 L& s        printk(KERN_INFO "LED unregister!\n");
0 }% p$ x3 V1 Y: r8 Q! `}
( l8 t3 ~  l* z: R+ w  S' u6 Z5 O1 a  E6 o* ?4 S+ [: I. H. N: x$ M
module_init(led_platform_init);
  l4 V, M; Q$ Z& g: Wmodule_exit(led_platform_exit);! M; w& m, S. m" W" e

" M* m0 \( ~7 mMODULE_DESCRIPTION("Led platform driver");
' J' Y) M' D7 ?2 ]! Z1 t; AMODULE_AUTHOR("Tronlong");
: b5 C1 l8 c; V0 D6 cMODULE_LICENSE("GPL");
0 [$ e# [6 f: m8 {- ~' h; \7 U
0 Y& ?3 K2 w. i7 X, O" q1 L( F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-9 14:55 , Processed in 0.039376 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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