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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, ^1 b( R0 n* Y3 K! F
#include <linux/init.h>
# x, y, \1 C' T7 i/ x9 [#include <linux/module.h>
! ~% d! M9 G( [3 n% o7 l$ c#include <linux/kernel.h>
# _8 Z  [- q# v9 D0 u#include <linux/types.h>0 D( ^! Q8 T8 z3 C7 l2 x% ?; B, t
#include <linux/gpio.h>7 w+ {  {- S( U; l, ^) R
#include <linux/leds.h>6 X+ \4 ~' M, L' c5 D* F! X; u, M
#include <linux/platform_device.h>1 U/ [  p% J% s) C8 {% w
: w. e9 s) \7 x) D* p8 C. X3 r
#include <asm/mach-types.h>
) \& N$ Y! n) K/ S#include <asm/mach/arch.h>( o: e/ ~9 ^  F5 n0 ]  k8 s& j) @) T
#include <mach/da8xx.h>0 x/ ~4 \# O2 f/ Q* S; y3 K  u! r! m
#include <mach/mux.h>, S. w3 K7 j5 {3 Q

+ m6 [4 b5 B: K5 r3 Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 U7 K8 Q) N% `" w/ L#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; W. F  \6 o) s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* }/ O2 L# d( M! c8 r#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 P6 [& T* `, p: y) b8 ?

# b  u% U1 O; m/* assign the tl som board LED-GPIOs*/
. E# v; M( _1 e$ g+ Estatic const short da850_evm_tl_user_led_pins[] = {, C" y( w8 q+ G. ^9 ~# y
        /* These pins are definition at <mach/mux.h> file */: T) r$ P# }3 p2 b. `' }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- h7 x' D* S. q) q0 c- E2 V9 T        -1
2 i3 j* t+ O) R9 x& p: o8 m. g+ Q};
5 {2 d0 |1 }* \8 B8 s
8 x% k; U. K# y0 J  Mstatic struct gpio_led da850_evm_tl_leds[] = {2 M; |+ ?4 R; \& m1 _
        {) O9 H' ]5 B5 ]/ ^$ x
                .active_low = 0,
* _/ b% d8 M& Y! H) m% v                .gpio = DA850_USER_LED0,( E6 F, @) [( i5 ?) Z! m2 d5 {
                .name = "user_led0",
- b; h5 y5 {( U* i; V- R% H3 c) q                .default_trigger = "default-on",
/ `/ H- |5 ]6 j* i3 y5 n; `        },
( l0 S9 j+ u$ [7 a  x9 i: f        {& J+ `, B* `4 w/ e$ W
                .active_low = 0,
3 Q4 Y: Q  A# E/ V7 s" p+ R! \                .gpio = DA850_USER_LED1,: D- {. w" V# v; [* ^  ]
                .name = "user_led1",
) x* N$ d. |7 ]/ j) {2 A% w% u                .default_trigger = "default-on",$ `0 ?5 ], L' t4 E
        }," r0 }" {5 Y$ U
        {
; y  K; l7 [) p8 D                .active_low = 0,: ~( E; k" A. U6 y# N# n7 D
                .gpio = DA850_USER_LED2,
: \. O3 `& O' s/ p/ A                .name = "user_led2",
7 p5 g0 d$ A4 m' O5 I8 b                .default_trigger = "default-on",( a7 Y9 Z, h/ s5 @3 p# T
        },( z0 c' J  C5 Y( D5 |
        {4 L: M6 B  N; b
                .active_low = 0,! t4 a  r, j1 k+ [: ~
                .gpio = DA850_USER_LED3,
7 A% j  _$ q6 Z1 K2 M                .name = "user_led3",
7 d6 P5 @: R* N' G5 c" n" S                .default_trigger = "default-on",# R$ l- \  U8 a& I" [
        },' {# V# @( w* ~' i( w
};) r7 Q* z5 Y9 T8 U& z* z

  E% \1 H6 L! H7 hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) |# O, m8 t/ K2 q        .leds = da850_evm_tl_leds,8 E6 j# f/ e. b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ M9 x9 L6 m# X5 s
};, o5 P* k  D. X
5 G9 n" e- ?) F( N4 u
static void led_dev_release(struct device *dev)  n, m( F2 v; ~9 x; f& Z2 U
{+ A" `  |8 @; t
};6 P5 ]4 p5 \- J6 S2 S3 I, x
. @4 H9 a6 u5 l
static struct platform_device da850_evm_tl_leds_device = {
( r$ `- d" V+ j, i4 d        .name                = "leds-gpio",
0 M7 y$ l' |; N3 l& N        .id                = 1,9 \7 E: \6 ]2 x" j3 r
        .dev = {: ^1 f8 a  B. q) A; K7 @! r
                .platform_data = &da850_evm_tl_leds_pdata,7 ^. E; H" @3 \
                .release = led_dev_release,: r, p( `8 f7 j, E# v% y
        }: ~) C, z  o, ]; m7 C# d
};
0 n$ w6 @/ E9 `& E, H; n
3 Y" u) t; M/ `, @: Y7 ~6 R8 W, nstatic int __init led_platform_init(void)
9 Y+ Q; m0 p" ^{
% m) C7 @" _( P% w        int ret;
- Z# }4 a8 O! S2 ]0 _2 f, @( q#if 03 E9 L1 t. t0 ^/ v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 l4 N) K/ u+ Y$ M        if (ret)$ ?4 r. b( n4 }  }" v
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* x& T6 c; _. K/ n
                                "%d\n", ret);
9 r, o6 E# U8 m- m#endif
1 n# b' u% ?: b& V$ o. a; K& v4 i. x        ret = platform_device_register(&da850_evm_tl_leds_device);  ^+ U2 D+ R% }( q4 z
        if (ret)2 E7 b1 g. c* _+ |( o  c; U
                pr_warning("Could not register som GPIO expander LEDS");
7 s: Y- Z! w! G1 [        else
  G- o  u* D9 I7 t. }2 C! Z$ J; O                printk(KERN_INFO "LED register sucessful!\n");
2 Y6 f# v* P* s4 r! N
8 ]% h9 O! g( B/ X        return ret;
, s6 S3 ^. J' _% X0 z8 ~2 r}6 _% H  U0 Q3 C: C5 P' z" _  n6 Y# C
8 P% H% C* l# L3 b
static void __exit led_platform_exit(void)5 o, S  K$ P1 v; W# v) h
{
7 W! t6 G1 s; T* j        platform_device_unregister(&da850_evm_tl_leds_device);
* l+ x- U# U- s/ J+ k% C9 m  F; H; d7 S4 U' B  E/ C
        printk(KERN_INFO "LED unregister!\n");
( e0 g" s6 h4 A1 [}: {. |" `! ?3 v& [

0 f$ g* i& h; @1 |8 {module_init(led_platform_init);, M" K. d# E5 ^
module_exit(led_platform_exit);
  ~4 M8 c0 `! U2 F( N% V% T8 D2 N1 T' Z5 g* Y
MODULE_DESCRIPTION("Led platform driver");
5 p! \8 w- _9 Z9 iMODULE_AUTHOR("Tronlong");
: M2 g$ s% u4 i9 I* F/ IMODULE_LICENSE("GPL");
, Y5 h# d4 x5 n9 C& ?- l# @0 Y" Z7 ?: B( x+ _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 22:20 , Processed in 0.040543 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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