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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. }7 p$ \( n/ S8 }3 z+ d% I
#include <linux/init.h>
9 n  _# l8 X" W: L5 d9 \) a#include <linux/module.h>& O$ R4 x( C' ~0 H% d
#include <linux/kernel.h>
- v; c$ a1 ]6 z% n( U! T#include <linux/types.h>+ j; e, R/ u- {3 @0 a$ y6 w: o
#include <linux/gpio.h>+ t  [' ]4 c0 L" O1 ^4 E
#include <linux/leds.h>
! t6 @; d5 u/ [! ?# M- K2 F+ `5 a1 S#include <linux/platform_device.h>% j( H& A9 Y  t  L; @$ ]
: j+ X7 O/ D$ |% x9 j  a
#include <asm/mach-types.h>
( V9 \0 T* f& l1 [+ D( b#include <asm/mach/arch.h>
& M+ g* e9 {# K#include <mach/da8xx.h>
+ f  T8 \/ E& u5 i- c3 [! l, H0 H#include <mach/mux.h>
" w5 F; u, s' y- n
# [+ R- n) U* _0 F7 u! Z) z; K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 [4 l1 y; S  e" c% n0 p' L) _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% v# ^. ^  [+ @1 M" t
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ `. D- ~/ r) b( P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 o2 k; z, l) n; j
8 ~3 G# Q- q5 t# z8 r4 ^/* assign the tl som board LED-GPIOs*/( `1 ^, `0 x- C) F1 k
static const short da850_evm_tl_user_led_pins[] = {6 X3 v+ i2 k: M; Y3 m8 m5 I
        /* These pins are definition at <mach/mux.h> file */9 n1 _7 j3 b3 r% K# g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& e  S/ J$ I) e- ?. B
        -1" V$ Y7 b' O/ O2 }2 i
};- e2 y3 B) c1 N5 I$ K% L. _
2 {# U( b/ B% |( |% G, n% c' d
static struct gpio_led da850_evm_tl_leds[] = {
) L) O6 ]+ R7 {- j4 L  Y, m        {
+ v7 [3 j7 Z, [+ H0 h" h9 i6 n% J' W                .active_low = 0,. g7 W9 [- X2 }. o
                .gpio = DA850_USER_LED0,
) p# H: O1 ^  x* d# G                .name = "user_led0",* V: q& e- @2 Z* }
                .default_trigger = "default-on",
* ]& a6 X# ]9 Y8 q2 R3 [0 j8 }5 `( X        },
$ u5 K, }" P- R9 I5 J8 e0 o9 @3 N        {
7 P9 t  J: T, V  O                .active_low = 0,
3 j# [6 l' H1 B# C5 P! `/ g                .gpio = DA850_USER_LED1,
% A  N) _$ t8 l+ }, W. i5 o                .name = "user_led1",3 Q, @/ _, u  ?
                .default_trigger = "default-on",8 V- \" I" Z+ W/ @& z4 _" T" F9 p
        },
8 U, o7 Z( i  U) Y        {" ^( u2 ~) v0 j5 Q0 {  @- t
                .active_low = 0,# F1 ~& C( ]1 {/ W2 g) |
                .gpio = DA850_USER_LED2,
7 v5 m2 R+ {* M5 Z, J                .name = "user_led2",
- E+ c+ z+ s& k4 z' C/ }7 g                .default_trigger = "default-on",
/ X5 q$ h: b$ t7 V. o" ?, P        },
0 e. V8 |" c$ r2 A; b0 T* I        {% i  i( M3 [, W
                .active_low = 0,
4 b4 y  i" y. ^, ^+ A4 ~- Q  K                .gpio = DA850_USER_LED3,
! n; @" d' P4 d/ D8 ]6 E0 I                .name = "user_led3",) z: t" h, c- B) D* q+ O
                .default_trigger = "default-on",
5 _2 ^" {$ Y/ l2 a        },' K! z) I' h4 O- n
};$ ?* v; i4 l9 f2 f

# {! I8 [) o4 rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 A1 y- v! b0 n+ ^9 n: M
        .leds = da850_evm_tl_leds,6 l+ l0 s$ u- O0 R; j6 D) B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 K. T4 F8 W! u9 d
};
8 c9 s# Y9 x( g! t& M
2 h4 m5 D( H- I8 r% Z, N, @  Kstatic void led_dev_release(struct device *dev): ]* d4 k) l" C
{0 X. ?1 Q0 v, b" ~# {- {% \
};2 d( Q2 p) [: x7 q) `
4 F4 S# d; j1 Y' N: v
static struct platform_device da850_evm_tl_leds_device = {
$ ]& a' s- N1 @        .name                = "leds-gpio",* N' T& O$ k0 w( T- K
        .id                = 1,5 j% n. Y9 a% c/ |4 T. T
        .dev = {$ W, _4 e- D, [2 x- @
                .platform_data = &da850_evm_tl_leds_pdata,
$ ?) T6 D6 R2 {# K( D                .release = led_dev_release,
) k- Y0 f, r6 i- E2 I        }
# f: b8 ~. B! L, Y! L};# K0 ]4 f" j! \- [: d% ]" D$ F' j

2 |9 j0 N4 D7 Z3 g4 d+ a% H: xstatic int __init led_platform_init(void)
& U, e! [4 Z' ^{
4 k; A/ E" Y! R* l        int ret;5 W7 `* a4 {: B! q- y# F' d' c
#if 09 G7 z# w3 K; U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ C: w1 K- R: B5 ~! o6 E- y$ G2 e        if (ret)1 q- w! Y* Z& F' y- f' \' y6 y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 S$ O  b2 W1 U
                                "%d\n", ret);
' o/ y  z9 S$ w3 c9 P* G- V/ y#endif
! Y' S# _6 P" L7 L( Y  S' M        ret = platform_device_register(&da850_evm_tl_leds_device);1 V9 U/ h( x8 }" a4 B4 M
        if (ret)
6 q6 a8 v2 F# \: C0 R6 ^                pr_warning("Could not register som GPIO expander LEDS");# @3 o% t9 E8 X) Q# N) ^; X
        else
8 f1 x$ p7 s6 j                printk(KERN_INFO "LED register sucessful!\n");
7 \8 j1 d# G  D3 P% O  I8 F. o, s$ c$ z0 @
        return ret;
6 g9 Z) i0 d5 Z) ?: g9 R. ?" ?}  Y* Q/ b. T/ o. I% _+ U6 R

( e5 c- `; l' ]/ D. t$ vstatic void __exit led_platform_exit(void)0 [2 q1 d# o) q$ O
{, c) O! M4 R& O! Z
        platform_device_unregister(&da850_evm_tl_leds_device);
2 |/ f& ^3 s* [: X6 s: n% Y% g7 Q$ y
        printk(KERN_INFO "LED unregister!\n");. ?6 o# L3 i! |7 }, C
}2 |! C- u# V+ n8 ?1 ^4 e( C  s+ ^

8 y+ }; ]( {2 ]4 Y$ f; V+ Fmodule_init(led_platform_init);
( q0 {/ c( X$ f7 e! qmodule_exit(led_platform_exit);* f8 P% \, f( n" q* b$ `; g
; T/ L* L$ X. H+ {3 }9 G
MODULE_DESCRIPTION("Led platform driver");$ i8 L0 u4 f& F. [
MODULE_AUTHOR("Tronlong");: O3 J' e9 T7 R2 C! u+ e, J
MODULE_LICENSE("GPL");2 x$ _6 O' `4 H# n0 l9 h

" y5 T6 p$ o; m" Y+ x4 r0 }' ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 13:12 , Processed in 0.039588 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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