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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, i$ W# \+ E+ k9 E+ \5 k4 b
#include <linux/init.h>
: p; d2 P( l9 l% D0 d% [#include <linux/module.h>  t9 _7 e2 z7 U% E& e
#include <linux/kernel.h>
. C+ Q' z( m! A5 u: P#include <linux/types.h>! H$ d) ?$ r% r& M( J4 H- I4 t" F
#include <linux/gpio.h>
; b2 H% W: s9 c3 ]0 J4 _; T' h( e- W#include <linux/leds.h>
% F, [7 M; u; l6 u* T; i#include <linux/platform_device.h>, s5 [$ b4 F; B6 j/ x
" j( a7 j" f, Q/ h7 j
#include <asm/mach-types.h>4 o3 l( h9 Q, O! u! ~( E- L
#include <asm/mach/arch.h>
- p2 E4 O0 ?' C- y#include <mach/da8xx.h>
3 K' h6 W7 h9 n* p0 H  \/ V#include <mach/mux.h>
# Q0 d) F- h$ a: v; n) s5 N1 V* C
3 }/ ^9 ~7 M( w) B' E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): K7 Q9 I& P6 Y1 V  ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), i: i+ T! ?) B- ?# `. T# F$ C8 @' K% V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 K+ v, X8 D! r  T* o$ L- ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 g5 [6 |0 @8 ~1 w2 v" n
5 z" H/ p( _+ X1 m/* assign the tl som board LED-GPIOs*/
* r; M0 j8 S2 m& C8 D3 R, ~8 sstatic const short da850_evm_tl_user_led_pins[] = {
* Z( z6 c  `; T        /* These pins are definition at <mach/mux.h> file */! |# E3 \" R8 f! I# P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ V! ?! I  f, n
        -1
! j7 T$ j7 q9 q+ f};
8 P0 {( r5 O' g  A  h  n. o* ]0 }5 O
static struct gpio_led da850_evm_tl_leds[] = {
+ a1 Z! {+ P# u1 k( k! u' @- v        {
/ b" Z* Y- a, E3 i; d; D                .active_low = 0,/ }" u7 U, {$ y' b! S2 w6 }
                .gpio = DA850_USER_LED0,
& o/ T3 e4 n$ L# |4 Q& M$ K                .name = "user_led0",
5 @1 j* \3 x4 ], Z& [& E. ?                .default_trigger = "default-on",/ B+ y5 Z8 A2 F( ?6 ?# @+ _/ q
        },9 m7 ]( `( V& s7 q' V
        {9 L, R( V; T. x; m) K$ }
                .active_low = 0,5 k6 e$ P: D0 [6 }5 p
                .gpio = DA850_USER_LED1,& b* L* L# {4 _+ B$ m9 d% v4 v9 ?& F% K
                .name = "user_led1",
% @+ w( n1 M, i& J4 [$ X                .default_trigger = "default-on",
6 w+ B+ n6 s2 c' m: \+ I3 ?        },: W. T  R. C$ o
        {
4 D% d% A2 B& m, l0 _& d% ^                .active_low = 0,4 E( ~' p" r+ b1 k3 N% T
                .gpio = DA850_USER_LED2,
$ c5 Q' H7 g4 X  O                .name = "user_led2",2 p5 X3 I7 l) a4 l
                .default_trigger = "default-on",
$ m# `1 b; O  ?, g8 D: c0 T9 J: d        },; S2 E3 {; O6 t, l* y
        {
0 ~9 s1 n" \5 g6 i                .active_low = 0,# M1 d0 i5 O5 T5 E; L9 j+ {
                .gpio = DA850_USER_LED3,7 K* }7 j' R: {. Z4 M
                .name = "user_led3",
0 m. P2 I9 Q3 R% M# ^) e  @                .default_trigger = "default-on",
2 _- Q# P2 y, i1 e' u        },$ I7 ]( m- e2 ]* G8 f
};
6 D' j) a9 O0 x: F4 T: w7 R- p# X* x$ ]  _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 S* q' K) o+ Y: G
        .leds = da850_evm_tl_leds,
9 c7 o$ X! ~0 m1 g2 k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 F5 U8 u) |& C( m! O- D( `3 E};
' N( ~% V1 F6 l- ?! ?! q: X2 N9 G7 }% N& O; z
static void led_dev_release(struct device *dev)
& h" u, J& m2 {) U; B{2 L! u: T7 J! n7 }
};3 W/ B' Z5 J, Y6 l& {5 m5 n5 M
6 i( e  V$ V! S4 X) h
static struct platform_device da850_evm_tl_leds_device = {- U. }& a2 O0 l. b
        .name                = "leds-gpio",! A; B4 W0 Q2 B- S2 y
        .id                = 1,2 e6 ~" Y. ^" A5 w
        .dev = {
* b% n$ _" @- l- @3 W% E# [                .platform_data = &da850_evm_tl_leds_pdata,' N4 B0 x! g5 Q; [# W) ^" h
                .release = led_dev_release,
/ b5 Z1 e) _( |; ^$ m+ M        }
) X- {  W' L) z7 ?0 u};$ J" o: R1 ]* y7 _4 V6 @" _+ d
/ n* z9 t5 ]/ d# n
static int __init led_platform_init(void)
6 X% o- v/ s+ q3 ]+ m0 O{
3 K  {2 l" B% F1 q        int ret;
* E- e  V" G, J' J  v+ d#if 0
" C( f$ `& I8 {8 U3 A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% R( d% o, t# ^4 _2 C6 Y7 L6 i
        if (ret)  }) K$ i0 N: a2 L6 d, `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 {5 O& l. S9 L! `2 x6 ?
                                "%d\n", ret);7 m/ L& p) l) g& r2 O% Y
#endif
& m7 F: [( S8 P1 ]5 g        ret = platform_device_register(&da850_evm_tl_leds_device);
7 ]3 Z% o7 B, G- p- y        if (ret)
1 Q# Y: w+ g9 I$ _0 b9 O  V                pr_warning("Could not register som GPIO expander LEDS");
/ d5 Z" }1 c5 B7 {        else
8 t! p. {- e0 H. ?& G2 v, v& N                printk(KERN_INFO "LED register sucessful!\n");
9 u  w  D, W, u# U# a
; x0 N! m# I4 ^/ C4 x5 X  ^7 q& ~" k  ]        return ret;
+ R0 W7 k& m0 o}3 _- }7 f' i( k' u7 N
6 k/ n+ n$ M: m
static void __exit led_platform_exit(void)
( `( v' V6 I/ {0 h' W: J+ U! }! ~{
5 C* m- r9 r# s* K% [% L        platform_device_unregister(&da850_evm_tl_leds_device);
7 a5 P( Y# A1 m& T
- b' v" X& r/ ?' r6 [# P' J$ q! z        printk(KERN_INFO "LED unregister!\n");/ @1 `5 \: b/ o3 d" U1 J6 W
}
' n' E6 z/ `# H' w8 i) v- n1 _* j$ w' W! t$ O# p: d8 C1 K; a9 c) J: y
module_init(led_platform_init);
7 s1 _. |( p( a4 z9 J% U- P* }' o( Dmodule_exit(led_platform_exit);
# R9 j0 G  @5 O
* T( v5 m, U# w/ r& PMODULE_DESCRIPTION("Led platform driver");
  }6 n% `4 S5 q" G" C7 bMODULE_AUTHOR("Tronlong");
5 D; m% J: L( S3 u  E+ N7 C# a1 |MODULE_LICENSE("GPL");" }5 L( o6 T8 }3 u5 M2 U, T
1 O. Q# z( L0 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 08:33 , Processed in 0.041815 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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