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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 {, g5 O  \) v& N8 w#include <linux/init.h>8 K1 q' T. }, ?5 [9 K& S5 l) ^
#include <linux/module.h>
2 ^1 s7 E' [4 `$ F#include <linux/kernel.h>  x& C( i$ [  G6 P: n: O  k
#include <linux/types.h>
& }, J; t# J( Z( z  w#include <linux/gpio.h>* I( o. G- e5 {
#include <linux/leds.h>6 ^9 g4 c+ i9 C1 c4 U) R
#include <linux/platform_device.h>
9 z. W+ {4 T; N+ Q+ {* }6 q1 q# I! m
#include <asm/mach-types.h>2 }0 e4 k& S  e( d* t0 Z
#include <asm/mach/arch.h>7 t2 z" q9 H5 L3 w$ p$ O2 v& `
#include <mach/da8xx.h>
7 V: y; t" h* \$ \4 D( g: D#include <mach/mux.h>, j7 s1 w$ Q* Z4 p& @

0 _% a' o  I4 y: Z4 C+ v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 w3 [3 x  N8 r- ~. O' C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 h6 l; z. I, p5 F9 q: f0 _, O. s3 o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 J5 n2 O. G! B% g8 h/ z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 V2 T3 R8 W' C; M& `6 T& t# [# `- |3 o
5 R3 u5 i2 u6 R- B3 z  T* B; ]/* assign the tl som board LED-GPIOs*/
# B. s" J0 F& O: r" L# p$ e+ Ystatic const short da850_evm_tl_user_led_pins[] = {
6 s6 R1 v5 [1 p$ H( ^        /* These pins are definition at <mach/mux.h> file */
2 i6 L1 ]% b) G" ?( t* ~        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 _1 _5 f- j7 e6 |5 `& {        -1
# s' C, @3 p* ^* u. c};0 x" k$ |$ Y' @% B- f) o! ?

4 Q# `( F0 g& ~1 t, astatic struct gpio_led da850_evm_tl_leds[] = {
+ H+ ^2 q' {+ m0 }        {$ M, v+ U& ?; T1 m# O
                .active_low = 0,
2 i/ j/ p7 j! i/ H. P/ r                .gpio = DA850_USER_LED0,
0 ?  n. y" J. y+ `& v0 E! \                .name = "user_led0",
9 _$ A4 F/ ^, J                .default_trigger = "default-on",
& r$ x3 P) Y8 f7 m. v        },
. X5 H9 A/ N- }0 o        {; X4 F" S- s" S7 L- M% L$ d4 q
                .active_low = 0,
" d' N7 [7 W. t0 P+ w: f( W                .gpio = DA850_USER_LED1,
) z9 n8 g0 D, J3 l3 J6 {                .name = "user_led1",
2 d1 \# e# E1 ^  e) W+ g5 E* L                .default_trigger = "default-on",! F+ n- s+ b; ]! d: f2 ^0 N) x
        },
& a# K1 f0 K$ [( h        {
; g: `2 Q# j! Y                .active_low = 0,
5 q" o" @! s+ U                .gpio = DA850_USER_LED2,
( y4 c  K2 p- o- v  R7 R+ N' J                .name = "user_led2",1 m' I  S3 l3 A/ X! v, j) b: X
                .default_trigger = "default-on",3 `7 ]; X+ Z# `6 T5 \( A) R
        },
' R6 ?3 j: F; m! ]0 |  C5 N$ l        {
8 H7 x* J) g" i& i                .active_low = 0,
2 V8 ^4 G2 c* ]                .gpio = DA850_USER_LED3,
/ u  S& u* A! B' d! }                .name = "user_led3",4 }$ Q. i3 M" f
                .default_trigger = "default-on",
; @" j9 L" v! x2 z! I        },0 G/ R5 F  K/ C  x# j
};
2 O$ {- x) b0 I* Z5 R( Q
1 j2 X1 f" P, V/ J5 b/ Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 k. c+ o8 x! T1 R        .leds = da850_evm_tl_leds,: t+ v# x2 r7 ]6 `7 J' t3 c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 S$ B* G+ {6 `$ _7 T
};/ F' b" P3 I% S0 B' ]$ w
) k9 m" A! K4 G  G  e  b' z
static void led_dev_release(struct device *dev)
5 _$ F  P4 b0 u- F# C9 r% G. Q2 W( O: l) l{
; G; a/ e) }; u% g: y};
  \6 l. S! S  I7 o3 v" D% N8 [% C3 k* B) J
static struct platform_device da850_evm_tl_leds_device = {# p$ s8 o/ W- {8 e0 R! T
        .name                = "leds-gpio",# E- M! H, D; k( g: m- A8 j- D3 I
        .id                = 1,
; o, i3 \, ?3 R) F+ [( a$ r        .dev = {
' L* W9 m$ n/ O5 I( g                .platform_data = &da850_evm_tl_leds_pdata,
+ e, v/ u! u4 }) D/ }                .release = led_dev_release,2 w7 U% d# ?) h4 s4 C: R! ~, x
        }
( d% \) w, h/ e& ?# P5 c( Z8 t};# V: Y$ U. d, \' A- q% {
3 m3 n* j( D6 M8 w
static int __init led_platform_init(void)
$ O3 F, v4 q5 K; C& U: l{
$ u9 S4 Q  a+ a  \        int ret;
' `/ N1 Z8 @# o, N* I" |: ~# p#if 0
: ~) K; b8 K3 ?( N8 |7 I. b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, `, X2 G0 |2 P8 l
        if (ret)! }. W( b: z. }1 K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% J$ [( r- X- J# c7 f% c2 W& S, h; V                                "%d\n", ret);
6 d5 T; N5 Y$ f* S#endif
/ {+ I7 I# k- `& x( n7 ]        ret = platform_device_register(&da850_evm_tl_leds_device);0 Q: f& H7 z' J( i8 o
        if (ret)
) f" G( C0 t0 N4 E' M7 M1 ?                pr_warning("Could not register som GPIO expander LEDS");' D6 Z( V" x4 m* B2 k* c
        else
' ~& s; a. A4 t1 `                printk(KERN_INFO "LED register sucessful!\n");
4 A! s! t% T$ r3 A5 E! X- q+ ^( e5 u& G* U5 y! M% u+ l
        return ret;/ H# `5 B  A( C% ]; }8 q# N3 k2 c
}  |4 {' S  ~' D1 g, Q
2 u/ r2 [: e$ U: G3 o0 D/ n6 y
static void __exit led_platform_exit(void)+ A  R, w  B  S9 h3 F( Q* P
{! ]. W1 g: b4 l/ C7 Y4 j
        platform_device_unregister(&da850_evm_tl_leds_device);' K( z( ?, x( _6 d' z& u% M

% ^& j/ Z( v1 K! m9 b4 c        printk(KERN_INFO "LED unregister!\n");
3 u' P+ P1 C. ^' f% y% ^}
% ^; J$ h6 |0 q" I3 ~  q: |3 A% P" j( o* K1 {* \3 r' T& J
module_init(led_platform_init);
  y6 C% U2 }5 q# E+ N" R3 a9 a; qmodule_exit(led_platform_exit);
$ Z  ^; _8 g" R1 D. }# r6 r+ \3 z, f: ^; D
MODULE_DESCRIPTION("Led platform driver");1 e' ^/ [0 D: J; ]' }0 \3 K' F
MODULE_AUTHOR("Tronlong");+ G  n/ a7 v0 |' _1 D
MODULE_LICENSE("GPL");0 E: }! D$ s' \" W+ |& b

1 K+ L: B: K* M* O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 09:44 , Processed in 0.040928 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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