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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 \$ w6 H6 A6 M" x, {# E0 Z; i, U#include <linux/init.h>+ l' y9 ~2 e/ o# m. T- \
#include <linux/module.h>
# K- D8 C& \, O& _9 ~& p) G3 p% F5 _#include <linux/kernel.h>
& i/ q9 i0 h9 u( ]- r) t#include <linux/types.h>
' E) a: e8 v6 U- J3 c#include <linux/gpio.h>3 Y: M) d$ Q/ L. u1 Q' }
#include <linux/leds.h>
5 _$ c2 g5 Z, n0 y1 S" z& n#include <linux/platform_device.h>
( B9 P8 A' R1 X. i3 ]: {5 Q# n' M! ~9 |$ Z. `5 d
#include <asm/mach-types.h>
4 s3 {/ f" W* X9 L9 Z9 e#include <asm/mach/arch.h>3 A% c3 ]* T# v& _
#include <mach/da8xx.h>
4 `5 ~* L' x8 B) c- @#include <mach/mux.h>
" {+ B$ i0 g/ ~- E- _6 e
0 |7 {+ b* W4 u1 i, a. |8 y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* \$ f/ q- m8 j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 C1 t5 n; y, d7 j6 g/ ?0 y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; [3 }* M; y0 g8 \5 ?2 O, H' ]: S#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) Q( v$ N0 T0 E6 L/ d5 h+ R
1 s0 n) }. a' [. W2 D: x7 |+ A5 ~
/* assign the tl som board LED-GPIOs*/
5 z5 G) B3 o- g# f0 G, F; ?+ Fstatic const short da850_evm_tl_user_led_pins[] = {, k0 P/ q) e: `4 J) E
        /* These pins are definition at <mach/mux.h> file */# v3 H1 Z8 [3 T+ r8 x+ e$ A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. l# S+ l- h/ L
        -1
5 w( [) z+ ~4 T% b9 d% p0 \* x2 p, Q) }};, l' b5 G: b6 c- A
' O2 S$ \5 X; l
static struct gpio_led da850_evm_tl_leds[] = {! x2 ^+ [9 ?' m9 _0 v
        {3 U7 B; }2 K& A& G2 J) G  h* S
                .active_low = 0,
- B  F# R2 t; o. j                .gpio = DA850_USER_LED0,, Q( _9 F! o) g- T
                .name = "user_led0",
# k8 x7 {: j" ^8 e' v$ I9 h                .default_trigger = "default-on",/ w3 H! r, J/ s4 R
        },# o7 g7 f" X) e4 _2 s# W
        {
6 q- F* N5 o7 `( X3 e: f! o                .active_low = 0,
. f6 P; T! u4 F7 @3 e7 g/ a2 W! o" Z3 G                .gpio = DA850_USER_LED1,2 m& i& J+ ^) E+ J- D
                .name = "user_led1",
1 |! ^7 ?7 u! V9 R% i                .default_trigger = "default-on",* q0 `6 q, l. c! k, i* i7 i& [
        },
0 J( U8 t+ I/ Z6 H; D/ j        {
, v# R( E! ^5 q2 ]$ H, C" y- M7 B0 p                .active_low = 0,) T8 S  ]9 N- J4 F8 m% S/ W* N1 a$ ]2 P
                .gpio = DA850_USER_LED2,0 u: ?5 z$ h7 K; P5 P
                .name = "user_led2",
. e: ^* F6 ^5 f; D. C" @                .default_trigger = "default-on",7 A5 e; A, a' j
        },
. V2 l4 P) r3 K; f7 Q$ w1 ^        {
1 N) D7 b6 o) H8 j! z                .active_low = 0,- A# C0 E1 D9 s5 M" }
                .gpio = DA850_USER_LED3,1 Q. c6 [" T5 ^6 _( o0 z, x: J
                .name = "user_led3",% d  a9 Q% ~/ U$ n9 G, S
                .default_trigger = "default-on",
4 M- v& e0 m; I$ m        },
2 c4 p+ U: J" @7 v  }3 V};  L/ j5 j6 @$ V% u5 X
; V- h" j" w. A; b3 V% ~" @
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 S# P7 f& M. A: u$ K% z        .leds = da850_evm_tl_leds,
8 r4 S; M% A9 q% o, J        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# i0 C" r) h+ z3 L% H
};
3 C% v6 f/ P) d" `& T. k& D: {. N, [" ^9 [7 K/ Q
static void led_dev_release(struct device *dev)
# S, G- H- S$ Q( T% J/ f( y{
% C( H1 j( p! ?! M3 _' Y};
' r- X- @+ |/ m% \; F% ^
# ?: P8 k" N+ o+ ~  m0 S! S/ dstatic struct platform_device da850_evm_tl_leds_device = {0 ?3 r5 F/ A! {& `1 A6 H
        .name                = "leds-gpio",
4 Q( i* A3 i$ A        .id                = 1,+ W# m% ]' U, ?) M6 s8 j5 n$ }: M$ J
        .dev = {0 u6 Z+ _& S3 D: Q( I/ R2 g
                .platform_data = &da850_evm_tl_leds_pdata,
5 N, H' F7 b& M: f) ?1 x% ?- m                .release = led_dev_release,1 n3 V8 a' {" L. g
        }
6 ?; j9 L; Z0 M};2 r6 \- n% G; v& D5 ]

4 b0 |, z; Y4 Hstatic int __init led_platform_init(void)* Q! p' a2 ^  K' O) V
{2 }/ g1 k* s: h# t% @' A$ {. d- A
        int ret;& _/ A+ V6 a( s4 \( L7 q! H! e9 R
#if 0; S/ v& S" J& v2 c, |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 K* j& p/ I# Y, y        if (ret)+ `( H+ C5 G7 {3 c
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", Y# M$ G, s1 ^0 }
                                "%d\n", ret);
8 D4 k+ D" t8 F/ ?/ E- l$ ^#endif4 O0 D! A- v1 m: z! Z6 f  g
        ret = platform_device_register(&da850_evm_tl_leds_device);1 H! r) N2 [! v  E1 x
        if (ret)
; @- i" G8 ~/ [( h  i                pr_warning("Could not register som GPIO expander LEDS");. c0 [1 J: v# ^/ a% C: k/ c
        else3 X% F/ C$ ^0 [
                printk(KERN_INFO "LED register sucessful!\n");( z: t( f8 U% k% {

  a& j+ v' \- \        return ret;
4 i  g3 C# l% P6 g3 e- d}2 z+ i6 B8 C- S" S
) o/ W6 B5 f$ Z; M$ |' t+ ?
static void __exit led_platform_exit(void)! ~6 l  z; k" f' c# b
{
# b! q: n5 u2 s! F, ^' R, n3 k        platform_device_unregister(&da850_evm_tl_leds_device);1 ~/ K; F) f7 n) |. M1 G8 ~" {

7 Z* I+ ^1 Z$ ~' s4 O        printk(KERN_INFO "LED unregister!\n");" S9 w; X+ T! e0 t7 T& O; \5 U
}
" N0 n6 m1 F  p5 ~$ y  J3 ^
, w8 A) R: ~6 P) `8 P$ hmodule_init(led_platform_init);
5 ~9 W, ~; ^9 V5 T, Xmodule_exit(led_platform_exit);
  I7 o& K% P4 @4 F9 P5 s* ]! k  g# O. x  `' A
MODULE_DESCRIPTION("Led platform driver");
% [* }' b# Q- K% FMODULE_AUTHOR("Tronlong");. x3 H+ `3 i6 H' ?, G" s( Y7 \
MODULE_LICENSE("GPL");
  Q9 u4 g- h. _$ b# n3 D  Y3 c6 a& {/ Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 21:53 , Processed in 0.039926 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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