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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 T4 L0 G, R7 z. V9 E
#include <linux/init.h>/ M# D1 `. @+ x1 y4 }" p5 E; ~
#include <linux/module.h>
' @. ~4 ?# Q; p/ C/ Y0 \: X#include <linux/kernel.h>- d$ L' w! |! g8 l
#include <linux/types.h>
8 ^! b) |. i% {) _8 b% Q#include <linux/gpio.h>
8 `9 _% O' `! x8 u  s4 B$ Q#include <linux/leds.h># A9 ]& @; h  A4 ~7 x- Q% S
#include <linux/platform_device.h>+ c6 _3 M8 M& A, d( Z* W- w
' a6 K, ?; p% M* ~8 f2 m
#include <asm/mach-types.h>( U; I( ?7 a3 m6 W8 s  q. s
#include <asm/mach/arch.h>. ]. L8 K, E- F7 G- n6 Q
#include <mach/da8xx.h>, O, c$ s/ `8 I0 y
#include <mach/mux.h>
$ C% `* f' s8 q! C# R2 S2 J' v( P4 H
4 A: N7 V% J& E8 n( l. Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 n7 ~$ M- w# w; @1 q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 F4 ], c7 q: b0 a% b3 w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! o! n3 z% C3 C( m% O0 ~8 X4 J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* w% n8 l% M" q/ I' S
) B/ O5 ]0 g/ q9 q0 u* f4 s, Y3 a
/* assign the tl som board LED-GPIOs*/
$ ?9 N+ }# U7 _/ D. [; R( g' \static const short da850_evm_tl_user_led_pins[] = {* U0 u$ b4 m( c0 k" C( K  s
        /* These pins are definition at <mach/mux.h> file */8 F0 o* c8 y" d& J- D4 V2 J0 z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) G6 a) R5 u. X& q% T& T7 o        -16 J7 B( `. @  x3 ^  n% _7 g8 J
};
. r9 G4 U6 \. P4 b$ s* I" o. |
& I3 u% Z3 \2 w& d/ vstatic struct gpio_led da850_evm_tl_leds[] = {( g6 F, w0 s- G2 t% E
        {# M: V9 Y, R2 V; H
                .active_low = 0,* y) K' w) X- s! N; o! ?# ~5 m
                .gpio = DA850_USER_LED0,
- ]1 n1 m5 k4 h  ?                .name = "user_led0",
1 y- K' F. A1 L, K) S                .default_trigger = "default-on",
2 n6 @* k* h) X3 z        },
" Q6 Z/ L2 }. y        {, O* ~9 ?9 f) K0 u4 i
                .active_low = 0,
3 G+ r8 n5 l$ Y9 x8 `1 T                .gpio = DA850_USER_LED1,
, t. {# K2 `% q) P0 u                .name = "user_led1",
% g& E3 t. B9 S1 e4 @: A9 W- c8 H% t                .default_trigger = "default-on",
1 k# r" C5 @( [( F4 Z        },! ~& c- Z7 O% C. i  o2 n+ x% @
        {
4 @$ F  t/ j/ G' |3 l                .active_low = 0,
# q1 K' a, k) Z                .gpio = DA850_USER_LED2,
4 G3 Z% M* x& s                .name = "user_led2",
3 G( S3 t! {! T5 z1 R- S, m                .default_trigger = "default-on",6 C/ I' U% ], E) }/ K$ m+ Y
        },
6 {3 S5 j) f" F9 Z' `        {4 V2 _# ~) V' U8 i# G  T
                .active_low = 0,$ M! {+ t5 J+ f6 D, F
                .gpio = DA850_USER_LED3,
. _1 Y/ _5 d' w& O                .name = "user_led3",
" l# x& F9 F9 I6 Y9 s- g                .default_trigger = "default-on",
. x% A$ [3 F7 \- b        },
; ^& Q8 H  @- {9 \" q};- M7 m+ U* B: x2 l' D$ e& h6 E

( I1 F! v6 v3 s4 @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 N- U9 E2 u8 h+ ^        .leds = da850_evm_tl_leds,
/ z  S! E) Z+ V5 T5 ?# H        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% m' r$ b7 r/ S; b1 U};+ i/ k( K7 x; q" o7 g8 p
* c2 e1 x* A4 ]
static void led_dev_release(struct device *dev): x" S4 a! G& K8 ~! P: \4 ]3 s
{
  t6 o' p0 C; p};+ ]& @2 e- K$ O! e, }
2 r/ |; h/ X+ Y# j; }1 H
static struct platform_device da850_evm_tl_leds_device = {
7 ?! `5 c% d. V3 g4 g/ W# D- g        .name                = "leds-gpio",
1 s' p% ~" S2 p        .id                = 1,% I, G1 r' f/ q4 K( M# I
        .dev = {
" Y% H  x+ t4 _& h                .platform_data = &da850_evm_tl_leds_pdata,
0 s& t  q% N, C( }/ e                .release = led_dev_release,- \" i0 ~/ q% I, U
        }
: l9 q0 R, i! Q3 [! z, }7 E};
5 y2 N1 i1 ?  j1 r: _" s) g6 d8 N8 v+ t; G* B! {7 e4 s
static int __init led_platform_init(void)# z6 I3 p0 @) N. ]
{9 r' U8 b1 d! W/ P) j# {/ l0 P9 w
        int ret;! v6 t) Y/ @" I1 B1 R
#if 0
% o& X4 R7 ?" d3 l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 _( ~7 x1 y1 V) s' _! v  @3 x8 z        if (ret)
/ V; V0 b9 e! R$ K8 m. W" v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ v! P3 w7 N$ a6 v: \                                "%d\n", ret);
( J1 y. {, |! }3 `8 A; z7 e/ Q#endif
. F( _! ~9 s3 F5 a* n+ S1 Q        ret = platform_device_register(&da850_evm_tl_leds_device);
- `2 p" }/ |4 X4 M0 ^        if (ret)
, L% D$ c2 a0 |. p; N1 S; M                pr_warning("Could not register som GPIO expander LEDS");
- c6 q, }8 g0 E" ~& f: n7 v        else
- V$ d3 R! m5 Q9 _1 C                printk(KERN_INFO "LED register sucessful!\n");. |0 k0 p- n( `  H) T
. A: A1 W  F/ \1 S# s. N/ X+ `3 \1 W& u% `- h
        return ret;9 N4 d4 ^) |- X0 m
}
% e3 o7 a3 X% Z" @+ x, H2 C* ?" |% X% B0 {
static void __exit led_platform_exit(void)7 O( x/ G( [% d' m0 G
{7 ]; d4 C: L' k+ g4 ^+ q
        platform_device_unregister(&da850_evm_tl_leds_device);
7 c% }% A$ C4 U' z
' K* Y# n; S, }5 a; O; s        printk(KERN_INFO "LED unregister!\n");
) z1 R  E7 Y/ W; ]- T5 V, p}4 {- D3 Z9 W6 J3 `

7 h0 U3 ^. J& Z" z& f1 Vmodule_init(led_platform_init);
- ~8 t) T+ n' m# \% r0 S8 M/ Mmodule_exit(led_platform_exit);- g% `" |4 o# r& O& x  p
. y" f# k1 {! `. b# q* Q
MODULE_DESCRIPTION("Led platform driver");; D  ^2 h7 v- T: ^! u" F
MODULE_AUTHOR("Tronlong");
( A% f+ L/ Z! w. _& w% u( QMODULE_LICENSE("GPL");
2 J; a( p( z2 I& E5 q/ a9 _+ W
4 _) R# b# H) }# J: @7 U. v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 20:54 , Processed in 0.039182 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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