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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& u2 U, w% P  f1 r" S#include <linux/init.h>
$ `- Z9 Q* G9 v) [2 @. N  P! u#include <linux/module.h>4 \$ `4 e6 [, k+ P0 ^( h
#include <linux/kernel.h>
( ]" x4 c- c0 c#include <linux/types.h>" P: \+ B1 r: g" u, O
#include <linux/gpio.h>
' q6 \5 L& E7 s8 x0 i  Q  p' J#include <linux/leds.h>
) I5 z  C# `% V2 Q$ j#include <linux/platform_device.h>
" L. }2 r9 J. {# Q2 ~1 F4 B# |! T! i. ?
#include <asm/mach-types.h>$ J2 x, D+ v( V  f
#include <asm/mach/arch.h>5 T5 L4 b' [* A7 Q4 d8 D5 o
#include <mach/da8xx.h>) B# o* N6 [9 M; J: j: E. H
#include <mach/mux.h>' R( _# ?2 Y: P' B
+ R9 v% Y7 m9 I  Q4 J) G4 c' \
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( Z! R0 @! K6 X  \, c) ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 u) z5 ]# `. s7 y7 T7 m
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ e/ y+ _" W  f* O! x% m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! I* a8 y9 ]- q$ f

) n6 Y9 f  N+ z' g. c: x3 B/* assign the tl som board LED-GPIOs*/# b# ?6 x. p  |" x6 T4 q% H, N
static const short da850_evm_tl_user_led_pins[] = {
  |$ ^6 }% F% N7 O        /* These pins are definition at <mach/mux.h> file */
7 b1 x1 u+ m" B+ i4 @. Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. j6 s1 }/ ]. V0 z1 N% h
        -1  r9 @# y. q) k- o0 i3 t
};8 S$ R2 E; H; L4 c8 @: a5 q/ z* B
$ U! n4 m1 f; ^
static struct gpio_led da850_evm_tl_leds[] = {
  U9 U. q4 B8 J9 C0 e        {" v* q& w! u% |1 U/ `
                .active_low = 0,
. g& ?2 d" z0 G                .gpio = DA850_USER_LED0,
8 c& M5 X8 v8 ~                .name = "user_led0",* ~8 a6 O7 e6 D* Z, ^) b% O
                .default_trigger = "default-on",7 m; I- Z" S9 O# C( K9 d3 Y. ~
        },
/ _1 J6 D  \7 x& k: V        {% r7 I  S  [( n) S% o, L% k
                .active_low = 0,3 j3 K- l+ P( _- _
                .gpio = DA850_USER_LED1,
0 c9 N( [- |, L+ R" p; D* O4 T                .name = "user_led1",
/ a" P, d  y# ]/ t, @, B! ?                .default_trigger = "default-on",
. s' H0 J5 E2 S9 i  o" ?  I        },/ @0 R3 h: {3 G3 C3 ?
        {4 }: k( N8 Z) o2 d
                .active_low = 0,  i" X- z, e% h, ?+ z  |
                .gpio = DA850_USER_LED2,8 y" y. y* S( L1 L- j
                .name = "user_led2",
$ ~: E, W+ N- S" a6 h                .default_trigger = "default-on",8 E; Z$ E- v' n
        },' a1 {. ^- w% [2 S) ]: b+ k
        {
2 X& S# A  j* F0 n# }                .active_low = 0,; V5 o6 B7 o7 B
                .gpio = DA850_USER_LED3,5 e  Y9 P: K% ]9 }' C
                .name = "user_led3",5 _4 [4 V% q/ a' j5 w' K( t
                .default_trigger = "default-on",
' s* R3 a$ M: x- D& W6 _. w        },
( g8 N# N; Q3 P( _( o};
$ V$ T9 i# C7 X7 C$ F& L4 n* ?6 v; k; q; T# q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) H5 V! ^8 P, v8 R" H5 v
        .leds = da850_evm_tl_leds,
7 `1 y0 l. F6 ~7 o! [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 {3 n2 i% e3 t0 @6 \};! T3 @7 v  V# `" K

  A  Y" H5 u1 s. N2 J% y% ^static void led_dev_release(struct device *dev)
4 W& z4 G+ Y5 x- u% B5 v+ G/ h{4 U6 x: p( q2 X8 Z4 P
};, F7 U: X9 a1 ~! Q$ d
6 S! D0 R& T# _$ o0 }% l
static struct platform_device da850_evm_tl_leds_device = {
0 r8 Q' ^3 i: d4 v3 v' Q4 J6 D        .name                = "leds-gpio",4 p! k' ^0 f& \) E; j! w
        .id                = 1,- ~. o- J7 e. @% N7 F
        .dev = {
- M+ z" X& b% T" D0 `1 ]6 [                .platform_data = &da850_evm_tl_leds_pdata,' V. Z6 r0 r# M
                .release = led_dev_release,# a  ?# L( o9 e2 Q* F
        }
; i6 t/ K3 C& ~};6 g/ Q$ K3 v- N8 R& G- v% G

& g  m. |& n4 T* ]) Hstatic int __init led_platform_init(void). l  v/ o5 n. Q  Y& b* e) x' V2 K
{9 |$ L  `$ X; g: f8 y5 {
        int ret;) |7 o0 O# I* I" Z
#if 0
3 w0 B$ a+ M6 r& R& J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% l& d+ E$ a7 c+ O; V        if (ret)
, U& j1 [, w1 t( u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. ?  T# b+ M) d+ u/ z( x# d, g/ F                                "%d\n", ret);/ Y! t' z' a- S3 p
#endif, ~" l9 L! W4 O
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 W' H$ y3 I# \$ V$ l        if (ret)
5 t- N2 Q( H$ ^6 z  P+ t                pr_warning("Could not register som GPIO expander LEDS");
' U( _! a. k' c/ Q3 L7 x        else) e' C3 e/ d; n1 `6 W1 G; Y
                printk(KERN_INFO "LED register sucessful!\n");2 m3 v* E9 Z( b8 p+ Q
2 g" C7 O- w. ^8 l( h% D
        return ret;$ C4 M0 i1 c( n! i4 z) H/ W
}/ G1 I/ {- U: a$ x- @! s

0 \# Z8 T) Z& ?% S, J" sstatic void __exit led_platform_exit(void)) |, L; q3 ?$ j) v( C5 ~, L1 ]% k
{9 ?+ T( a- \8 d# A: V6 D9 i
        platform_device_unregister(&da850_evm_tl_leds_device);9 @- x3 h  L6 {, F/ @4 E
+ S) _& U# y5 X8 {# K( ~
        printk(KERN_INFO "LED unregister!\n");/ d' ]9 v' B7 x
}. t+ e- x( Y/ p# w0 v, ]

9 E- l& ^9 G! M$ z" P9 S; v/ j7 Wmodule_init(led_platform_init);% T1 Q: c- s% ]1 T0 u. K
module_exit(led_platform_exit);8 x: f# a1 h5 Q2 a+ Z' g
# N5 o  a* c4 d1 w" w
MODULE_DESCRIPTION("Led platform driver");
5 ?  {) Q$ \6 M7 ^, D3 p  a6 xMODULE_AUTHOR("Tronlong");5 q1 Z$ o# b- Y& Z' |3 a/ b
MODULE_LICENSE("GPL");4 M0 n( v- p( L

# e  B* G* X; S5 ~- d# ?4 c- `, n+ P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-14 23:47 , Processed in 0.039039 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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