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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- u& o7 S9 a1 r. j3 f#include <linux/init.h>
" \* i8 K: b( Z+ o7 s' p; ]#include <linux/module.h>. T9 N* c: y0 F* Q: R% a! v# L
#include <linux/kernel.h>" D+ h# g% s# j' a; B
#include <linux/types.h>4 `! w* [7 t1 n0 z
#include <linux/gpio.h>+ n5 q0 G( B& w9 }, ]- p: I& R
#include <linux/leds.h>
9 ~( [" p" U+ u, B#include <linux/platform_device.h>
0 F! Z6 r3 B" F9 U; I; g3 S/ D( D- Q" X; F
#include <asm/mach-types.h>7 o" T) O: n) x- Q) T
#include <asm/mach/arch.h>6 f8 Q" m/ u# W1 v% D) Y
#include <mach/da8xx.h>
4 v9 W8 c' J4 a; T$ R8 V/ h#include <mach/mux.h>
; v; O% e; o5 g, Z0 }8 t
) Y# W, ^% Y1 P$ w5 |9 A$ k0 S# n#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  i  W+ K3 E" _( ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# x" N5 O+ H1 m+ a$ N" @" ^# ^#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ K4 j7 |- t( g7 g2 ~0 |6 ^
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 Q4 e. g$ S+ N4 O: P! b- R4 V8 W# G! l1 k  a
/* assign the tl som board LED-GPIOs*/2 O( }$ z& B9 f; J
static const short da850_evm_tl_user_led_pins[] = {: r7 D" n3 X% s. Z/ o" v
        /* These pins are definition at <mach/mux.h> file */
) Q/ ?0 _) O, D8 f, Q% D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 p3 n# D3 A) P$ o& |4 ~- p  F- u9 v
        -1
( f! }. l! K6 @+ `& R};
- {; Y) z2 g) d( S) i+ A. i8 c6 O/ ~3 s7 v4 s
static struct gpio_led da850_evm_tl_leds[] = {
+ H$ V; g' R2 B, k# `        {) e% A6 S% e4 h/ g
                .active_low = 0,, A* t# h: J9 B- @3 o, i
                .gpio = DA850_USER_LED0,
/ [/ H$ T3 x* n4 ~) \4 q                .name = "user_led0",
4 s$ Y2 T+ L$ d5 F$ n                .default_trigger = "default-on",$ T$ Y7 O1 R/ f# \
        },: {( ^* K7 `0 J: i
        {
" S& F8 }) B- i9 a- r- x# ^5 N+ t! y' p                .active_low = 0,7 _0 _6 M5 I0 g& _8 i3 ^
                .gpio = DA850_USER_LED1," s% {3 _! M' l  K- G3 R! E& J* ]
                .name = "user_led1",
  j' z% i, |1 P1 D0 ~& z7 M                .default_trigger = "default-on",
9 R! @% h. W0 T2 o* e        },
5 L4 K( Y2 a. d        {$ s/ Q  ?; W- y1 K: @0 }
                .active_low = 0,
& G: L- _1 L, T" _                .gpio = DA850_USER_LED2,( o% s, R) t) h4 w  e
                .name = "user_led2",
: e8 o' @3 ^, q* Y                .default_trigger = "default-on",
! U, J; j2 ?$ e2 j4 m% u        },7 I( K) k6 _( r' M; k
        {
. ?5 M; O. H& A2 p! X  T. B                .active_low = 0,
2 ?  _3 e2 w  c% G1 g3 `! i                .gpio = DA850_USER_LED3,
) L$ \1 V8 a' ^: [8 G& a$ J                .name = "user_led3",$ A; t$ x( `0 u1 F, z
                .default_trigger = "default-on",+ R/ w- `# a) F' P
        },
! M- ^. j& C8 s" d};4 ~+ M) r7 q: ?: L  o2 G

# B- ]! R7 `0 i1 ^# @4 V' X+ l" g- Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. ^8 b; f% S! }( V+ V: j
        .leds = da850_evm_tl_leds,( x7 o( a8 ]4 f& c0 f4 @8 K0 C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( ~/ H+ r, o& f  ], L& u* q! ^};4 W* _" `  g7 m+ U( W
& [- i# Y+ F, v) r. |, b! P
static void led_dev_release(struct device *dev)$ J- L. \3 a2 D
{" J/ V5 O+ @! w' @  E
};
7 L/ k* h* b6 E
$ E6 r% _0 o/ V: K0 Dstatic struct platform_device da850_evm_tl_leds_device = {# T9 y6 n& K9 |$ f$ i
        .name                = "leds-gpio",
; F1 x) O4 }2 I" h* d        .id                = 1,
2 t) P6 C. F7 l" O6 [        .dev = {
# c2 X/ u& J+ L- T' m8 b# c                .platform_data = &da850_evm_tl_leds_pdata,
& i+ }1 ~6 ^& H; N  ?6 }                .release = led_dev_release,$ T# }* V/ i2 A/ {3 T" d% {% _
        }
, ^! c3 u+ Z/ B: S# Y7 T3 L- e};$ k* i: J9 ^7 b4 s5 {6 n! z# E

/ l& e0 f# X2 Z1 ~- ^7 _5 Astatic int __init led_platform_init(void)1 L# M6 Y" H  u1 t0 C$ j% F- E# a4 R
{5 C. t# z; U; p6 _
        int ret;
* l8 n% J$ K6 Y+ q! |+ G  T#if 0
: p& L! y8 ^0 U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 N7 V, b! u! N5 T4 x* Q& Z        if (ret)
0 G( J- e- [- c) m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 b8 E2 r. B2 V/ W
                                "%d\n", ret);# T3 ?, d6 ^/ n, e# ~/ D
#endif* }8 b5 h" `# y7 O3 e% R/ z
        ret = platform_device_register(&da850_evm_tl_leds_device);" v! Z" M* Q& `% G
        if (ret)8 Q0 s0 E$ v8 l" e
                pr_warning("Could not register som GPIO expander LEDS");
% {* N; m2 |1 \6 t1 W( m        else% E* P1 O) y" D- ~2 `9 |" l
                printk(KERN_INFO "LED register sucessful!\n");8 C$ x6 ^9 B. C6 V! u% @
% i; ^  k; J0 m5 K
        return ret;
8 T1 G+ W2 f3 C- @3 O" I}/ `9 i: @; `& u* ^. v8 G5 B

" O( Q6 ]2 [; j# K: T! G2 t4 Jstatic void __exit led_platform_exit(void)( ?2 |# R1 A/ z# n! F
{7 p9 t' c5 t% ^! H
        platform_device_unregister(&da850_evm_tl_leds_device);
7 D* V4 h6 k6 K8 o2 Q0 d
+ e/ `! X2 c, @6 `+ c        printk(KERN_INFO "LED unregister!\n");
0 D" z. T: N2 u% v4 ^* q9 t2 }}
: q- I# g8 S" h  B  l+ ]2 n; Z, Q8 u- i* U, X9 _2 l
module_init(led_platform_init);* v4 w$ }1 V9 r4 _5 h
module_exit(led_platform_exit);
, _7 j! g+ g* A' i+ L8 W1 y' r0 p. s! [) \: K
MODULE_DESCRIPTION("Led platform driver");
$ H7 ~1 z( A+ dMODULE_AUTHOR("Tronlong");  f1 g1 P9 [) a) S* y6 z
MODULE_LICENSE("GPL");7 o& U' w2 Z: U% Q0 n$ W) r
& q# x5 J* C- D9 w; c5 A8 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 11:33 , Processed in 0.041656 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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