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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ j2 d2 v, |5 M2 x#include <linux/init.h>
8 [! b1 C0 Z0 o4 F#include <linux/module.h>- ~# H( k( b3 c5 W2 P8 I
#include <linux/kernel.h>
: V! ^7 K/ k5 I* ]0 K2 m#include <linux/types.h>* ~* ^+ e$ @+ V/ @0 m+ ^2 P& e: C
#include <linux/gpio.h>- ?% ?; b% B8 J. b6 ?7 y
#include <linux/leds.h>
' k1 d# u7 ~# q* y) W#include <linux/platform_device.h>
, L7 K# Q. l  {' R
, y! L% @4 ~1 H! ^#include <asm/mach-types.h>
) y4 X- ]& G( P, J1 M& t) a#include <asm/mach/arch.h>0 S5 N6 g6 e: `- v0 O
#include <mach/da8xx.h>$ P. _2 G# O' ]' ?" M
#include <mach/mux.h>
- O4 `# F  D+ D, z4 ?! }1 a9 y- s1 X  R; s8 j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 i) v& f5 G( X; s! g! n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 {# R* ]) u. x# @+ F( [- N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' u9 }. g5 j. a
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! q5 ~9 t8 v" m0 J8 E1 N% z/ p4 z6 y: m( I) b9 U  O* A
/* assign the tl som board LED-GPIOs*/
$ G* Y; R0 v# v- l2 n  Mstatic const short da850_evm_tl_user_led_pins[] = {
8 _/ y9 B, m. ^2 D! ]        /* These pins are definition at <mach/mux.h> file */9 S( Q) p4 i2 [8 ?3 N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. O. c5 V# @+ X6 R" y
        -1
, f0 a, H" ]7 V5 z};
! v8 h. \2 G0 Y. P# |" P, G1 z
  N9 B& z  h" V' T: x6 Estatic struct gpio_led da850_evm_tl_leds[] = {
) T1 @, a" j- Y        {  E# v, b+ v$ z3 @
                .active_low = 0,
$ m) O3 b+ [0 }) |/ L                .gpio = DA850_USER_LED0,( @. R8 U- Q; {  @; z- g4 U2 j
                .name = "user_led0",
! ^6 Y" V7 A# O3 l4 K' F4 ]5 R                .default_trigger = "default-on",
: `5 G& k+ w# b  `% G3 F5 ^/ y        },
$ x8 Y) m1 T" W$ x        {
! ^6 n- {7 X) Q* G5 [                .active_low = 0,
/ K; X2 q3 }# s7 [# ?! M                .gpio = DA850_USER_LED1,9 Z) ?, x, a1 u9 B" ~; q
                .name = "user_led1",
) u% R9 t% s; A( d  S6 r                .default_trigger = "default-on",; R1 `8 a1 n5 T% o5 s
        },1 r: G' u$ E8 E5 H8 S% l8 s8 a
        {& [- L, |8 [* E# Q4 |# m
                .active_low = 0,
9 n7 X8 Z9 `" M% g                .gpio = DA850_USER_LED2,' d1 c7 s8 \/ z
                .name = "user_led2",; c" t8 M, F$ A
                .default_trigger = "default-on",
' K( j$ g. g" Z9 \        },
; e  W. w9 H7 ]% `8 R) l5 V6 d        {* g( ?0 a- f. N0 h2 |
                .active_low = 0,# l: ?8 W3 x7 t. V) `
                .gpio = DA850_USER_LED3,
. U: m5 E+ w& e; M" o) S2 L                .name = "user_led3",
" y" d  I* P; G! }  D' E& Q) C8 y                .default_trigger = "default-on",
6 }6 N) y% X  `$ s        },1 T4 N+ B( a! H- s" ~) |4 P
};
$ c5 |1 ~. |8 P, F# _' a. A) ]
, ?/ }! n3 \9 F* F9 W8 kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) M7 U" f/ H4 h7 ~! i  n        .leds = da850_evm_tl_leds,
2 E0 }" Z6 D/ _3 t& T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 L# a7 @/ ~" X; }* \* O( u! H5 y0 r};  B2 p( Q' G3 v) Y+ Q

6 Q$ u! C" \4 j) p9 z3 _$ A5 Pstatic void led_dev_release(struct device *dev)2 r: L: D- v, o% l$ H
{' o, D+ m' X! m
};, X) U9 F& V# d2 a
6 Q' u! {2 l+ f3 t% Q
static struct platform_device da850_evm_tl_leds_device = {5 a9 e+ k: o1 z8 y- E7 t
        .name                = "leds-gpio",
! A" ?8 ]9 T' q8 `3 T% @        .id                = 1,
6 N8 o. L( K1 ~" \# `& u        .dev = {3 U6 H  D; x! ~
                .platform_data = &da850_evm_tl_leds_pdata,
% l/ W2 M+ y7 M* V                .release = led_dev_release," Z9 M5 w$ i3 i
        }
0 l9 c8 y2 T' G- J};
9 O' C/ R' B2 w9 r1 v
7 D) ?7 u# s9 f  U4 Istatic int __init led_platform_init(void)
, B/ m# ~9 ^$ I! }* y1 d{- ~5 H2 ~  u" x% t/ q
        int ret;# t* h! s$ w- F5 h
#if 0
0 d3 E) \  e4 S1 I        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# {8 J9 D: N' R- v7 W& f8 T
        if (ret)2 l% ~: n+ ^3 w% r7 {6 R) k# q3 m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 |: k8 U; `" F; k                                "%d\n", ret);
. |; S- l' N" ?% q+ v#endif
& U* S4 U6 Y( U" }/ x        ret = platform_device_register(&da850_evm_tl_leds_device);2 W4 ]/ D" H7 t
        if (ret)
5 O7 G- r" Y+ A* N! @                pr_warning("Could not register som GPIO expander LEDS");
' u2 i6 @7 ^# P" {' k        else4 d& F% E  _4 t, o  o0 t* W# B* y6 v
                printk(KERN_INFO "LED register sucessful!\n");
" H- m0 {% B+ J- {+ m5 p2 F" j! Z- p/ S( c5 r& w! a- k
        return ret;3 K: J) x& ~0 f8 H0 ^
}3 Z# B4 N3 x/ f1 F

$ e8 w! g2 v- Sstatic void __exit led_platform_exit(void)
9 \9 _/ U% T! W' v{( q: ?7 t6 h0 y6 Z* X3 B
        platform_device_unregister(&da850_evm_tl_leds_device);
1 U5 L( a' Q$ y& Q$ Y. Y7 W& q/ I4 N* M. v! X6 X& P3 U% ~
        printk(KERN_INFO "LED unregister!\n");$ J# f9 I7 u( [; L5 m& M, F
}  o' e$ F/ V% h

- q( l* U, y2 a% Q' y0 c: Hmodule_init(led_platform_init);% \; F" ^; V; H# ]3 \5 R; N. i
module_exit(led_platform_exit);# L! p. X' o7 e% j' V3 L& O
$ d- w. j  A8 k3 F
MODULE_DESCRIPTION("Led platform driver");
% r* K7 o% D( I+ }& KMODULE_AUTHOR("Tronlong");5 Q* p, I# M  Z" y, ~: ?
MODULE_LICENSE("GPL");
6 J& p( I- ~* I$ d& w. |7 ^( o
8 r' l% B" Z7 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-12 04:31 , Processed in 0.038612 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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