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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 R( M, ?0 f. u& J  }1 v#include <linux/init.h>2 C" r$ _, r0 W
#include <linux/module.h>5 M% W( E6 m( ]- B
#include <linux/kernel.h>
8 ?) H: c, E5 u& p- u! I( a+ l#include <linux/types.h>
: _! G1 f5 s  I6 a. [#include <linux/gpio.h>/ f) k; H) j+ J; N/ G
#include <linux/leds.h>- i' n  E7 r( e5 X* E0 B
#include <linux/platform_device.h>" X% f5 c' _- [! m( w* t  x! X

8 s1 k% x# H# h! s#include <asm/mach-types.h>6 \) ^, ^. [$ e
#include <asm/mach/arch.h># j# h# J0 Z- L) m) K) B
#include <mach/da8xx.h>
: X6 J/ a* [+ Y# j" b#include <mach/mux.h>! n2 k/ m& [' c8 Z$ m# i8 L
8 z3 {/ B2 a" r9 N+ D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& j. K2 @4 X3 u+ c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 H$ [! L, d1 m2 j$ F. E  N# G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 ~& m4 F5 W9 P4 C5 |- j, R/ K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" G7 C- R, v2 A. L5 ^" m
3 c' q1 N" s9 K4 H% \# c( C
/* assign the tl som board LED-GPIOs*/
  h" J% c% `( F2 z5 \9 x; M# `' @1 Fstatic const short da850_evm_tl_user_led_pins[] = {2 V1 i$ Y& u* M, H
        /* These pins are definition at <mach/mux.h> file */
. H0 e/ J' c# ^) r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. m5 @( G& `- g% e
        -15 t' w6 v" F6 |5 B  K  Z
};9 f* S: O) m  ~7 ]0 t' \4 Z

0 {5 |% N# z/ G. e" o) r7 f: _: L# Rstatic struct gpio_led da850_evm_tl_leds[] = {/ x9 a4 G3 e* U( J& S7 {1 s8 k
        {& f4 \2 @4 E5 G% n) N  v+ s
                .active_low = 0,5 s  y% ~  d! g3 K
                .gpio = DA850_USER_LED0,
& O4 V9 a+ A5 N. l/ ]                .name = "user_led0",2 C; K- t' \' m0 f& E; e4 ?* {
                .default_trigger = "default-on",
0 S& j5 Q; g- L9 o. Q2 l8 o9 y4 J& q        }," T; ]9 \, b% g4 `4 a' B: O, C
        {; T! c3 W# _5 p8 S1 f# Z
                .active_low = 0,: j# R. t+ y2 q3 C4 a
                .gpio = DA850_USER_LED1,
9 ?6 I; @" R4 I* ]2 ^                .name = "user_led1",
: u- h( v2 k9 i                .default_trigger = "default-on",/ K7 c0 r# D  w, f+ _' w8 j
        },) [4 l( `2 |' h6 P
        {
& [7 I# ]) ]3 A                .active_low = 0,5 g7 S" n$ r: O, P8 Y, }2 \: u
                .gpio = DA850_USER_LED2,) F; |5 p: ^8 L; R+ I1 e
                .name = "user_led2",
  E" p/ X. k0 g8 z* A5 A                .default_trigger = "default-on",. |6 r/ Q$ f  i* I* z0 u' r8 }0 Y
        },7 ]8 e- f* o" k: W2 i. K$ m
        {
2 c4 U  L- T- O' W+ B0 m, C# S                .active_low = 0,, Z4 S, _' x/ N6 P; w2 ]
                .gpio = DA850_USER_LED3,
: x0 }+ r# i) M7 h' {, B                .name = "user_led3",
% W, p9 E9 W/ S3 q  y                .default_trigger = "default-on",
8 d6 k5 u6 R  z" K5 i        },
. a9 h1 ~5 u1 J! m+ L};
4 a/ Z! i! V) Z1 P; x- C
" w  i( w( W, b& O. H2 s$ zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# V6 y- a- t1 C# p, [5 e+ I        .leds = da850_evm_tl_leds,/ d# b9 I3 _# }3 D; T6 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) c: q7 Y- p) G0 O
};
: l3 ?5 x* x' }( F/ j
; Q$ w3 K" m6 I' R: Mstatic void led_dev_release(struct device *dev)5 H2 K% Z; @$ g9 H% R% V7 v
{
, j# T; J$ e' ~8 n/ j};7 e4 S0 y1 Z- y& R

6 a+ M0 X$ o" d: Nstatic struct platform_device da850_evm_tl_leds_device = {0 x; p! ~- g3 p& \; ^9 a
        .name                = "leds-gpio",- y, O; t2 K0 X# {6 \2 r# l; c. K
        .id                = 1,
5 n. J0 E& {. G! O        .dev = {
" {3 C! N* K/ r- ~                .platform_data = &da850_evm_tl_leds_pdata,
* ?4 R( ^/ z7 r                .release = led_dev_release,
# `+ c5 w# R1 @/ g        }2 {8 x6 P! o+ h, y) E
};
0 N0 J5 z3 G2 Q, W- H
/ V' ]& u+ q' E5 H# ^/ B1 c; kstatic int __init led_platform_init(void)
8 R& F% `7 V' u' Z; V' T{
, z% W) ?: V7 D9 V& B5 X) ?1 T        int ret;
! V6 ]0 G; s; v  S: r4 K& x5 M#if 0' i. T/ O/ u5 [" H2 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, J6 T! E! F/ Z" L
        if (ret)  L0 }7 m3 [- t! r) S
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 n/ [" G, L2 \: y) U
                                "%d\n", ret);
6 \  L8 N  h1 X1 u/ ^3 c# S#endif
/ Q2 l& L; _8 g" E3 |6 b+ c        ret = platform_device_register(&da850_evm_tl_leds_device);* F# o% E6 R' n! b& ?1 x2 _3 [
        if (ret)
+ }8 i4 {% P& \: V7 s( P" |                pr_warning("Could not register som GPIO expander LEDS");
: B. o8 |  j4 R( V6 P0 e: u2 R8 ~        else
' g9 Z" l! p5 ]( F) K! P& }  X                printk(KERN_INFO "LED register sucessful!\n");3 Z  {( q! f) r; X
+ V. }' L/ ~2 d8 C3 g( W3 O
        return ret;( u8 O3 E& @/ S7 X3 L0 O
}) N; M- M1 A! I, ?: n: W8 w

% S: P0 g5 d. Cstatic void __exit led_platform_exit(void)( x) P' E; l5 G. ^2 \5 q
{
4 r4 C- O$ ]4 l) u. ^& `' Q  g        platform_device_unregister(&da850_evm_tl_leds_device);
! }" j. f- `, q/ }, _8 s+ y; ~" ^5 e7 s- c& [9 k1 I# T
        printk(KERN_INFO "LED unregister!\n");- v% Q9 s' L/ p( p
}
4 k1 Z! X, o& I/ i9 G0 c/ b+ G; H$ l
module_init(led_platform_init);% C. v* ?3 \8 p9 b2 C! v5 V
module_exit(led_platform_exit);
& t5 s7 n1 ~7 O" p' Q6 F8 n2 z( u1 l. a
MODULE_DESCRIPTION("Led platform driver");' a" }' z, g7 O: H9 I$ I8 H1 I& C& O
MODULE_AUTHOR("Tronlong");+ J# L4 n) P$ G3 f6 o3 `5 C( \
MODULE_LICENSE("GPL");: |; W& K: J( O

2 ~# T# d, v1 M  C: o9 m+ ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-11-10 14:59 , Processed in 0.040221 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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