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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. d: v1 u1 W5 a5 w- |#include <linux/init.h>) R* v3 X2 V! r( I
#include <linux/module.h>
8 S* _6 `$ O) c4 ~#include <linux/kernel.h>) m( `8 {3 r1 u  F: t
#include <linux/types.h>
3 w4 x0 l4 @4 j#include <linux/gpio.h>$ F4 C5 ]! X) }. [( u4 n4 D$ R' f
#include <linux/leds.h>! d$ `* `1 T  w( Y! _& o4 E
#include <linux/platform_device.h>, V6 h% q9 r3 i6 s  e: a* M
3 M1 u) @, e* Y+ R6 z+ s+ {
#include <asm/mach-types.h>
  l2 S- |  F0 l#include <asm/mach/arch.h>5 @+ u* ]& a. n: I( J4 |" `% n
#include <mach/da8xx.h>, q! t& c1 u8 Z1 I
#include <mach/mux.h># T0 c6 w7 b4 R. `* W
) O: f. {& a8 R. W0 A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 y* Q6 X3 g# Z3 T' G( R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 B8 i9 i5 y# K) |8 ~2 W8 E, Q0 c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 I" J% ^* |; ?
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 q+ h2 i* y/ U2 M0 e& y/ g2 l/ Z! ?$ q# Q7 \! j! x
/* assign the tl som board LED-GPIOs*/; m1 c' W+ T) y5 u. f; i
static const short da850_evm_tl_user_led_pins[] = {# J$ a: ~! M! d4 w1 j
        /* These pins are definition at <mach/mux.h> file */8 p2 m- P0 C1 d0 D" `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' F! s' [& }  Y- f6 t  z: ~7 ^- p        -12 g% W/ b% E6 \" p  Z1 n* Q/ m
};
  c! _9 f; I) T3 J! ]
* e, D+ B  K/ K8 g7 L6 Wstatic struct gpio_led da850_evm_tl_leds[] = {
$ w9 h! Z7 M- d/ c, S8 H! r        {
: T8 M7 `( L& e$ Y+ T1 N/ P+ j3 d& ~                .active_low = 0,& G. I! e/ d# ]7 n( y  [
                .gpio = DA850_USER_LED0,
9 q1 Q! U. Q& f: p- ?1 ?                .name = "user_led0",
2 C2 u& d, o( o- k6 Q" m# k3 k                .default_trigger = "default-on",
8 [3 n1 e6 _9 C/ f8 G        },
' X& X. ]/ d* Z. I. f' \# Y4 Q        {
$ J# o  @. f0 X8 I                .active_low = 0,
: ~  u0 n) |7 C6 _) O4 k6 |                .gpio = DA850_USER_LED1,
. l: c0 d4 v& R/ ^6 b( R; v                .name = "user_led1",
. C  q( x: Q2 c! x1 k                .default_trigger = "default-on",
/ V  O. A8 Q5 |' D2 ~        },- a) p' j8 X- X! M$ F, l
        {3 w5 ^" w6 m! U9 M7 F# C
                .active_low = 0,$ ?2 X' a$ e# ^% M" U5 T
                .gpio = DA850_USER_LED2,  ]! h  b& A: q
                .name = "user_led2",5 t2 k) k* b$ S* a# T9 G5 ]
                .default_trigger = "default-on",* T( k  v5 u# l! }% F
        },& h1 t* A8 v$ u' t; T7 S
        {
& k% E" N# D& M- b* Q                .active_low = 0,* q) Z7 T8 ~5 o; C! B5 K+ W
                .gpio = DA850_USER_LED3,
* F( U" m5 v; U" z6 u- o* I. D6 E                .name = "user_led3",  o( w7 b0 ]3 R  Z3 Y1 c
                .default_trigger = "default-on",7 n$ m! T7 b& O" G  ^4 h: E8 ]
        },
  f1 _2 Z2 C2 a' b2 r1 h: E$ ^, l. _};5 l, ~: c7 ~" C8 K9 u" ?1 ~% u- p

, {0 W$ q( w2 a2 g8 v% S* qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" T* c0 j( \$ ~' N3 |, \) h        .leds = da850_evm_tl_leds,
- e. X1 g& C! x- D        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: Y+ X% K3 E( q* X8 V
};
" N1 w8 Q6 B7 @* M8 k2 z. T
( c: k! n# k. U. Q1 `! Tstatic void led_dev_release(struct device *dev)
  F: p/ g1 F6 O4 M( H, x  E; m6 u" r1 I{5 |" B; F4 k3 g/ Y
};, g! }9 f. P- X  I# @2 H$ H8 j
8 r% G4 Z. R5 j( a% T3 e
static struct platform_device da850_evm_tl_leds_device = {
5 W5 {& {+ e: U  k' C; t5 U4 ~9 Y/ u        .name                = "leds-gpio",: W/ m9 @/ C7 T7 o
        .id                = 1,
7 e& A, u" }* Z# s4 E3 |7 r4 X        .dev = {
1 ?4 s$ L* ?+ l5 z) g                .platform_data = &da850_evm_tl_leds_pdata,
+ D3 _. g( D! ]7 U3 X                .release = led_dev_release,6 _4 l2 {+ C1 o
        }
) G: M: }; C6 ?6 A; Q4 M};" Z. L" T! }9 q. i
8 t: G- L6 s( L  d/ v
static int __init led_platform_init(void)
, D5 {$ k5 s2 j) C' y! w6 Y9 L% r{
: P  p2 g5 f0 F5 S* |. @( T        int ret;# N  F+ R% y& Z, u" B% L
#if 0
+ u. m! Y2 B, S" w        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 i" g( t5 j- W; E4 J- ]1 A
        if (ret)* l: Y# d4 z4 I& q0 i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ ^& \, f- }, F
                                "%d\n", ret);/ R# L3 D4 T$ E* p3 m$ D, w  B# {# {
#endif
* a7 w3 Q$ c- }        ret = platform_device_register(&da850_evm_tl_leds_device);5 U3 f  M  c, E" y; [, t7 }; V
        if (ret): l/ \9 O9 ^% _; t8 l5 [
                pr_warning("Could not register som GPIO expander LEDS");8 Q8 U$ t& E! w8 o) b! b8 Y
        else
) u2 T3 H# ^% W7 x& B                printk(KERN_INFO "LED register sucessful!\n");" B: @9 R2 `& _& |

; X! P: c) H2 v! f# e) Q3 }) ^        return ret;
0 d& |2 f# ~& c( U% y  p) U}2 p# k/ W# F9 l+ s; J( i
& _) B1 {- T- |
static void __exit led_platform_exit(void)
  A; B) n- C' D" Q{
' ?. X' s. W3 r+ ?0 Y" Q  a        platform_device_unregister(&da850_evm_tl_leds_device);4 B5 r3 N% C2 p( `% C7 g8 F

9 v9 P/ w' a# s        printk(KERN_INFO "LED unregister!\n");  y- t" U- \5 ~: G
}
, u; H% r$ I6 C; J- p! t8 E- f) q. r
module_init(led_platform_init);8 Z$ y" b6 A8 k) {  w
module_exit(led_platform_exit);
# U1 a* ~: A7 n& y& H( s0 ~; T1 _. Q2 V: Z2 s7 P: K* ^. E
MODULE_DESCRIPTION("Led platform driver");3 `+ S; L- h/ H& ^% m/ D4 p
MODULE_AUTHOR("Tronlong");; }" T4 d4 V) m# I
MODULE_LICENSE("GPL");
4 j7 d/ h% n" U1 O5 M; y' \; `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-14 02:16 , Processed in 0.040802 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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