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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 @7 t# U* P/ D# r' ?, Q
#include <linux/init.h>
- n9 h0 G5 P  B9 r- G0 {#include <linux/module.h>
& @2 e" Z% K- {) k' R! {#include <linux/kernel.h>
3 K/ g" ?4 H# k9 w#include <linux/types.h>9 C3 X( F, |9 K$ x
#include <linux/gpio.h>9 l* _% Q3 R5 G* S& \8 m/ p
#include <linux/leds.h>9 H6 `$ I. N, n9 _7 r
#include <linux/platform_device.h>3 h7 |- Z, _* z& i0 Z
0 e0 Y* ^8 c' ^- g5 P+ w/ h- I
#include <asm/mach-types.h>. Z& s1 P* ~& ^0 x
#include <asm/mach/arch.h>* H1 C* K" x+ o1 `6 Z. i# Q
#include <mach/da8xx.h>
9 p6 w. `9 U9 o#include <mach/mux.h>
) ~+ H3 f1 }. i& P
& U6 t- B$ A0 v$ k#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 n) Y( v8 U# y* {# T' T$ n. K- k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 [8 I9 Y8 a9 d. ^. E6 b. l
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 O& y- O* ^6 l8 v; e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 o; |( y) ^* s1 d; b" i8 D8 q9 N8 k) S
/* assign the tl som board LED-GPIOs*/
2 a4 T$ Q; i1 a- u9 i2 m' Wstatic const short da850_evm_tl_user_led_pins[] = {
! Y; L3 b' U; f3 X        /* These pins are definition at <mach/mux.h> file */( Q; {" i) x3 S+ D  l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) ~3 W, B8 @3 ]8 T' k9 ^: E) F        -1
& M: E' Q7 s4 X4 l! S7 {( {9 E2 m};
: j8 @. D$ _; @$ A" B
4 A* h. f4 p7 R9 ?) h: ^static struct gpio_led da850_evm_tl_leds[] = {# z$ l8 k: |/ D+ K: D$ n2 ^# ~
        {9 r" n( }$ w. s# o9 P; O
                .active_low = 0,
1 }) R' F+ l8 q/ G4 I                .gpio = DA850_USER_LED0,9 ?6 \, Q8 L$ Q1 p. {2 x, t4 n
                .name = "user_led0",
; q& c! C7 A/ k" O; J% P. W" D                .default_trigger = "default-on",0 C3 Z2 f  {  L* ]. l: @
        },
3 J2 a2 ^; i( Q0 h8 }9 j        {
0 W( ?1 P2 A$ A1 Z6 q                .active_low = 0,
# \- R$ d( }- B                .gpio = DA850_USER_LED1,# A1 \) |1 x  H) `- F# T( m3 H( [
                .name = "user_led1",
/ \% |; \- F7 {                .default_trigger = "default-on",
3 U* k2 _. B# Z9 ?        },
* Y& p5 g6 V& u0 h        {
) {) I6 e6 X9 m9 K, N                .active_low = 0,
+ x" l" n# r  G9 E                .gpio = DA850_USER_LED2,
+ d) A( I- E) l7 O2 L                .name = "user_led2",
. h( S+ t' E6 V: f2 ^# u                .default_trigger = "default-on",0 C% H1 u9 _, c( I
        },
8 w+ T# ?  W- d# j4 m5 ^% \: i        {6 d* o  j0 B( U" K% ?
                .active_low = 0,% U; h# k' @6 J# H" H( X
                .gpio = DA850_USER_LED3,
. N& B9 x1 G5 T2 R                .name = "user_led3",' i5 H  u. E* T# H  }6 C( v+ ?% K) c
                .default_trigger = "default-on",& g) ~, X+ ^# b: T6 T
        },
+ E( i9 z+ i% t/ N. x};
) v/ ]3 b) {6 ]: }/ S7 M. B, U+ O9 `# D& A7 r! A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 L) Q7 E- z& k& |/ n* @5 E        .leds = da850_evm_tl_leds,
6 p. A: u4 e" E3 a% x" H) j2 J: b( n        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: n3 d" z2 Q5 u8 }8 q: }7 J) Z};
( e5 J$ ]  y5 L0 C3 |+ i( Q8 r: |! @5 B8 i
static void led_dev_release(struct device *dev)2 R0 ~2 N. B* l* X
{- v/ w% u2 I$ ~; [
};$ r7 R$ I: e. m" o* }& l
& ^, Y: T" B' [6 c$ {
static struct platform_device da850_evm_tl_leds_device = {9 p2 n# a7 U7 e6 r$ D; A6 q
        .name                = "leds-gpio",% p$ g% Z: p8 C
        .id                = 1,/ a3 G% Z$ s1 j  v4 e
        .dev = {
, E* B7 a4 r+ _! T& O+ ^                .platform_data = &da850_evm_tl_leds_pdata,! e+ [6 ^' c& T8 B% h
                .release = led_dev_release,
( q( ]3 q4 O$ T, t' U2 Z0 f4 `        }* ?3 C' ~& K: c7 Z
};
% A; D( u" U6 S
$ h" e  F0 O$ B! v/ Wstatic int __init led_platform_init(void)/ N2 C# d/ E% `/ Y
{
& _* b( f% M% w4 s* @. B        int ret;
  C- ^  v1 Z6 d#if 0
, D7 v% I( p5 i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) b; T0 r  g) ~1 O
        if (ret)
  c& T0 r; b! T  H! x% i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 P3 {; M# R8 T- l                                "%d\n", ret);
$ `* u! F9 N/ E( Y) b; `#endif: e  Z! s- X2 n
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 E1 h5 W, o0 p9 v" \- C! ~        if (ret)5 E' A7 R1 E9 V6 Q. ^) e% v; z; D* ]8 }
                pr_warning("Could not register som GPIO expander LEDS");6 p4 o" }+ u$ R$ c
        else
" @- V4 }  c' F0 f                printk(KERN_INFO "LED register sucessful!\n");; A* E0 f4 _) c( c2 w

1 l% s, ^$ U7 F' ?. X1 ~+ C0 M( D        return ret;9 j5 F5 B3 Y$ H# j/ }7 ^7 A
}
- ?# H5 F6 p2 Q& s
8 Y' N, s. i4 j4 o1 @( u! `  ^static void __exit led_platform_exit(void)
( j9 y  X  N" i2 Y{7 m4 T* p" }& w4 V2 G
        platform_device_unregister(&da850_evm_tl_leds_device);
$ s( a4 s( k1 _  s. G# K: T
3 x* E& h: D. x: ]. u  ?6 U; S        printk(KERN_INFO "LED unregister!\n");& B3 {3 f& \* y# P4 X  Q6 K/ e
}
! t7 Z  O) E7 X3 P# v& ~
. c' e0 M! \9 M: N/ Y( @8 Smodule_init(led_platform_init);' t2 x8 m5 q' C4 h& v* l1 R
module_exit(led_platform_exit);
( u7 A+ R7 a2 X: u, e* G3 ?, M# F
MODULE_DESCRIPTION("Led platform driver");3 p& Q& ?1 h7 m* R
MODULE_AUTHOR("Tronlong");; ?1 s1 l+ T; v; M1 \/ |
MODULE_LICENSE("GPL");
) y" ]$ \. \: Y9 Y3 t
! w6 u; f) H) f% i9 ^. G- k/ I3 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 08:22 , Processed in 0.035659 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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