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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. C$ Y0 O9 c# R* r#include <linux/init.h>
* {4 x  T5 o" l  B' S& J#include <linux/module.h>% v4 I' K5 R/ `7 u0 Q
#include <linux/kernel.h>
1 U9 e! L0 S$ N: T+ n7 m# _#include <linux/types.h>
9 p) v) E. l4 _  Z; ]5 w#include <linux/gpio.h>
+ }) n- ^0 ~7 J2 F/ k4 i( k8 E#include <linux/leds.h>
% d5 ~5 J4 S. C$ H3 G#include <linux/platform_device.h>
8 d4 \' ~2 _4 y4 [
. X  a7 a, x3 u8 d& o7 {#include <asm/mach-types.h>
8 }6 _/ ^- w) Y$ R#include <asm/mach/arch.h>3 Q+ z2 t, P) u. g
#include <mach/da8xx.h>
  [' p' F3 b. B  u- m3 P- B#include <mach/mux.h>) R+ k& \: x+ }2 s
6 w9 `# k1 n6 X$ a; [* C+ |, T9 k4 k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& x: b* V( p# z% G/ R" d+ Z6 q- y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! j: h* h) A* \
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 c( J9 f( Z( j- b/ Q" X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 f: H* p/ u6 W5 L4 M$ _$ @

: F: e+ y7 q5 T; L2 Y4 [* l/* assign the tl som board LED-GPIOs*/
' u% f) ]; W! N) _& R% ]0 N- Cstatic const short da850_evm_tl_user_led_pins[] = {
# L5 w9 [; ]' Y; h        /* These pins are definition at <mach/mux.h> file */: v! C+ I$ L, ~9 F% X: K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: q" h- o( ?3 J8 _. @% V$ L        -1
0 J6 |! {3 J% y2 s9 z# M};2 X0 B; k7 ~* H8 c! l: M( B
. e$ s6 ]4 D( F+ A! D& |! S
static struct gpio_led da850_evm_tl_leds[] = {' R# d' _- J9 v9 O! a) k+ k8 t* P
        {
8 U; F* Z5 {" c" `9 v. ~                .active_low = 0,
9 H5 h3 m0 o4 C% C" g2 q                .gpio = DA850_USER_LED0,% Z( A0 A: k6 Y1 D) s; j3 h$ N, {1 M# v/ s
                .name = "user_led0",
; ?2 p' @2 R0 l( n                .default_trigger = "default-on",
" k; f8 R# V, r! q0 @7 U        }," d$ e4 x) U) b7 D5 f) J* o6 D: N
        {: I& k) k  P: Z
                .active_low = 0," [7 K. x3 N8 `0 o6 l9 F
                .gpio = DA850_USER_LED1,
3 k; z. f3 v( [5 X5 I/ D                .name = "user_led1",
0 _; i' w6 Q# ~# |                .default_trigger = "default-on",. D9 d8 k& _8 P  Q
        },; O/ O$ t- I5 W: V9 w" Y$ d6 I
        {# x2 H; G& p! L- l) J. z  c
                .active_low = 0,$ p% x0 P1 F; P6 `7 F) s5 o
                .gpio = DA850_USER_LED2,
: [6 [  q. P: M- g2 _+ U- W8 a                .name = "user_led2",
/ x8 i+ I- z* U4 z. v                .default_trigger = "default-on",$ `! B/ `) l7 r3 A1 Y
        },
3 \- [7 P0 m: ^/ _" a  A        {
2 b% F) m0 c0 i: ~                .active_low = 0,
5 Y  I' N% v0 o7 A" R# s                .gpio = DA850_USER_LED3,* ~- M+ ], K' k9 ]& c
                .name = "user_led3",
. ^3 p  Z- W/ J, F) @) g                .default_trigger = "default-on",8 i  L: L- E, v/ b; t7 I
        },
* n* y. i% F  u};* x2 ]1 I3 b( p6 b
- n" g" ?/ U  [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: H9 L' D& ~9 p. A( x        .leds = da850_evm_tl_leds,
# W5 |; A2 Z1 ?7 w3 H1 b! r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 t3 d+ u& \9 }: g
};- f! i# y; g# m
, _7 S0 ?/ s9 w1 i7 J& b- }
static void led_dev_release(struct device *dev)
  `4 F; G+ N+ C  L{
# h1 }1 W5 {  a% S  x, x! `& Z};( w4 {" v8 g: h) D
7 l: z. |  J6 F- |. a% y
static struct platform_device da850_evm_tl_leds_device = {- ]9 f' r$ y$ W) y% @
        .name                = "leds-gpio",+ B  m; R6 |8 z3 p) \  ~- Z# [
        .id                = 1,) w0 R* O) |1 ~
        .dev = {1 u4 q& @4 `% s4 A0 `0 d2 U+ I0 @3 N
                .platform_data = &da850_evm_tl_leds_pdata,
1 K: L1 E& ]# k+ z                .release = led_dev_release,
2 C9 q4 Q" w! O- m' k) ]        }
& {# P: W" t& L  M# V7 d# f/ {! N};
! |/ W& r+ S$ b- z9 v% d- t! u/ A% n# `2 k
static int __init led_platform_init(void); Y" O4 Z- g$ O; ~
{
8 J# \# Z( v) |1 C        int ret;
' U2 e+ R; p: k: i: E0 k! V#if 0* G4 W- G- Z6 d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& m( B7 f- t4 j! I
        if (ret)3 D1 H0 T9 A6 X. \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". Q4 Z& a1 F/ ?5 i3 D, e! g
                                "%d\n", ret);
# }5 k4 I  Q- v) K7 E! y#endif
7 h  D' `1 h/ l  y. H3 ^- i) l        ret = platform_device_register(&da850_evm_tl_leds_device);6 J$ k2 o& h# r
        if (ret)
' n2 ]/ L$ w; {* |3 ~% b                pr_warning("Could not register som GPIO expander LEDS");
4 d, z1 t8 ~7 z* {        else2 N' ^$ N, k$ d) W8 \/ C9 W! p
                printk(KERN_INFO "LED register sucessful!\n");
3 I- w9 o+ w( ?3 h* m+ n! c5 r* n+ Q2 y, |- B
        return ret;5 E. X7 K. A7 I6 z7 p
}9 V) O% u; q& i) b6 C  V
! J2 o6 \) h9 Y0 |8 X* E
static void __exit led_platform_exit(void)( C* o( P) K- H1 W6 A* q
{6 N3 d/ z$ _$ S$ }- t, Q5 N
        platform_device_unregister(&da850_evm_tl_leds_device);" _) M" l& X- a# w% ]2 a

/ }2 g" q& L" I! g) d' S        printk(KERN_INFO "LED unregister!\n");, F+ A- X7 ^, m$ p
}+ k% ~& [. o* G0 n
& |2 W$ L' i! p' O9 @4 |, A. D+ ^
module_init(led_platform_init);
0 B2 o/ v, T/ e% A( q+ S- Y) @( K( i2 Q4 ymodule_exit(led_platform_exit);9 K7 T0 Z' A& l: O

$ |1 Z+ b; b9 G2 eMODULE_DESCRIPTION("Led platform driver");/ ]3 q6 U# Q1 k! C$ L/ H/ P6 A
MODULE_AUTHOR("Tronlong");
0 D; H& Q: z  `MODULE_LICENSE("GPL");
1 a" c% A+ j. S4 Z& T4 O7 u4 v/ j! w; e5 j4 p' o1 f( q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-21 11:50 , Processed in 0.042046 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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