程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; J) S; ~1 e7 g6 J, C: q#include <linux/init.h>
7 \+ ^( ?9 q( [$ W7 H. e#include <linux/module.h>
( ]$ b! L/ V2 l& k8 A" C' i#include <linux/kernel.h>
' X& A2 v2 J8 o! L. v/ f#include <linux/types.h>
9 L4 B5 o/ {8 N4 b7 A- f#include <linux/gpio.h>+ S9 h" [6 B% A6 G
#include <linux/leds.h>
6 B6 ]  j9 _. B+ l/ |#include <linux/platform_device.h>7 u' ~3 M; R4 e5 Z3 n) m" ~
! G1 B/ K3 ?, U! H0 u0 D
#include <asm/mach-types.h>
/ A1 ~6 f4 i! L" b#include <asm/mach/arch.h>/ j$ ~& o5 c. s& Y* v
#include <mach/da8xx.h>
# N/ u( q2 n) K$ m, F#include <mach/mux.h>
# T0 {4 ?  ^2 Q+ [
/ |, U* I$ E: m3 V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* h/ \! L! L* f( @7 N2 N#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& \, B' p9 x* ]& E$ X8 K: H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). c+ N0 T$ u$ W7 G$ m! K( a
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 h$ ~" |- p$ U$ b# Z3 C
8 s" P5 H* ?+ _2 S- |8 A0 g1 W6 K* I/* assign the tl som board LED-GPIOs*// I# I9 o3 @2 Q$ b. B, U
static const short da850_evm_tl_user_led_pins[] = {. q$ N! v! |$ F2 R- n0 Y/ O7 m
        /* These pins are definition at <mach/mux.h> file */+ w% x$ m9 P! j. N+ d1 c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* s9 G: y" g+ W  r0 z$ K/ {6 A" ~        -1
/ g8 N/ S$ a  q" e. l0 {. f};* f$ X9 h, j! Q5 E& X

$ k+ c! W0 R+ {: rstatic struct gpio_led da850_evm_tl_leds[] = {- @; k- r6 e1 _9 F8 Q" N
        {
' Z+ u2 B- p. {! T8 U; e                .active_low = 0,
1 }; E0 ?. M! F# e( L5 p                .gpio = DA850_USER_LED0,
  N4 L, U2 g! c) h                .name = "user_led0",6 O3 q& f3 g4 Y! {; v0 ]" C
                .default_trigger = "default-on",
; A* ]& q/ R7 s' }, c2 g; U        },
& x$ O7 m7 v& F! K        {
- e" w( Z& E+ ^9 l4 k+ u( D                .active_low = 0,
" }" l0 f( M% S1 s( w  I                .gpio = DA850_USER_LED1,
+ g# i# {4 {$ F/ Q+ W# O7 E                .name = "user_led1",7 {+ ]1 v$ b, L! @/ J& ~6 z; Q
                .default_trigger = "default-on",0 l# S- l2 H4 e
        },
3 T& y0 |8 J+ _        {$ W+ \6 k* y' S) z1 ?8 Y( A
                .active_low = 0,
3 H+ Z4 b# l. K8 a7 `( o                .gpio = DA850_USER_LED2,# R8 j  k/ \) H
                .name = "user_led2",
4 \3 e3 U* a6 L3 J                .default_trigger = "default-on",# R1 S% O. `  Z7 G7 r
        },. G# H5 k& v% O0 G/ D2 o
        {: ~) q, t2 |% W( n# R, U6 q* e
                .active_low = 0,
' K" I4 j  M) S9 Y  ^                .gpio = DA850_USER_LED3,$ U* @9 S* x  T3 F8 V
                .name = "user_led3",
9 n3 z( v* B( |! u( _- m                .default_trigger = "default-on",6 ?0 t7 P' F( G
        },
$ y+ X# L  U7 V. ?7 `};: G% u" G5 @, A5 s7 H/ \, i: e

( X0 U" T% R8 y# B  Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 P$ d8 t7 R& h* N# D        .leds = da850_evm_tl_leds,
! l" e& A$ u) J* Q" P; c        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: U% M5 T8 e, w/ V
};
, E& I7 {0 P1 D2 ~4 A; l3 P4 q  k8 C3 R2 G! _, k
static void led_dev_release(struct device *dev): a1 }5 O3 `8 P) D& n
{
: v' r2 s1 H, J. Q1 P; `: F2 d9 s: D};) u, C% F+ r- D+ I; K

0 D6 G# X7 m% n; a7 lstatic struct platform_device da850_evm_tl_leds_device = {5 B, I; p$ d7 @" I2 N
        .name                = "leds-gpio",
9 Y) A6 N" d6 R4 w1 D        .id                = 1,
8 r" ?% f2 y/ L4 y6 t: _; S        .dev = {
8 U  {; ~5 V0 i5 w) k4 V                .platform_data = &da850_evm_tl_leds_pdata,( n2 b2 A9 T8 T; f7 v* V
                .release = led_dev_release,
+ o8 J7 T, _% h$ t0 a+ V        }
9 W" _* V2 b3 `* `3 z6 i6 w};1 t! P( k5 B0 x( G
3 k3 Z5 D3 g' \0 s- x
static int __init led_platform_init(void)6 T7 J) c! @) B7 E# Z- x
{
3 |3 e( e" K5 N# m: B        int ret;
% s" Y* e! W" |#if 0
% l, _* F* J! o. s+ n* V. E9 |" e# s        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 w# H& v/ ?6 V0 n. }0 l# N( U7 g
        if (ret)/ }7 Q, K( W% E" e& r/ V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ }; Z) o! X0 `# |/ W5 {1 ~3 q% O
                                "%d\n", ret);. o1 r; B! b" Y! S
#endif2 a7 I# C) k% `! {0 b. E* u
        ret = platform_device_register(&da850_evm_tl_leds_device);
  l- S0 A/ r( {4 M9 }        if (ret)
) D  J1 i9 b- T( M( z5 O& S                pr_warning("Could not register som GPIO expander LEDS");1 g3 J* s: E$ s2 h
        else
, c6 V# A% V+ [, \. v* v" v: k                printk(KERN_INFO "LED register sucessful!\n");, L9 ]- b* [$ {4 Y3 r; F; }" b5 Y2 _

$ z5 v6 O2 [2 Q* W! @4 Q        return ret;4 ?8 `) L7 `  n  W% T6 j9 s+ s
}
, z" J5 ~- Y3 t: g2 U+ t) u
! {1 l9 G0 X1 u) B0 e: V5 _static void __exit led_platform_exit(void)! i2 E" G& H8 _" b
{3 K) R: E4 B# N/ L# W
        platform_device_unregister(&da850_evm_tl_leds_device);
; F' `2 d. F. a4 X5 d5 k5 W" R
3 L1 H6 U7 f& _+ W% ?        printk(KERN_INFO "LED unregister!\n");+ w+ z! u3 A# ^; |
}
! o3 e5 L1 J/ B' G
1 r5 a" ^' V0 G- n: L" Lmodule_init(led_platform_init);
0 ^. Q- ?0 }% M6 q7 n5 P  Nmodule_exit(led_platform_exit);& M) e" _- D4 U1 Y; I) l) `1 L
  x' N* s& O/ b
MODULE_DESCRIPTION("Led platform driver");: w" `! C& [1 Q6 H6 j/ P
MODULE_AUTHOR("Tronlong");" V& I4 @) p# a& R8 U
MODULE_LICENSE("GPL");
/ M! N9 e' p# V- W% G
0 ?" A9 k3 u; w, v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-8 00:05 , Processed in 0.034863 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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