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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  N- n  e" B' d. L/ \
#include <linux/init.h>! ]7 B5 k2 q' a' g7 I5 G  B
#include <linux/module.h>
1 ?' k/ L2 Y( Q( T" V5 v6 E& L# L0 j, N#include <linux/kernel.h>
! J! F1 y+ q6 ]# n: Y#include <linux/types.h>% ]( a5 O  v7 u7 {+ H
#include <linux/gpio.h>1 ]6 V; B+ K  r# @, |6 N
#include <linux/leds.h>
' Q3 D( ]% J. _" ?, u2 e* k#include <linux/platform_device.h>1 m) o+ K. n' y
1 @+ l9 b  ^& I  {7 @8 k
#include <asm/mach-types.h>0 u5 |0 B7 I! ]  B1 c
#include <asm/mach/arch.h>
# Z' i- N6 O: x, d9 E4 Z, |#include <mach/da8xx.h>
2 ^6 V* ^, Q& u2 t  |: n#include <mach/mux.h>
" M4 u* u$ y  \7 K; B. [7 x6 n/ n5 P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& _. l+ o8 p3 g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 h- |0 _2 @5 K5 H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ q9 n5 j3 l7 O4 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 \# W/ T9 f' m' N2 h
2 Y! |# m2 E; l4 F  }* S
/* assign the tl som board LED-GPIOs*/
  s+ v" e( A' k; estatic const short da850_evm_tl_user_led_pins[] = {
4 Z3 H) d, d1 T# E& J        /* These pins are definition at <mach/mux.h> file */
: b+ z; ]& \( o( B1 {8 g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 |/ w6 ?# F, f2 g2 B
        -1
& ?$ \# {* X, p};
1 S; D: k; n! L& D% B+ H$ V  D
+ e7 Q+ j- P5 Z# `  |0 c8 wstatic struct gpio_led da850_evm_tl_leds[] = {" g* |3 |$ C0 e% y# p$ T- y
        {
! M/ V7 W# a0 W5 X" v% ]) h                .active_low = 0,8 R" z) G  @* I* x& J, M+ D
                .gpio = DA850_USER_LED0,/ @6 z- z9 P& P6 [% s& R7 @7 u
                .name = "user_led0",$ a' F' P- S% Z
                .default_trigger = "default-on",
; o$ t. \8 l& j/ n  _' q        },) I! P8 f/ ^4 x
        {6 h( ~- x3 A3 r
                .active_low = 0,
! o# e5 F: _: [& e                .gpio = DA850_USER_LED1,
0 x. k5 h1 x& z% A* m* F" P                .name = "user_led1",
+ ~5 B/ D8 u% D% h9 ?% }. J                .default_trigger = "default-on",# f, ^& A5 L9 }4 r8 N/ o" k
        },
+ p) Y. B* Q! x; T3 M' R( p        {
9 ~0 @4 g0 h/ D& O                .active_low = 0,
! G+ C" F) G2 I. L                .gpio = DA850_USER_LED2,3 x/ P6 v! ]% U
                .name = "user_led2",
3 t2 e7 g" G6 V6 z                .default_trigger = "default-on"," p! U4 k* t# k6 k9 r; g+ n  S6 t
        },% J4 ]+ N' e5 P. a  q! p
        {2 t- G# c! K; b
                .active_low = 0,
( x6 G, m4 Y4 q                .gpio = DA850_USER_LED3,
8 n4 u& u! m" m8 S  D# n                .name = "user_led3",, g$ Q3 i+ P: X( O1 S2 t7 o
                .default_trigger = "default-on",: h4 {+ Z' Y0 B, X
        },
6 d" @- ^+ [1 L) l4 b& M) B};+ c6 o# S5 O2 q- L& v

" J+ H+ q) ]4 c9 k. E$ S5 {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ Q  j9 f' W% m! S  P2 ^        .leds = da850_evm_tl_leds,
8 u( z/ f& I8 X. N( j- x: Y# `( S. A0 j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* D( Q" G$ A: v7 H; |' c2 V! j};
  }& J5 O) N) _8 s# @' R/ h; Z/ o# s" d0 |* L% A( |
static void led_dev_release(struct device *dev)
0 t8 Y* G( @9 I) Z' x{
7 o( O- i5 L* S; C% G7 i};
5 Z% S& s: r/ z, T1 ]- w) }! w& o; Z3 ]% {, Y- a/ w, o+ f' t+ z2 u
static struct platform_device da850_evm_tl_leds_device = {
2 h; [2 ^4 O5 Z% Y& \- h        .name                = "leds-gpio",
7 O2 }* _: s, Q# r7 R# j; B- ]        .id                = 1,9 l* b* ^7 \' O/ C! E% L( R
        .dev = {  o9 X, R) w" \# ~7 Z. N3 i4 S
                .platform_data = &da850_evm_tl_leds_pdata,
: _% V5 R) Q1 N                .release = led_dev_release,1 \  O  T; Y  X5 f* J: V
        }! q" W7 A9 o2 _
};
: V* F# B. }& O2 N& z$ @5 S7 r8 o8 ]  ?- y
static int __init led_platform_init(void)
  u3 q1 B3 u( h; P8 w{
: O0 `. W0 h. V% d! d' y/ W+ W. |; V* G        int ret;: b2 p! c/ g7 w4 J# \% o
#if 0' Z- ]# A6 ]. q* [/ Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 `' O8 U! U, c' K. C0 l5 D
        if (ret)
9 \& ]9 O$ S2 I* j8 ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 ?: c$ F( g( P& s
                                "%d\n", ret);
+ i+ j9 r7 m7 w6 N" g/ J2 z#endif( b+ T+ o& o' h$ i! {# O
        ret = platform_device_register(&da850_evm_tl_leds_device);- x0 F5 l# F6 F* Y7 U0 F: X/ j
        if (ret)
3 V% S* ?0 i% r                pr_warning("Could not register som GPIO expander LEDS");# ^8 a+ l+ J% O* C  z8 [
        else% _# E* A: G! l2 \/ G+ L# ~
                printk(KERN_INFO "LED register sucessful!\n");0 S! l0 a1 f% t- H) t8 R

# K( @7 s$ ?; d  [1 C) {7 M        return ret;
4 A) S, R, J, E* ~}! }$ v! i3 C. P0 X' s
3 |8 ^1 l" Z. P6 k' `4 w
static void __exit led_platform_exit(void)
9 k3 p' j, a  D{( ?7 b- ]9 z$ P  d6 g$ ]) K
        platform_device_unregister(&da850_evm_tl_leds_device);! j# x5 ^1 U7 o$ j2 u; Q
, r3 u0 N4 p6 B) {: r
        printk(KERN_INFO "LED unregister!\n");
) `% r# l# F; i3 T}( o# X0 p* T: S- u, x; |: l! b1 r9 F

/ `# N( i6 j6 w/ f6 m8 smodule_init(led_platform_init);% E$ J' _' f* K1 Y0 H3 N
module_exit(led_platform_exit);
) B) k$ J  U, E1 O4 T0 \# w4 v$ f! r  h6 {* b$ I
MODULE_DESCRIPTION("Led platform driver");& K8 {4 Q/ ^/ n- `; @, b3 o
MODULE_AUTHOR("Tronlong");
( D9 z& w3 Q0 E) U3 [MODULE_LICENSE("GPL");; k1 D0 g/ ~0 @$ W" f6 O

9 D% |1 i% {" y! X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 06:25 , Processed in 0.039899 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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