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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* ]9 W, y9 q4 x6 y% C$ B#include <linux/init.h>9 q; f" h# _6 _) P) B
#include <linux/module.h>
5 f# x- Y  D& M* M#include <linux/kernel.h>
0 m; c4 [6 Z  F+ I7 I9 |#include <linux/types.h>9 V) s7 ~; W6 p1 q, {2 A$ T
#include <linux/gpio.h>2 H2 ]$ S/ w$ w; Y4 C( x
#include <linux/leds.h>5 b# C( }. ]3 {, G3 s
#include <linux/platform_device.h>9 x/ Y2 F8 e; b* C

" Z+ o2 Z% d* e8 e#include <asm/mach-types.h>; }+ q) Y3 T; I% b  b
#include <asm/mach/arch.h>* ]8 I6 f' s; H$ n, I4 x
#include <mach/da8xx.h>5 P9 E/ X% K0 u2 q  s3 y
#include <mach/mux.h>
; e; ]2 S6 ~1 E- d+ `7 W0 H/ z1 r& i! t
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 a4 H) V  _4 I! q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  \% b. o% x+ T# e) [
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 g% Z9 R7 P+ i2 {' z3 Q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& }" Y( q  W' [2 Z4 V' W! X+ d0 r% J9 _8 O8 f1 A
/* assign the tl som board LED-GPIOs*/: b  T) U/ F5 G2 Y
static const short da850_evm_tl_user_led_pins[] = {
! w' n. @/ {0 I        /* These pins are definition at <mach/mux.h> file */
" B, Q; l! j4 ?! j2 n/ d9 `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 R$ [0 c: M' g- N6 [& U        -1
% Y3 y% T4 y5 {; l1 Q9 B};# G8 P& u- c% J7 X3 M: W- C

; s: C; N! o9 B: K$ K+ gstatic struct gpio_led da850_evm_tl_leds[] = {
! O9 }' L3 z# W8 i) m        {- T* x5 J9 S# O% @6 L' ~
                .active_low = 0,5 f2 f2 s/ r9 b) F9 e: m
                .gpio = DA850_USER_LED0,
, F5 M) Z2 q2 A$ P5 D) j8 \  D: C                .name = "user_led0",2 |: {4 }4 @) [- q& b
                .default_trigger = "default-on",) v# b) k- o* |8 ?
        },* d! }- l. L& k9 `5 R: i
        {
# N; S. b7 \+ b! s1 x* n- [                .active_low = 0,0 ]3 u' [& W. y
                .gpio = DA850_USER_LED1,
2 Z' k) Y# ]" j$ i2 U6 T) s. F                .name = "user_led1",) Y/ D( [3 \/ B2 E9 }* p  z" ~3 K- U. [
                .default_trigger = "default-on",+ @, }* e6 X# K& {. u6 C
        },3 Q% X8 d$ L1 b7 o& M7 |' g( j
        {
2 _9 |7 F' O; e1 X                .active_low = 0,
( b; m% N( V; e& I$ c3 I                .gpio = DA850_USER_LED2,
% j6 {$ ~; J# I8 i                .name = "user_led2",
9 N: K: Q8 L, D; W1 U' R4 @                .default_trigger = "default-on",
# o5 ]( D9 r4 D+ W0 K$ I9 Z        },
# b; H1 E% b9 F& l' W( c        {
) E+ E( X- L# e  _6 @9 Y                .active_low = 0,/ h  @- m- B# e( @
                .gpio = DA850_USER_LED3,7 X; A9 T. x; H& `+ e! [+ @, s2 F
                .name = "user_led3",
1 W: N5 T3 D$ M0 {6 i: T/ R/ N; O                .default_trigger = "default-on",
0 A( c6 x0 G. x7 f& f6 q7 M- V/ `        },
; ^& i0 x0 u; L* H7 E) u1 l};; ^* J( H/ @! e' S! d

1 {' k' c8 n, i% B; e6 `& _& s9 {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. i4 m0 O* S5 p) [& y8 I
        .leds = da850_evm_tl_leds,3 r2 e, i1 V9 U
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& V1 j6 y7 f% v6 s4 B/ ]};5 {) \' c6 @) Z% B1 g6 a
' h8 J- G8 v, ]" e) g: G. x
static void led_dev_release(struct device *dev)
; k! j( x! c& }9 D2 T  ]# H{
( s( D: e3 z% \# F% t: C3 G9 Z};
* X) G) @& c; P2 B4 K4 f9 B0 H9 z' q% N5 E9 ?0 t; q
static struct platform_device da850_evm_tl_leds_device = {
" T: m# O: g" a8 s8 J* u        .name                = "leds-gpio",& L  [' r8 x* ]) u* h9 |
        .id                = 1,$ P- O+ G2 g/ D8 j
        .dev = {$ |3 L4 }: L6 T# r
                .platform_data = &da850_evm_tl_leds_pdata,
* l3 T7 p+ q: L6 A                .release = led_dev_release,4 _: o$ k4 u) i) T5 V+ Z+ e8 s, n
        }# i, _, Q' \$ v1 Q3 k! o8 S
};. i/ u4 U; y* p# W
3 ?7 ^' p# i* \& ]' O
static int __init led_platform_init(void)! @* C* K" E  P* P
{. U# }8 d& J! g
        int ret;5 U8 D- [  A. z  j; z- ~4 l' ^
#if 01 o' C  |* C( n9 F
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" K3 t% r6 j  ^$ D. E5 Y        if (ret)
" p! Q  h" F: |+ b) ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ z/ d4 W( m% E5 n9 }+ b2 G4 Z6 h                                "%d\n", ret);" |! R; U9 C  }! ]
#endif, Q# ~: s$ J7 e7 t5 w
        ret = platform_device_register(&da850_evm_tl_leds_device);
" f  z6 g* Q' S! k2 E9 x1 f        if (ret)
' z: F& [' T8 @! O6 |% S                pr_warning("Could not register som GPIO expander LEDS");
# a- a6 \( l5 U2 x4 o. V8 n3 T1 T0 ]        else
8 K9 S) X$ d0 L, I- l: T5 X9 q- z                printk(KERN_INFO "LED register sucessful!\n");
. `! V1 A7 M6 |& Y: e
7 {  z; N( P' q        return ret;
2 `5 v- ?8 m7 N, I7 v6 g}
& s) ~. l# U# N4 D
0 d+ F8 f+ I% h1 }; d5 Y( p. Q" pstatic void __exit led_platform_exit(void)- ^0 h" |3 r* }9 \5 y. x5 Z) k
{+ C" ]. S0 `7 p
        platform_device_unregister(&da850_evm_tl_leds_device);
* r) Q$ n9 ]9 P+ a4 E4 c
( b- z" v8 x* }- ]3 J        printk(KERN_INFO "LED unregister!\n");9 l+ F6 c8 Q; g+ ?, w5 Z. Y- `
}
& x/ a3 T3 C8 X  H/ Z+ O: U
  I7 x& A' T% A5 O/ rmodule_init(led_platform_init);
, ]1 N) e% A5 T& Dmodule_exit(led_platform_exit);( z' r- N' |0 Z* ~0 [/ s

- a5 x( Q; P0 H. {/ _+ kMODULE_DESCRIPTION("Led platform driver");; t& S8 m4 B0 R$ k8 |& i+ o. \
MODULE_AUTHOR("Tronlong");
8 n$ j8 |. j+ @% D7 [( }  yMODULE_LICENSE("GPL");
& J: K1 N8 M0 D# ?3 Q$ k$ M% E; z: x3 _& R- P2 n. e& Y( `7 w( }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-10 19:00 , Processed in 0.037081 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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