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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  o% {% C/ o' a5 i, x% K7 F#include <linux/init.h># U( J' {# O. G4 k  w
#include <linux/module.h>0 G2 B" Y7 p# m0 e4 J* G( ?5 u
#include <linux/kernel.h>
! o9 p' P6 f- O/ L# z#include <linux/types.h>
$ d- ]' e3 N! z: q  Z! h7 |#include <linux/gpio.h>+ v. j' b5 Z7 d8 K6 _
#include <linux/leds.h>% w* h& H3 C3 K/ K
#include <linux/platform_device.h>4 s* c$ U: C2 D$ ^) i1 n2 L" @0 F

0 {, a7 [7 N6 _3 E; K& m9 u; C% C#include <asm/mach-types.h>7 F, g% [2 A) k; P9 V" J
#include <asm/mach/arch.h>
! [7 C/ `) V! q- q4 R- B#include <mach/da8xx.h>. R4 k5 ~+ }# O
#include <mach/mux.h>
% n# c0 ~$ M/ n; f( v8 f
- S6 x; {1 u( g+ y) G( M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): D# z( U" O% l9 }$ Y- ]/ ]. |9 D  j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ r1 b$ j+ ^+ d" g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) Y4 {- e. N9 }1 j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) i$ _) ?" D/ H0 }: ^. C
8 R/ ^; `$ l, }& K1 ^* O/* assign the tl som board LED-GPIOs*/
* x5 S0 H6 V2 V1 y& qstatic const short da850_evm_tl_user_led_pins[] = {
4 H% x1 \+ h6 o* H4 K; |1 j) B, w        /* These pins are definition at <mach/mux.h> file */
% Y0 j1 N3 t3 e" z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 m; B( ?# W0 f* ]9 d        -1
% A& |, i" ~0 K& Q) l};/ K4 H; L& v) Q& n! m
* D" g. c) J! m/ [9 G5 {
static struct gpio_led da850_evm_tl_leds[] = {
: n1 X/ h6 W8 w3 F) Z        {
! N, a! A! y" U                .active_low = 0,
  z! b1 [+ r( E- V; y                .gpio = DA850_USER_LED0,
0 j0 j# K7 s: r/ ]# n4 |$ j                .name = "user_led0",: h/ Y1 c! N  b
                .default_trigger = "default-on",
1 M, I) W) p2 d        },5 W. m" K6 [6 J# X/ m
        {+ e( _  ^2 Q. B6 K& w& k
                .active_low = 0,
+ V' ^* X$ I- W2 o9 R                .gpio = DA850_USER_LED1,# T% O' ?1 N# B  h' m* f7 y# X
                .name = "user_led1",! Z9 i5 ~# F  E6 a" O; `
                .default_trigger = "default-on",# B7 v  z4 o* `  x
        },  A6 Z2 |$ R$ a8 s& W: N
        {
) P+ M6 k, D  G* p. j' x/ Z6 ^                .active_low = 0,
; W5 v/ ^' ~2 ]8 Q                .gpio = DA850_USER_LED2,
; z4 M( c& G# f0 U                .name = "user_led2",
4 D5 T2 N5 [! m1 q: B                .default_trigger = "default-on",. y' c9 ^' \1 g1 u! y8 y) S
        },
, U" V! `6 h& X; j9 l0 M4 ?; Z! T        {) S' ?* [0 v* E( Y# Z- ~$ t8 n
                .active_low = 0," }, s- Z5 b- U. ?9 g
                .gpio = DA850_USER_LED3,
; V, c: }, m) E                .name = "user_led3"," f- k  X' y9 ~+ n! W- Y* f. ^, U$ D9 f
                .default_trigger = "default-on",9 j! Y; |/ `7 h2 N2 B
        },: u. M6 _' C# T9 R4 r. E1 s
};( W$ G6 K- A' O: D. X0 r
1 M: D% ^. H  ?8 C% C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; Y; ^2 J& @' {) a5 w) b% [) d
        .leds = da850_evm_tl_leds,0 d1 T/ |* ?, `& @% c; r8 k1 _
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 R/ j! m- t( t( O};- s/ ^& K* n7 ?
( @8 S% F- U# y. [& V5 E5 l
static void led_dev_release(struct device *dev)4 v- e5 A9 S/ \8 d
{
, C/ t% |+ Z* L1 X+ N};
" Q( J4 B# U; J% j3 q& q3 ~' t* v; Q* K# I4 T: L
static struct platform_device da850_evm_tl_leds_device = {3 N3 J7 M. z0 D  u3 X+ F
        .name                = "leds-gpio",4 L( f; h& \2 {) C1 ~0 o/ X
        .id                = 1,. x0 e# ~& q# W5 R3 K& ?
        .dev = {
* s% C% M2 `4 g; y                .platform_data = &da850_evm_tl_leds_pdata,0 d4 F9 n  m: S& f
                .release = led_dev_release,; d$ i* t/ i- {  a+ H7 C& k% _
        }
+ t, o( g( k) ^& }" s" K2 Z2 w% t};
, @( u  ^- O4 I' h0 h/ o& x4 M
static int __init led_platform_init(void)" n3 n  `6 |& h
{
0 a6 w% _9 O# O' b) v$ W9 u. F        int ret;7 O) O. {8 m# A! ?
#if 07 p0 ]& _7 z0 i& b: ~$ I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( ^/ G6 N  o0 x+ V* M0 u$ \0 {        if (ret)
- _7 E+ ^& f: h* M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! P7 }+ z2 y, I1 t- g) {) a) F: e
                                "%d\n", ret);# G: C: G# j4 C$ `1 e
#endif4 h* d# x4 r: I/ s6 v# u8 {
        ret = platform_device_register(&da850_evm_tl_leds_device);2 \8 R3 X, W+ G  h9 O6 l8 @
        if (ret); R  m! k2 n( O
                pr_warning("Could not register som GPIO expander LEDS");- q- h( v9 C6 C% g8 H# k* S
        else4 z$ c7 A! N$ S! \
                printk(KERN_INFO "LED register sucessful!\n");% P4 S* H# J  k
" N" V7 v, R; I
        return ret;2 y: T5 `( A9 u3 O/ F
}3 S' [& x: |6 F: r
1 |  ^3 t* A) ]$ [/ r
static void __exit led_platform_exit(void)
6 L# R1 `$ o6 M: i- C5 ]; [+ {{
3 d6 Y5 p$ ?7 W- R6 n% h: V! _        platform_device_unregister(&da850_evm_tl_leds_device);
# a: C1 R$ o* Y. S  z7 @
5 N  e0 N9 b/ x6 p0 R' Y2 W        printk(KERN_INFO "LED unregister!\n");7 U/ N  T/ Z# U. t
}
! n7 u, }: e+ B* |% S/ ~; H- D; _' k# Z2 L+ d( r1 ~
module_init(led_platform_init);
* {) ]( }) m1 }3 c6 ]module_exit(led_platform_exit);/ o) E: V0 B# Z) X0 a( u2 ~9 H. P! B

, \6 I4 t  f) w* q. XMODULE_DESCRIPTION("Led platform driver");
, k) z% o2 k! L! ~0 SMODULE_AUTHOR("Tronlong");( J/ u) }7 @( |* q
MODULE_LICENSE("GPL");2 W/ d. G( j* g3 }7 j; P

; o) Z& |; L$ G+ v) \! a0 d! t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 01:44 , Processed in 0.041235 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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